목록전체 글 (171)
Code&Data Insights
[ Implicit Type vs Explicit Type ]변수 선언할때는 굳이 type을 지정해줄 필요 없음 => typescript의 typechecker가 inter추론하게 두는게 더좋음! // implicit typelet x = 5;// explicit typelet x: number = 5; [ object type에서 변수를 선언할때, 선택적으로 사용할 경우 ]?를 넣어주면 됨! ==> 변수 ? 로 사용할 경우, 변수가 존재하는지 확인하고 쓰는 과정이 필요!const person = { name : string, email?: string }if ( person.email && person.email.includes('google') {} [ 똑같은 형식의 객체를 계속 생성할 경우 -..
문제상황- git pull 안하고(다른사람이 변경한거 체크안하고..ㅋㅎ: 내실수) 커밋해서 conflict 남 - 다시 commit했는데 처음꺼 그대로 남아있고 내가 올리고 싶지않은 다른 파일로 다시 커밋이 되버림 해결방법1) 리베이스 시작:git rebase -i HEAD~2 (or git rebase -i HEAD^^): 최근 두개 커밋을 보여줌, 내가 삭제하고 싶은 커밋 pick -> drop으로 수정-> esc 안먹힘, 그냥 :wq 치고 (write(저장)와 quit(종료)) 엔터 누르면 된다 -- 푸시하기 전에 잘 없어졌는 지 확인 가능! -- 2) 리베이스 OK, 원격 저장소에 변경사항을 푸시하기git push origin master --force 완료!! (교훈: Git Pull ..
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..