AI 어시스턴트 개발의 주요 목표는 효율성 증대와 함께 인간적인 소통의 요소를 유지하는 것이었습니다. 매주 수십 개의 아티클을 요약하는 작업은 시간 소모적이고 지루할 수 있지만, 독자들에게 매력적이고 관련성 높은 내용을 전달하기 위해서는 필수적인 과정입니다. 따라서 AI 어시스턴트는 단순한 자동화를 넘어, 기존 뉴스레터의 스타일과 톤을 유지하면서 핵심 내용을 효과적으로 전달하는 데 중점을 두었습니다.
이 AI 어시스턴트는 다음과 같은 기술 스택을 기반으로 구축되었습니다: * Sinatra: 마케팅 팀이 AI 어시스턴트와 상호작용할 수 있는 간단한 인터페이스를 제공합니다. * pgvector: 아티클 요약의 벡터 임베딩을 저장하고 쿼리하는 데 사용됩니다. * Langchain.rb: 임베딩 모델 및 LLM과의 상호작용을 처리하고 전체 워크플로우를 관리합니다.
임베딩 모델로는 OpenAI의 ada-002
가, LLM으로는 OpenAI의 gpt-40
모델이 사용되어 고품질의 임베딩과 요약 생성을 가능하게 합니다.
AI 어시스턴트의 작동 방식은 다음과 같습니다. 팀원이 슬랙 명령어를 통해 아티클 링크를 제안하면, 어시스턴트는 해당 아티클의 HTML 콘텐츠를 가져오고, nokogiri
(루비 HTML 파서)를 사용하여 제목과 본문 내용을 추출합니다. 불필요한 요소를 제거하는 최소한의 정제 과정을 거친 후, ada-002
모델을 사용하여 콘텐츠를 벡터 형태로 임베딩하고, 이를 PostgreSQL 데이터베이스에 pgvector
를 통해 저장합니다. 이어서 요약 생성 프로세스가 트리거됩니다.
요약 생성 과정에서는 gpt-40
모델을 활용합니다. 먼저, pgvector
의 코사인 유사도 검색을 통해 이전에 생성된 요약 중 가장 유사한 세 가지 예시를 데이터베이스에서 가져옵니다. 이 예시들은 generate
및 review
전략에 사용됩니다. 초기 요약은 아티클 내용과 가져온 예시를 바탕으로 생성되며, 이후 이 초안은 예시 및 일련의 지침과 비교하여 스타일과 톤이 일치하는지 검토됩니다. 만족스러운 경우 승인되고, 그렇지 않은 경우 피드백을 제공하여 초안을 개선합니다. 요약 생성 및 검토에 사용되는 프롬프트 구조는 상세하게 정의되어 있어, 어시스턴트가 브랜드의 목소리와 스타일에 부합하는 요약을 생성하도록 돕습니다.
만약 AI 어시스턴트가 생성한 요약이 뉴스레터에 적합하지 않다고 판단되면, 마케팅 팀은 간단히 버튼 클릭과 피드백 제공을 통해 요약을 재생성할 수 있습니다. 이때 LLM의 ‘온도(temperature)’를 조절하여 결과물의 창의성을 높이거나 낮출 수도 있습니다. 재생성 과정은 초기 생성과 유사하지만, 마케팅 팀이 제공한 피드백을 추가적으로 고려하여 더욱 맞춤화된 요약을 도출합니다.