쿼리 캐시
GenD의 쿼리 캐시는 Text-to-SQL 변환 결과를 캐싱하여 동일한 자연어 질문에 대한 응답 속도를 향상시킵니다. 캐시 히트 시 LLM 호출을 건너뛰어 비용과 지연 시간을 절감합니다.

현재 기본 비활성입니다 (#2720)
이 캐시는 기본적으로 꺼져 있습니다 (GEND_AI_SEMANTIC_CACHE_ENABLED=false).
조회가 벡터 유사도만 보고 워크스페이스 축이 없어서, 임계값 이상 유사한 질문이면 다른 워크스페이스가 생성한 SQL 이 반환될 수 있었습니다. 또한 캐시 히트는 데이터 권한 필터와 SQL 검증을 건너뜁니다.
워크스페이스 분리를 적용한 뒤 다시 활성화할 예정입니다.
주요 기능
- 의미 유사도 기반 캐싱: 질문의 임베딩 벡터로 유사한 이전 질문을 찾습니다. 문자열이 같지 않아도 의미가 가까우면 히트합니다(기본 임계값 0.95).
- 캐시 히트 표시: 응답에
cache_hit플래그를 포함하여 캐시 사용 여부를 알려줍니다
캐싱 동작 원리
- 사용자 질문을 임베딩 벡터로 변환합니다
- 벡터 저장소에서 가장 가까운 캐시 항목 1건을 찾습니다
- 유사도가 임계값 이상이고 이전 실행이 성공했다면 캐시된 SQL 을 반환합니다
(
cache_hit: true) - 아니면 AI Orchestrator 로 SQL 을 생성하고 결과를 캐시에 저장합니다
스키마 변경 시 자동 무효화는 없습니다
과거 문서에 "스키마 변경 시 관련 캐시를 자동 무효화한다"고 적혀 있었으나 구현되어 있지 않습니다. 스키마가 바뀌면 캐시된 SQL 이 낡을 수 있습니다.
캐시 관련 응답 필드
Text-to-SQL API의 응답에 포함되는 캐시 관련 필드입니다:
| 필드 | 설명 |
|---|---|
| cache_hit | 캐시 적중 여부 (true/false) |
| source | 응답 생성 소스 (cache, llm 등) |
API 엔드포인트
| Method | Path | Description |
|---|---|---|
| POST | /api/v1/ai/ask | Text-to-SQL (캐시 자동 적용) |
| POST | /api/v1/ai/schema/sync | 스키마 동기화 (캐시 무효화 트리거) |