목록All Contents (169)
Code&Data Insights
NodeJS 란? : 크롬의 자바스크립트 해석 엔진 V8로 이루어져 있음 -> 자바스크립트 실행 환경(런타임) (ex) 유저가 공지 페이지에 접속했을 때, 공지를 띄어주는 것 app.get('/notice', function(req, res){ res.send('공지입니다')}) NodeJS를 쓰는 이유? : 브라우저 말고도 다른 환경에서도 JS를 실행 할 수 있게 도와줌 - 큰 처리를 필요로 하는 요청이 들어올 시, 대기 시간/처리 시간이 오래 걸림, 요청을 다 처리할 때 까지 다른 요청을 받지 않음 => 반면, NodeJS는 Non-blocking IO=> 요청 순서대로 처리하는 것이 아닌, 처리 순서가 빠른 것 부터 처리함, 요청을 계속 받음 - 코드가 짧고 쉬워서 빠른 개발이 가능하지만, 웹..
아주 기본적인 실수지만,그래도 기록하기..! 커밋할 때, vscode에서 staged에 올려야 되는데, 일부 수정 반영 필요 없는 파일들을 올리지 않을 경우 commit해도 바로 push 버튼이 활성화가 안된다! -> 명령어로 push 해도 되는데 처음이라 여러 방법을 찾다가 파일을 다 삭제해버림.. ㅋㅎ 문제가 된 명령어 git rm --cached . -rf 인덱스에서 모든 파일을 제거하기 때문에, 잘못 사용하면 다음 커밋에서 모든 파일이 삭제된 것으로 나타날 수 있음! 사용시 주의!!! [ 해결 방법 ] (1) 내가 커밋한 내용들도 같이 사라졌기 때문에, git init 하기전에 저장해야 함 (따로 저장해놓기) (2) 깃 초기화 하기 - git init (3) 기존 저장소 다시 연결git rem..
git pull : git fetch + git merge 두 명령어의 조합 - git fetch : 원격 저장소의 변경사항을 로컬로 가져옴 - git merge: 가져온 변경사항을 현재 브랜치에 병합 => 커밋 히스토리가 꼬여버린 경우..git reset --hard로 하고 -> git pull git reset 하면 잘 안됨 -> git reset --hard로 하고=> git pull 하기! ** hard는 절대 절대!!! local에서만 실행하세요..!!! 안된다고 원격 repo에서 했다가 대참사가 일어날 수 있습니다..(웬만하면 원격 repo에서 작업하지 마세요..ㅎ) git pull --rebase: git fetch + git rebase 두 명령어의 조합 - git fetch : 원격..
Chat Prompt Template 이란? : 대화형 상황에서 여러 메세지 입력을 기반으로 단일 메세지 응답을 생성하는 데 사용됨 => 대화형 모델이나 챗봇 개발에 주로 사용 Message 유형- SystemMessage : 시스템의 기능- HumanMessage: 사용자의 질문- AIMessage : AI 모델의 응답- FunctionMessage : 특정 함수 호출의 결과- ToolMessage : 도구 호출의 결과 튜플 형태의 메세지 리스트 : ChatPromptTemplate 인스턴스를 생성하는 방식 -> 대화형 프롬프트를 생성=> 2-tuple 형태의 메세지 리스트를 입력받아 메세지의 역할(type)과 내용(content)를 기반으로 프롬프트를 구성 LangChain - ..
멀티 체인(Multi-Chain) 이란 ? : 각기 다른 목적을 가진 여러 체인을 조합하여, 입력 데이터를 다양한 방식으로 처리하고 최종적인 결과를 도출=> 복잡한 데이터 처리, 의사 결정, AI 기반 작업 흐름을 설계할 때 유용 Multi-Chain 연결하기 1. 두 가지의 Prompt Template 객체 생성 2. chain 1 생성 3. chain 2 생성 출력 파서(Output Parser) 란?: 모델의 출력을 처리하고, 그 결과를 원하는 형식으로 변환 [ 출력 파서의 주요 기능 ]1) 출력 포맷 변경: 모델의 출력을 원하는 형식으로 변환 JSON -> 테이블 형식 2) 정보 추출 : 원시 텍스트 출력에서 필요한 정보(날짜, 이름, 위치) 등을 추출 => 복잡한 텍스트..
1. Google Colab 초기 세팅 2. OpenAI API 키 받아오기 & 입력 import os# OpenAI API 키 설정os.environ['OPENAI_API_KEY'] = "your_key" 3. 모델 설정 ** " model = " 객체 생성 시 옵션 값 지정 할 수 있음 => temperature | max_tokens 4. Chain 실행 & PromptTemplate 객체 생성 ( input : 유저의 질문 ) # chain 실행llm.invoke('한국에서 가장 좋은 신용카드는?') # ChatPromptTemplate.from_template() - 문자열 형태의 템플릿을 인자로 받아 해당 형식에 맞는 프롬프트 객체를 생성from langchain_core.p..
상태관리 라이브러리를 상황에 따라 선택해야됨! 각 라이브러리에 맞게 성능 향상 방법을 고민하는 것이 중요함! [ 라이브러리 분류 ] 1) Flux: Redux, Zustand2) Proxy: Mobx, Valtio3) Atomic: Recoil, Jotai Redux - 모든 상태 업데이트를 액션으로 정의하고, 액션 정보에 기반하여 리듀서에서 상태를 업데이트하기 때문에 상태를 더욱 쉽게 예측 가능하게 하여 유지보수 측면에서 좋음 - 서버 사이드 렌더링이 가능- redux toolkit [단점]- 보일러 플레이트와 장황한 코드가 필요함 - 방대한 코드량, 익숙하지 않은 원리와 직관적이지 않은 코드 => 러닝 커브 높음 - 리액트 전용 라이브러리가 아니기 때문에, 리액트 내부 스케줄러에 접근하기 어려웠음-..
동기(Synchronous) vs 비동기(Asynchronous)동기(Synchronous) 프로그래밍- 코드가 작성된 순서대로 차례대로 실행- 각 작업이 완료될 때까지 다음 작업이 시작되지 않음 비동기(Asynchronous) 프로그래밍- 코드가 작성된 순서와 상관없이 실행- 한 작업이 완료될 때까지 기다리지 않고 다른 작업을 동시에 수행할 수 있음 비동기를 사용하는 주요 이유? => 멀티태스킹을 구현하여 시스템 자원을 효율적으로 사용하기 위해서! => 여러 스레드나 프로세스가 동시에 실행됨 비동기 프로그래밍의 발전 순서 1) Callback 함수: 함수를 등록하고, 어떤 이벤트가 발생하거나 특정 시점에 도달했을 때 시스템에서 호출해서 실행하는 함수 - 초기 비동기 프로그래밍에서는 콜백 함수를 ..