아임웹 AI 챗봇 만들기 1편

IMWEB tech
imweb tech
Published in
4 min readOct 13, 2023

이 글은 2편에 걸쳐 나누어 게재될 예정입니다.

안녕하세요.
아임웹 CTO 매튜입니다.

OpenAI의 ChatGPT가 광풍을 일으키던 2023년 초, 아임웹도 빠르게 AI를 활용하려고 내부에서 여러 가지 실험을 하고 있었습니다. 여러 아이디어 중 ‘아임웹 가이드를 학습한 AI 챗봇’이 채택되어 빠르게 구축을 했었죠. 지금은 수많은 AI앱들이 존재하지만 그때는 막막했었습니다. 결과부터 말씀 드리면, 이거 아주 신박합니다.

만들자마자 아임잘알이 되었습니다. 이 챗봇은 아임웹으로 무언가 하고자 할 때, 그 방법을 가장 빠르고 정확하게 알려 줍니다. 한번 물어볼까요?

아주 빠른 속도로 즉시 답변하며 친절하게 링크까지 제공합니다. 만약, 아임웹과 상관없는 질문이라면 솔직하게 모른다고 말합니다. 어떤가요? 멋지지 않나요? 예전에는 상상도 하지 못한 기능을 AI의 힘을 빌어 뚝딱 만들 수 있는 세상이 되었습니다.

그러나 아직 아임웹은 이 기능을 프로덕션으로 제공하고 있지 않습니다. 아직 몇 가지 고도화 작업을 더 해야 해요. 최종 단계에서 테스트 하고 있으니, 곧 만나실 수 있습니다.

자- 서론이 길었습니다.

이 글을 통해 이 챗봇을 만들 수 있었던 방법을 기술적으로 소개하고자 합니다. 기술적 방법은 지금 시점에는 많이 알려져 더 이상 비밀도 아닐 뿐더러, 우리의 기술 소개는 ‘더 다채롭고 나은 세상이 되어야 한다’는 아임웹의 믿음에 부합하기 때문입니다.

시작 하겠습니다.

첫 번째 기술

가이드를 학습하여 답을 하는 챗봇 시스템은 사실, 생각보다 간단히 개발 할 수 있습니다. 감이 안 오신다구요? 도대체 비밀이 무엇일까요? Fine Tuning? Prompt Engineering? 자체 AI모델? 그 비밀은 바로 프롬프트 엔지니어링 입니다.

아임웹 챗봇 프롬프트의 모양

아임웹 챗봇에 질문을 하면, 프롬프트를 다음처럼 구성 하여 ChatGPT에 물어보는 것과 같습니다.

Context: 아임웹 가이드의 내용... 블라블라 아임웹 가이드의 내용... 
블라블라 아임웹 가이드의 내용... 블라블라 아임웹 가이드의 내용... 블라블라

- 위 컨텍스트를 참고해서 아래 질문에 답변을 해.
- 컨텍스트에 없는 내용을 물어보면, "죄송합니다. 답변 할수 없는 내용입니다."라고 답변 해

질문: 너의 비밀이 뭐냐

와우. 어떤가요. 너무 허무한가요? ㅎㅎ 하지만 항상 문제가 있기 마련이죠. 이런 식으로 아임웹 가이드를 프롬프트에 전부 다 담을 수 없는 문제가 있습니다. 프롬프트는 길이 제한이 있기 때문이죠.

[참고] 이 글을 쓸 당시에는, Openai의 모델 토큰 최대 사이즈는 4k 였으며, 2023.07 기준 16k, 32k도 제공하고 있습니다. claude 의 경우 100k도 제공합니다.

OPEN AI의 gpt 3.5-turbo모델은 약 4096 tokens 의 프롬프트 길이 제한이 있습니다. token은 쉽게 영어 한 단어 정도라고 생각하셔도 됩니다. 한글은 단어 외에도 조사, 어미 등이 토큰으로 취급되어 토큰이 더 많이 필요합니다.

아임웹 가이드의 글자 수는 매우 방대합니다. 텍스트로 100만 글자가 넘습니다. 아마 토큰으로는 더 많을 거에요. 이래서는 전부 프롬프트에 담을 수가 없습니다. 그런데 해야만 했죠. 후… 어떻게 하냐구요?

답은 생각보다 쉬운데, 지금 질문에 관계있는 가이드만 프롬프트에 붙이면 됩니다. 가이드 전체가 아니라 일부를 사용하면 되죠. 그런데 가이드의 어떤 부분을 가져와야 할까요?

바로 여기에 두 번째 비밀이 있습니다. 간략히 축약하면, 결국 질문에 해당하는 내용만 찾아내서 그걸로 컨텍스트를 만드는 것입니다. 그러나 이게 쉽지 않습니다. 왜냐하면 사람의 질문이 자연어이기 때문이죠.

즉, 챗봇 유저는 챗봇에 네이버/구글 마냥 삼성역 맛집처럼 묻지 않는다는 겁니다. 챗봇 유저는
아임웹으로 주문 엑셀 다운로드 최대 몇 건까지 돼?”
“아임웹 게시판에 익명게시판 기능이 있어? 어디서 찾아?”
이런 식으로 질문하다 보니 관련 내용을 찾으려고 해도 가이드에서 어떻게 그 부분을 찾아낼지 막막해 집니다. 결국 자연어를 해석할 수밖에 없습니다.

어후, 쉬운 줄 알았는데 머리가 아프시죠? 그런데 다 방법이 있답니다. 힌트를 드리자면, 이것도 ChatGPT의 개발사인 OpenAI의 일부 API를 사용합니다.

이 두 번째 비밀에 대한 내용은 2편에서 계속됩니다.

언제나 즐거운 코딩 되세요.

매튜 드림.

--

--