최근 저는 Vertex AI의 검색 기능을 활용해 Perplexity AI와 유사한 서비스를 만들기 위한 여정을 계속하고 있습니다. 이번 글에서는 이 과정에서 겪은 시행착오와 배운 점을 공유하고, 향후 계획에 대해 이야기하고자 합니다.
1. Vertex AI와 Perplexity AI의 차이점 이해하기
Vertex AI(search agent)는 AI 검색 엔진입니다. AI를 활용해 더 정확한 검색 결과를 제공하는 것을 목표로 하며, 시맨틱 검색 기술을 사용해 질의의 의미를 파악하고 관련된 정보를 추천합니다. 예를 들어, 사용자가 "화사한 날에 입으면 좋은 셔츠"라고 검색할 경우, '화사한'이라는 단어의 의미를 이해하여 밝은 색상이나 화려한 무늬의 셔츠를 추천할 수 있습니다.
반면, Perplexity AI는 AI 답변 엔진입니다. 사용자의 질문에 대한 정확한 답변을 제공하는 데 초점을 맞추고 있으며, 정확한 출처의 데이터를 바탕으로 신뢰할 수 있는 답변을 생성합니다. 또한, 사용자의 질의가 복잡할 때는 이를 세분화하고, 각각의 질문에 대한 검색 결과를 통합하여 최적의 답변을 만들어냅니다. 예를 들어, "여름에 베트남과 세부 중 어디를 여행하면 좋은지 비교해 달라"는 질문이 주어지면, Perplexity AI는 각 나라에 대한 정보를 검색하고, 이를 종합하여 어느 나라가 더 좋은지 추천할 수 있습니다.
2. Vertex AI 테스트 경험과 시행착오
Vertex AI를 사용하여 Perplexity AI와 같은 기능을 구현하기 위해, 여러 문서를 API를 통해 수집한 후 데이터 스토어에 저장하고, 이를 바탕으로 질문에 대한 답변을 제공하는 테스트를 진행했습니다. 단순한 질문에 대해서는 만족스러운 결과를 얻을 수 있었습니다. 예를 들어, "야구의 경기 방식에 대해 설명해 주세요"라는 질문에 대해서는 좋은 결과를 제공했습니다.
그러나 복잡한 질문, 예를 들어 "야구와 하키의 경기 방식을 비교하고, 각 항목을 표 형식으로 생성해 주세요"라는 질문에 대해서는 적절한 답변을 제공하지 못했습니다. 그 이유는 데이터 스토어에 저장된 문서들 중에 야구와 하키의 경기 규칙을 모두 포함한 단일 문서가 없었기 때문입니다. 이 문제로 인해 검색 결과는 잘 나왔지만, 사용자의 요청에 따라 두 스포츠의 경기 방식을 요약하고 비교하지 못했습니다.
3. AI 답변 엔진을 위한 에이전틱 워크플로우 구축 계획
이러한 시행착오를 바탕으로, 저는 AI 답변 엔진을 개발하기 위한 에이전틱 워크플로우를 설계하기로 결정했습니다. 이를 위해 LangFlow를 이용하여 다음과 같은 세 가지 주요 에이전트를 통합할 계획입니다:
1. 질의 분석 에이전트: 사용자의 질의를 분석하고, 의미를 파악하여 질문을 세분화합니다.
2. 검색 결과 제공 에이전트: 세분화된 질의에 따라 검색 결과를 제공하고, 필요한 정보를 찾습니다.
3. 결과물 생성 에이전트: 통합된 검색 결과를 바탕으로 사용자의 요구 사항에 맞는 결과물을 생성합니다.
이 세 가지 에이전트를 유기적으로 결합하여, Perplexity AI와 같은 AI 답변 엔진을 구축할 계획입니다. 이 워크플로우는 사용자의 질문을 단순화하고, 각 질문에 대한 검색 결과를 통합해 최종 답변을 제공하는 과정을 통해 보다 정교한 AI 답변 엔진을 구현하는 것을 목표로 합니다.
4. 앞으로의 방향과 목표
앞으로의 목표는 Vertex AI와 프롬프트 엔지니어링, LangFlow를 조합하여 사용자의 질문에 최적화된 답변을 제공하는 것입니다. 이를 위해 사용자의 질의를 세분화하고, 검색 결과를 최적화한 뒤, 대형 언어 모델(LLM)을 활용해 사용자의 요구 사항에 맞춘 결과물을 생성하는 프로세스를 지속적으로 개선할 계획입니다.
이 과정에서 중요한 것은 AI 검색 엔진과 답변 엔진의 차이를 명확히 이해하고, 각 기술의 장점을 최대한 활용하는 것입니다. 시행착오를 통해 얻은 교훈을 바탕으로, Vertex AI와 프롬프트 엔지니어링, 그리고 LangFlow를 활용하여 더욱 정교하고 효율적인 AI 답변 엔진을 구축하기 위해 계속해서 노력할 것입니다.