한 달 전에 GeekNews에서 이 글을 보고 영감을 받아 비슷하지만 조금 다른(?) 개발을 해보았습니다.
좀 더 채팅 몰입도와 연출을 끌어올릴 수 있는 방향을 주로 고민하면서 만들었습니다. 지인중에 UX 기획 하시는 분과 같이 둘이서 5월 연휴동안 매일 판교 스벅에 짱박혀서…
만들면서 챗봇 형식이 과연 이와 같은 정보 전달에 효과적일지 의문은 들었습니다. 그래도 이미 시작한 것을 멈출 수가 없어서, 만들다 보니 직업병 같은 게 발동해서 계속 공을 들이다보니 프로젝트를 90시간이나 했습니다 ㅠ (현재 전업 직장인이 아니라서 가능한)
사실, LLM 모델이 어떤게 어디에 좋고 판단할 지식이 아직은 부족합니다. 여러 우수하고 가격 경쟁력있는 모델들이 많이 있겠지만, 그래도 사용자 입장에서 답변 품질이 최소한 보장이 될 수 있는건 Anthropic(Claude) 모델 밖에 없다고 생각했습니다. 특히 한국어로 자연스러운 대화가 가능한 수준의 LLM이라면 일반 사용자들의 경험 측면에서도 Claude가 가장 높은 만족도를 보인다는 데에 많은 분들이 공감하고 있을 것이라 생각합니다.
단점은 API 사용료가 비쌉니다... 개발자들이 코딩할 때 주로 사용하는 Claude 3.7 Sonnet 은 100만 토큰 처리에 (Input $3 / Output $15) 인데, 정책공약 문서 1개를 RAG(검색증강생성)를 위해 프롬프트에 붙여서 전송하면 질문 한 건에 10원 넘게 날아갑니다ㅠ. 그나마 보다 짧은 맥락의 가볍게 처리할 수 있는 Claude 3.5 Haiku 를 써서 질문 한 건에 2~3원 정도로 줄일 수 있었습니다. 개발하는 과정 중 사용한 API 비용은 $17 정도네요.
벡터 DB 구축에 쓰는 임베딩 모델은 Voyage-3 를 썼습니다. Anthropic API 공식 문서에서도 권장을 하는 모델이라 간단한 개념만 익히면 바로 사용하는데 문제는 없습니다. Voyage AI 는 참고로, NoSQL 데이터베이스 분야에서 세계 최대 시장 점유율을 보유한 MongoDB에 최근 2억 2천만 달러에 인수되었습니다.
중앙성거관리위원회에서 운영하는 정책·공약마당 홈페이지에서 각 정당 및 후보자가 제출한 PDF 형식과 웹 페이지로 제공되고 있어서, 어렵지 않게 데이터를 구할 수 있었습니다.
처음엔 PDF를 텍스트 형식으로 변환한 후 임베딩 모델에 던지려 했는데, PDF 자체가 구조화된 문서가 아니었기 때문에 자료 형식을 정리하는데 들이는 시간이 오히려 더 소요될 것 같았습니다. 다른 대안으로 웹 페이지에 있는 HTML을 긁어서 마크다운으로 변환하여 자료를 구조화 하였습니다.
많은 양의 PDF 등의 바이너리 자료를 임베딩 처리하고 싶을 때 어떻게들 하시는지... 처리량이 많으면 생각보다 AI도구 활용을 해도 쉽지는 않습니다.
ChatGPT, PicLumen, Runway 상용 서비스들을 적절히 혼합해서 만들었습니다. 캐릭터의 느낌을 처음 만들 때 ChatGPT 로 원형을 뽑은 후, 다양한 베리에이션은 PicLumen 에서 만들어서 관리하기가 좋았습니다. (무료에, 배경 제거 기능이 좋습니다)
AI 캐릭터를 만드는 과정에도 우여곡절이 많았지만, 기왕 만든 캐릭터를 최대한 활용하고 싶었습니다. 그래서 첫 화면에 웹 사이트가 전달하고 싶은 분위기로, 치열하게 연설하는 캐릭터들의 모습을 Runway를 활용해서 영상으로 만들어 인트로를 추가했습니다.
(아직 만들어놓고 활용하지 못 한 영상 소스들...)
--
개인적으로 AI 응용 개발을 서비스적으로 여러 가능성 시험해 보고 있는데, 이번에 기술 접근 및 구현 관해서 좋은 경험이 되었습니다. AI 응용 프로젝트도 재미를 넘어서 서비스를 만들려면 고려해야 할게 너무 많은 것 같습니다. 개선하고 싶은 항목은 차고 넘치나 일주일 밖에 안 남아서 그만 멈춰야 할거 같은데 미련은 남네요.
Anthropic API 비용은 (..)