콘텐츠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 |
성능 개선
시맨틱 검색 도입 전후 비교:
| 지표 | Before | After |
|---|---|---|
| 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 속도 제한 고려 필요
- 현재 데이터모델 행만 지원 (페이지/블록은 추후 지원 예정)