월요일에 각 팀에서 만든 QA엔진과 챗봇을 발표하는 시간이 있었다. 우리 팀은 QA 엔진을 만들었는데, 다른 팀 발표를 보니 챗봇 만드는 것도 너무 재밌어보였다! 나도 한번 해봐야지 하고 어제 하루종일 붙잡고 있었다.
내가 좋아했던 미드 빅뱅이론에 쉘든이라는 캐릭터를 가지고 챗봇을 만들어 보는 중.. 아직 확실하게 완성된 건 아닌데 일단 물어보면 그럴듯하게 답변이 나오는 것 같아서 깃허브에 ipynb 파일 그대로 냅다 올려놨다. 정리는 아직 못했다.ㅠ 사실 챗 히스토리 부분?이 아직 잘 이해가 안가서 정리가 안됐기도하고.
빅뱅이론이 워낙 인기있었던 미국 드라마라 전체 스크립트를 쉽게 찾을 수 있었다.
https://bigbangtrans.wordpress.com/
Big Bang Theory Transcripts
All the episodes, right here.
bigbangtrans.wordpress.com
이곳에서 스크립트를 전부 크롤링해서 txt 파일로 만들어 저장했다.
텍스트 파일을 모두 로더에 올리고 텍스트스플릿터로 청킹할 때에는 CharacterTextSplitter를 사용했다가 나중에 토큰 기반 분할(Token-based splitting)로 바꿈 -토큰은 일반적으로 단어나 부분 단어 단위로 나뉘기 때문에, 단어가 중간에 잘리는 경우가 줄어든다). 청크 사이즈는 500, 청크 오버랩 100으로 줌.
청크한 데이터를 임베딩 모델 FAISS를 써서 벡터인덱스를 만들어준다. (질문과 유사한 정보를 빠르게 검색할 수 있게함. FAISS는 입력 쿼리와 가장 유사한 벡터를 빠르게 찾을 수 있는 알고리즘을 제공) 인덱스는 로컬에도 저장해줬다.
그리고 프롬프트템플릿을 만들어주고, 체인을 걸어주는건데 랭체인 공식홈에서 베껴와서 걸어줬다.
자세한 코드는 아래 github에 chatbotmaking.ipynb에 정리했다.
https://github.com/hannakhw/SheldonChatbot
GitHub - hannakhw/SheldonChatbot
Contribute to hannakhw/SheldonChatbot development by creating an account on GitHub.
github.com
이런 식으로 쉘든봇이랑 대화할 수 있다. 메모리도 가지고 있음 ㅎㅎ
이걸 좀더 보기 좋게 스트림릿? 이런걸로 구현해보고싶다.
'공부방 > Upstage AI Lab 4기' 카테고리의 다른 글
학습일지| AI를 위한 기초 수학 후기 | 딜런 강사님 (0) | 2024.08.24 |
---|---|
기초통계특강 복습 필기 (0) | 2024.08.23 |
Github 레파지토리 만들고 나서 연결, 깃허브에서 파일 삭제 (0) | 2024.08.21 |
Github에 소스코드 올리기 | api-key는 환경변수로 설정 (0) | 2024.08.15 |
QA Engine 개발 Day3 | 깃허브로 코드 pull push (0) | 2024.08.15 |