문서의 바다에서 더 이상 표류하지 마세요

Chanyoung Park·2025년 9월 2일
1

Notion search agent

문서의 바다

다양한 조직에서 노션으로 데이터베이스를 만들어 사용합니다.
보통 그런 데이터베이스에는 프로젝트 개요, 의사 결정 배경 등 조직 운영 과정에서 발생한 거의 모든 정보가 들어가요.

초반에는 이게 특별한 문제를 발생시키지 않습니다.
하지만 조직이 성숙해지고 쌓인 데이터가 방대해질수록 문서 하나를 찾기 위해 여행을 떠나야 한다고 말해야 할 정도로 탐색 난이도가 매우 높아집니다.

'이거 분명 누가 정리 했을것 같은데 어디갔을까'
'너무 옛날 일이라서 문서를 못찾겠네'
'누가 정리해두긴 했나? 내가 써야하나?'

그래서 결국 문서를 다시 썼다가 한참 뒤에 찾고자 했던 문서를 발견해서 중복 문서가 탄생하는 해프닝까지 발생합니다.

Notion Search Agent

제가 만든 Notion Search Agent는 조직 혹은 개인의 노션 문서를 크롤링하여 배경지식을 모두 알고 있는 AI 비서를 사용할 수 있는 서비스입니다.

채팅 형식으로 찾는 정보를 물어보면 해당 정보를 정리해서 인간친화적으로 답변해주고 각주를 추가하여 해당 정보를 어떤 문서에서 얻었는지 링크를 같이 전달해줍니다.

동작 원리

  1. 노션 문서를 연쇄적으로 탐색할 수 있는 진입점으로 Notion API를 호출합니다.
  2. 문서에 작성된 콘텐츠를 순차적으로 탐색하다가 다른 페이지로 연결 된 링크가 존재하면 해당 페이지로 진입하여 같은 과정을 반복합니다.
  3. 수집 된 데이터를 Map 자료형을 이용하여 문서 단위로 메모리에 저장합니다.
  4. 저장 된 Map을 Vector DB (Weaviate)에 저장합니다.
  5. 사용자의 질문을 기반으로 가장 유사한 결과를 쿼리 합니다.
  6. 쿼리 된 문서를 Open AI API에 같이 전달하여 에이전트가 자연어로 답변하게 합니다.

Vector DB를 사용하는 이유

Open AI API는 매 요청마다 에이전트가 어떻게 답변해야 하는지 프롬프트 형태로 작성해두고 이를 사용하여 매번 새로운 결과를 얻어내는 방식입니다.

다시말해, 답변에 필요한 컨텍스트를 사전에 지정하지 못하기 때문에 매 요청마다 답변에 필요한 지식을 주입해야 한다는 얘기입니다.

Notion Search Agent를 사용해야 할 정도로 성숙한 데이터베이스를 보유한 조직은 매우 많은 문서를 보유하고 있을테니 매 요청마다 모든 문서를 보내면 토큰 비용이 매우 많이 발생할 수 있습니다.

그래서 Vector DB로 유사한 결과값을 1차적으로 필터링하고 검색 된 문서만 Open AI에 전송하여 토큰 비용을 절약할 수 있습니다.

소스코드 링크

https://github.com/univdev/notion-search-agent

본 프로젝트는 오픈소스로 운영되고 있습니다.
혹시 노션 탐색 경험 문제에 대해 관심이 있으시면 PR 날려주시면 감사할 것 같습니다.

데모

데모

profile
도전을 멈추지 않는 Front-End 개발자 박찬영입니다.

0개의 댓글