챗봇 진화: 더 스마트한 상호작용을 위한 1주일 스프린트
1주일 만에 챗봇을 재구축했습니다. 기본 게시물 요약에서 청킹, 보안, 메타데이터가 포함된 전문 검색으로 업그레이드한 과정과 AI 성능과 비용의 균형에 대해 배운 것을 공유합니다.
업데이트 (2026): 이 챗봇은 Sydney로 진화했습니다! 여러 차례 반복 개선을 거쳐, Sydney는 현재 /ask/에서 블로그 콘텐츠와 제품에 초점을 맞추고 있습니다.
지난주 DIY 챗봇의 버전 0.1을 출시했을 때, 제 목표는 블로그 게시물 전체의 정보를 종합해 질문에 답할 수 있는 대화형 에이전트를 만드는 것이었습니다. v0.1은 코딩 초보자로서 큰 첫 걸음이었지만, 상당한 한계가 있었습니다. 지식 기반에는 게시물의 요약만 포함되어 있었고, 챗봇은 숫자나 날짜 같은 구체적인 세부 정보를 정확하게 검색하는 데 어려움을 겪었습니다. 제 동기는 실습을 통해 챗봇의 기능을 점진적으로 개선하는 것이었습니다. 이 글은 1주일간의 최적화 후 업데이트를 제공합니다. 전문 기사 콘텐츠를 포함하도록 지식 기반을 확장하고, 보안 조치를 강화하며, 비용 효율성을 위해 AI 모델을 최적화하는 데 집중했습니다. 챗봇이 아직 갈 길이 멀지만, 이러한 초기 업그레이드는 유망한 진전을 나타냅니다.
이전 버전 이후 수행한 작업은 다음과 같습니다:
1. 기능
챗봇에 2023년 10월 말까지의 모든 최신 게시물이 포함됩니다
10월에 6개의 블로그 게시물을 발행했으며, 모두 챗봇의 지식 기반에 포함되었습니다. 예를 들어, "Chandler가 Coursera에 대해 쓴 핵심 통찰을 알려줘"와 같은 질문을 할 수 있으며, 챗봇은 2023년 10월에 작성한 기사를 기반으로 답변을 제공할 수 있습니다.
지식 기반에 요약이 아닌 전체 블로그 게시물이 포함됩니다
첫 번째 버전에서는 OpenAI API의 컨텍스트 윈도우 길이 제한에 대한 지식/경험 부족으로 인해, 각 블로그 게시물의 요약을 생성한 후 OpenAI의 임베딩 API 엔드포인트를 사용해 임베딩해야 했습니다. 전체 기사를 더 작은 섹션으로 청킹하면서 맥락(메타데이터, URL, 제목 등)을 유지하는 방법을 몰랐습니다.
이번 주에 첫 번째 청킹 반복이 완료되었습니다. 챗봇 지식 기반에 이제 요약이 아닌 전체 블로그 게시물이 포함됩니다. 긴 기사에 대한 이상적인 청킹 제한과 접근 방식을 계속 개선하면서 아직 개선의 여지가 있습니다. 현재 긴 기사를 800토큰 이하의 작은 섹션으로 분할하고 "문단"을 자연스러운 구분점으로 사용합니다.
이 방식으로 다음 버전에서는 게시물에 쓰인 특정 숫자에 대한 질문에 더 쉽게 답할 수 있습니다.
블로그 게시물의 발행일, 제목, URL이 포함됩니다
사용자가 질문을 입력한 후, 검색 과정에서 블로그 게시물 제목, 발행일, URL이 챗봇에도 제공됩니다. 따라서 챗봇은 이제 요청 시 특정 URL이나 발행일을 사용자에게 제공할 수 있습니다.
이는 사용자가 재확인하거나 전체 블로그 게시물을 읽고 싶을 때 검증에 도움이 됩니다.
2. 보안
다음과 같은 매우 기본적인 보안 조치가 구현되었습니다:
- 입력이 API로 전송되기 전에 유효성 검사
- 기본 속도 제한 기능, 즉 분당 챗봇에 질문할 수 있는 횟수 제한
- 질의와 챗봇 응답을 OpenAI moderation API로 검증
3. GPT-4 vs GPT-3.5
비용 때문에 챗봇에 GPT-3.5 모델을 계속 사용할 것입니다. GPT-4의 답변이 GPT-3.5보다 훨씬 뛰어납니다. 하지만 대화 기록을 유지하면서 컨텍스트 윈도우 길이를 다루는 최선의 방법을 아직 찾지 못했기 때문에, 챗봇이 여러 게시물을 살펴봐야 하는 복잡한 질문의 경우 답변당 비용이 GPT-4에서는 $0.15나 $0.2 정도로 높습니다. 이 사이드 프로젝트에 그만한 비용을 감당할 수 없습니다. T.T
지금은 여기까지입니다. 챗봇을 사용해 보시려면 여기에 있습니다. 챗봇에 대한 이전 게시물은 이 링크입니다. 좋은 주말 보내세요.
직접 챗봇을 만들어 보셨거나 임베딩과 청킹을 다뤄보신 분이라면 궁금합니다 — 어떤 청크 크기와 접근 방식이 가장 잘 작동했나요? 저는 아직 실험 중입니다 :)
챗봇 여정의 다음 단계: 몇 달 후, LangChain과 FAISS를 사용해 전체 챗봇을 처음부터 다시 만들었습니다 — AI 에이전트와 함께 코딩 수렁에서 빠져나온 방법.
감사합니다,
Chandler
추신: Andrew Ng이 가르치는 Generative AI for Everyone 새 과정도 실망시키지 않습니다. 무료 과정으로, 생성형 AI에 대한 일반 지식, 일반적인 Gen AI 소프트웨어나 웹 애플리케이션이 어떻게 만들어지는지 등을 알려줍니다. 꽤 짧아서 주말 동안 모든 영상을 시청할 수 있습니다.





