Side Project : 내 카톡 데이터로 도플갱어 GPT 만들기
안녕하세요 메이커 김민서(Jimmy) 입니다. 이번에 스터디하며 <내 카톡을 바탕으로 말하는 도플갱어> 라는 재미있는 사이드 프로젝트를 하게되어서 공유드리려고 합니다.
Result
(제가 습관처럼 하는 말을 따라하는 도플갱어 봇)
Concept
전체적인 로직은 다음과 같습니다.
- 질문이 들어오면
- 질문과 연관된 내 카톡 내역을 검색하고
- 그 카톡들을 예시로 GPT 에게 던져주고 참고해서 말하게 하자
GPT 에게 내 카톡 데이터 검색이라는 도구를 달아주는 과정으로 봐주시면 될것같습니다.
Database
우선 테스트에 활용할 대화를 활용해보기 위해 상대방의 동의를 얻어야 합니다. (Important)
Text to Vector (for search)
질문 맥락과 관련된 전후 대화를 가져오기 위해서 하나의 파일로 되어 있는 카카오톡 채팅 데이터를 여러 Chunk 로 나누어 벡터화 하는 과정을 거쳤습니다. 벡터의 유사도를 통해 관련있는 채팅 조각을 가져오게 됩니다.
벡터화 하는 과정은 OpenAI 임베딩 모델 text-embedding-ada-002 을 활용했고
Vector Database 는 Open Source 인 Chroma 를 활용하였습니다.
Make Chain and Run
Langchain 을 활용하여 검색, 프롬프트 변환, LLM (large language model) 을 하나의 체인으로 동작하게 연결하고 동작시켜보면 됩니다. LLM 은 OpenAI GPT-4 모델을 활용하였습니다. 전후 채팅 내역을 일부 확인할 수 있게 Memory 또한 추가해봤습니다.
회고 1.
내용적으로는 부족하긴 하지만 제가 하는 말투와 언어 습관을 모방하는 도플갱어 챗봇과 대화하는 기분은 정말 이상했습니다. 부족하면서도 가끔은 모두가 공감하는 저의 습관적인 말들이 등장할 때, 과도한 긍정이나 습관화된 칭찬이 등장할 때 등 여러 상황을 통해 자아 성찰(?)을 해보게 되어 재미있으면서도 뼈아픈 경험이었습니다.
회고 2.
GPT에 도구를 달아주는 경험은 마치 어린아이에게 연필을 쥐여주는 기분 같았습니다. Input Form이 정해져 있는 API의 앞단에 작은 의사결정 및 데이터 처리를 해주는 부분을 대체함으로써 Form 이 없는 API 가 가능하다는 점도 인상적입니다. 앞으로 할 수 있는 것들이 너무 무궁무진해서 미래가 너무 기대됩니다.
Project Github
https://github.com/sanggubot/DoppelgangerGPT
GitHub - sanggubot/DoppelgangerGPT: This GitHub repository uses OpenAI API, vector search, and langchain to create personalized digital doppelganger that mimic your language and communication style. Doppelganger provides an AI-based chatbot experience that reflects the user's personality based on KakaoTalk chat data.
This GitHub repository uses OpenAI API, vector search, and langchain to create personalized digital doppelganger that mimic your language and communication style. Doppelganger provides an AI-based ...
https://github.com/sanggubot/DoppelgangerGPT
댓글
로그인 후 댓글을 남길 수 있습니다.
와 너무 재밌는데요 민서님???? 만드시는 데 얼마나 걸렸나요? 다른 분들도 따라할 수 있는 튜토리얼을 만들어 주시거나 원데이 클래스를 열어보시면 어때요?? AI와 인간의 상호작용에 관심있는 사람들이 모여 있는 저희 클럽에서 진행해 봐도 좋을 것 같아요. https://disquiet.io/club/hitl
안녕하세요 종한님, 실제로 만드는데에는 많은 시간이 걸리진 않았지만 빠르게 업데이트 되는 langchain docs 를 이해하는데 조금 시간이 걸렸었습니다. 튜토리얼 개념으로 쉽게 확인해보실 수 있게 코드를 정리해두기도 했는데 부족하지만 원데이 클래스로도 짧게 진행해보는것도 좋을것같습니다. :)
공유해주신 깃헙 레포 readme 보니까 간단할 것 같기도 한데요!!
다운님 안녕하세요 ㅎㅎ 공유주신 링크도 레퍼런스로 참고했었습니다. 확인해보기로는 microsoft/visual-chatgpt 또한 langchain 을 활용해서 개발되었었고 많은 OpenAI 활용 프로젝트들이 chain process 로 다양하게 구현중이라 참 재미있습니다. 이미 GPT 에 여러 도구들을 연동해서 충분히 mini-AGI 격으로 쓸 수 있지 않나 라는 생각도들어요. Langchain, GPT-Index (Llama-index) 로 키워드 같이 보셔도 좋을것같습니다. 이 링크도 같이 보셔도 재미있으실것같습니다. https://medium.com/corca/%EB%8B%B9%EC%8B%A0%EC%9D%98-%EC%9A%94%EC%B2%AD%EC%9D%84-%EC%8B%A4%ED%96%89%ED%95%98%EB%8A%94-eval-ba407b95a578
민서님 메이커로그가 Must Reads #152에 선정됐어요! https://stib.ee/jHT7
소개해주셔서 감사합니다 도언님! :)
와 진짜 재밌는 아이디어입니다 민서님! 저도 다음에 한 번 도전해보고 싶네요 ㅎㅎ
와 정말 재미있네요! 오픈채팅에서도 사용해보면 정말 좋을 것 같습니다. 소스코드도 감사합니다.