SuitsDocs
콘텐츠Taylor AI 에이전트

시맨틱 검색

AI가 워크스페이스 데이터를 의미 기반으로 검색하는 기능

개요

시맨틱 검색은 Taylor AI가 워크스페이스의 데이터를 의미 기반으로 검색할 수 있게 해주는 기능입니다.

기존에는 "오늘 할 일" 같은 질문에 AI가 여러 번의 도구 호출(데이터모델 목록 조회 → 상세 조회 → 행 조회)을 해야 했습니다. 시맨틱 검색을 사용하면 1-2회의 호출로 관련 데이터를 바로 찾을 수 있습니다.

작동 방식

1. 자동 인덱싱

데이터모델의 행이 변경될 때마다 자동으로 인덱싱됩니다:

데이터 변경 → 벡터 임베딩 생성 → 인덱스 저장

인덱싱되는 정보:

  • 행의 제목
  • 모든 속성값 (속성명 + 타입 + 값)
  • 데이터모델 이름
  • 메타데이터 (날짜, 담당자 등)

2. 의미 기반 검색

AI가 semantic_search 도구를 사용하여 검색합니다:

사용자: "오늘 마감인 업무 알려줘"

AI: semantic_search("오늘 마감인 업무", { date_gte: "2025-02-05" })

벡터 유사도 검색 + 날짜 필터

관련 데이터 반환

사용 예시

기본 검색

"고객 피드백 찾아줘"
"버그 관련 이슈"
"김철수 담당 업무"

필터 조합

"이번 주 마감인 업무" → 날짜 필터 자동 적용
"김철수가 담당하는 진행 중인 작업" → 담당자 + 키워드 검색
"지난달 완료된 프로젝트" → 날짜 범위 + 키워드 검색

인덱싱 대상

현재 지원되는 인덱싱 대상:

대상설명상태
데이터모델 행모든 데이터모델의 행✅ 지원
페이지 본문페이지 내용🔜 예정
블록 콘텐츠개별 블록 내용🔜 예정

필터 옵션

semantic_search 도구에서 사용 가능한 필터:

필터설명예시
source_type검색 대상 유형datamodel_row, page
date_gte시작 날짜2025-02-01
date_lte종료 날짜2025-02-28
assignee_id담당자 ID사용자 ID

성능 개선

시맨틱 검색 도입 전후 비교:

지표BeforeAfter
LLM 호출3회1-2회
Tool 호출3회1회
토큰 사용량~45K~15K
응답 시간~8초~3초

초기 인덱싱

기존 데이터가 있는 경우, 초기 인덱싱 스크립트를 실행합니다:

# 모든 워크스페이스 인덱싱
bun run scripts/initial-content-indexing.ts

# 특정 워크스페이스만 인덱싱
bun run scripts/initial-content-indexing.ts [workspace-id]

기술 스택

  • 벡터 DB: Neon PostgreSQL + pgvector
  • 임베딩 모델: Google Gemini text-embedding-004 (768차원)
  • 인덱스 타입: HNSW (코사인 유사도)
  • Queue: pgboss (비동기 처리)

제한사항

  • 임베딩 생성에 약간의 지연이 있을 수 있음 (비동기 처리)
  • 초기 인덱싱 시 Gemini API 속도 제한 고려 필요
  • 현재 데이터모델 행만 지원 (페이지/블록은 추후 지원 예정)