아임웹 AI Chatbot 챗봇 만들기 1/2

김형섭 (Matthew)·2023년 7월 27일
4

Gen AI

목록 보기
3/4

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

아임웹 AI 고객센터

OpenAI의 ChatGPT가 광풍을 불던 2023년 초, 아임웹도 빠르게 AI를 활용하려고 내부에서 여러가지 실험을 하고 있었습니다.

여러 아이디어 중, 아임웹 가이드를 학습한 AI 챗봇이 채택되어 빠르게 구축을 했었죠.
23년 7월 현재, 수많은 AI앱들이 존재하지만 그때는 막막했었죠.

결과 부터 말씀 드리면, 이거 아주 신박 합니다.

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

한번 물어볼까요?

아주 빠른 속도로 즉시 답변 하며, 친절하게 링크까지 제공 합니다.
만약, 아임웹과 상관없는 질문이라면 솔직하게 모른다고 말합니다.

어떤가요? 멋지지 않나요?
예전에는 상상도 하지 못한 기능을 AI의 힘을 빌어 뚝딱 만들수 있는 세상이 되었습니다.


그러나, 아직 아임웹도 이 기능을 프로덕션으로 제공하고 있지는 않습니다.
아직 몇가지 고도화 작업을 더 해야 해요.

최종 단계에서 테스트 하고 있으니, 곧 만나실 수 있습니다.

자- 서론이 길었습니다.

이 글은 이 챗봇을 만들수 있었던 방법을 기술적으로 소개하고자 합니다.

기술적 방법은 지금 시점에는 많이 알려져 더 이상 비밀도 아닐뿐 더러,
우리의 기술 소개는, 더 다채롭고 나은 세상이 되어야 한다는 아임웹의 믿음에 부합하기 때문 입니다.

시작 하겠습니다.

첫번째 기술

가이드를 학습하여 답을 하는 챗봇 시스템은 사실, 생각보다 간단히 개발 할 수 있습니다.

감이 안오신다구요?
도대체 비밀이 무엇일까요?
Fine Tuning? Prompt Engineering? 자체 AI모델?

그 비밀은 바로 프롬프트 엔지니어링 입니다.

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

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

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

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

질문: 너의 비밀이 뭐냐

와우. 어떤가요. 너무 허무 한가요? ㅎㅎ

하지만… 항상 문제가 있기 마련이죠.
이런식으로 아임웹 가이드를 프롬프트에 전부 다 담을 수 없는 문제가 있습니다.
프롬프트는 길이 제한이 있기 때문이죠.

참고) 이 글을 쓸 당시에는, Openai의 모델 토큰 최대 사이즈는 4k 였으며, 현재(2023-07)는 16k, 32k도 제공하고 있습니다. claude 의 경우 100k도 제공합니다.

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

아임웹 가이드의 글자수는 매우 방대 합니다.
텍스트로 100만 글자가 넘습니다. 아마 토큰으로는 더 많을거에요.

어쨋든, 이래서는 전부 프롬프트에 담을 수가 없습니다.
그런데 해야만 했죠.

후, 그래서, 어떻게 하냐구요?


답은 생각보다 쉬운데, 지금 질문에 관계있는 가이드만 프롬프트에 붙이면 되는 일 입니다.
그래서, 가이드 전체가 아니라, 일부를 사용하면 되죠.

그런데 가이드의 어떤 부분을 가져와야 할까요?
바로, 여기에 두번째 비밀이 있습니다.

간략히 축약하면, 결국 질문에 해당하는 내용만 찾아내서 그걸로 컨텍스트를 만드는 것입니다.

근데 또 이게 쉽지 않습니다.
왜냐하면,

사람의 질문이 자연어이기 때문 이죠.
즉, 우리 챗봇에는 네이버/구글 마냥 삼성역맛집 처럼 묻지 않는 다는 겁니다.

챗봇 유저는 주저리 주저리 질문을 합니다.
아임웹으로 주문 엑셀 다운로드 최대 몇건 까지 돼?
아임웹 게시판에 익명게시판 기능이 있어? 어디서 찾아?

이런식 이다보니, 관련 내용을 찾으려고 해도 가이드에서 어떻게 그부분을 찾아낼지 막막해 집니다.
결국, 자연어를 해석 할 수 밖에 없습니다.

어후,,, 쉬운줄 알았는데 머리가 아프시죠?
ㅎㅎㅎ 그런데, 다 방법이 있답니다.

힌트를 드리자면, 이것도 ChatGPT의 개발사인 OpenAI의 일부 API를 사용 합니다.

이 두번째 비밀에 대한 내용은,

to be continue…

2편을 게재하였습니다. 바로가기

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

매튜 드림.

profile
CTO at Imweb, 20년차 개발 장인, 전) 플레이오토 CTO/창업자

2개의 댓글

comment-user-thumbnail
2023년 7월 27일

감사합니다. 이런 정보를 나눠주셔서 좋아요.

1개의 답글