김민서

김민서님의 아티클

김민서

김민서

Side Project : 내 카톡 데이터로 도플갱어 GPT 만들기

안녕하세요 메이커 김민서(Jimmy) 입니다. 이번에 스터디하며 <내 카톡을 바탕으로 말하는 도플갱어> 라는 재미있는 사이드 프로젝트를 하게되어서 공유드리려고 합니다.


Result

(제가 습관처럼 하는 말을 따라하는 도플갱어 봇)


Concept

전체적인 로직은 다음과 같습니다.

  1. 질문이 들어오면
  2. 질문과 연관된 내 카톡 내역을 검색하고
  3. 그 카톡들을 예시로 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

url thumbnail

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


27
8