[이력]
2024.02.06: 2월 5일 발표한 사례 내용만 업로드 (과제 1~2)
[TODO]
Agent 과제 진행
이후 새로운 post에 프로젝트 계획 후 업로드 예정
[Lesson Learned]
이 문제들은 대부분 아래 Doc에 있던 내용들이었다. 공부해보고 프로젝트 진행 시에는 의미있게 진행해보자
0. 초기 세팅 (익숙한 파이썬 3.8로 수행)
conda create -n py38_langchain python=3.8
pip install langchain, openai
Open AI 사이트에서 (1) 결제 정보 입력 후 (2) API key를 생성
나의 경우 API key 생성 후 결제정보 입력하니 billing 문제로 제대로 실행 되지 않았었음..
1. Model I/O
1) 개발자 식 농담 주고 받기
ChatGPT에게 물어보았으나 현재 LangChain 버전과는 맞지 않는 코드를 출력해줌
문제 1: text-davinci-003 모델 사용 불가
문제 2: generate() 함수 부재
문제를 해결해서 개발자 농담 10개를 얻어보았음 (스크린샷은 짤림)
2) 프롬프트 템플릿으로 농담 요청해보기
중괄호를 활용해 {키워드} 를 결정하고, 해당 키워드에 내가 원하는 토픽을 넣는 방식으로 요청해 봄
파트너님 코멘트: PromptTemplate 클래스에 더 많은 기능이 있으니 클래스를 활용해보세요 » 다음 사례에서…
3) OutputParser로 과일을 리스트로 받고 저장하기
내가 기대했던 OutputParser의 기능이 아니었다
파트너님: LangChain Doc을 보고 다시 해보세요 » 다음 사례에서..
(1) 그냥 요청해보기
(2) OutputParser에 instruction format 사용해보기
4) 5개의 과일 이름을 배열로 요청하고 색상 물어보기
참고 자료에 있는 예시 코드를 그대로 활용해봄 (아래는 활용 예시 코드)
여태한 내용들을 통합하고 변형한 결과
파트너님 의견: LCEL은 개념이고, 적용한 코드는 Chain을 활용한 것임. Doc을 보고 공부해보세요.. » 다음 사례…
2. Retrieval
0) 초기 세팅
pip install pypdf
langchain이 pdf 읽고 처리하는데 필요한 패키지
대상 PDF (19쪽 짜리 ChatGPT에서의 Prompt pattern 카탈로그 정리 논문)
1) PDF 내 텍스트 가져오기
2) 텍스트를 chunk로 분할하기
여러 Splitter 중에서 Recursive Character Text Splitter를 사용했음
해당 분할기가 의미적으로 덜 누락되며 문서를 분할하는 것 같음
3) FAISS로 저장하고 유사도 검색 해보기
FAISS는 모델 내 벡터 임베딩을 바탕으로 유사성을 검색하기 위한 도구
FAISS를 사용해보려면 아래 세팅이 필요했음
pip install langchain-openai, faiss-cpu
고차원 벡터 연산이 필요하기 때문에 faiss-gpu가 더 빠를 것 같으나… 현재 pc에는 gpu가 없어서 그냥 cpu로 해봄 » 그래서 그런지 약간 느렸음
#9기랭체인