본문으로 건너뛰기

쿼리 캐시

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

AI 에이전트 채팅

현재 기본 비활성입니다 (#2720)

이 캐시는 기본적으로 꺼져 있습니다 (GEND_AI_SEMANTIC_CACHE_ENABLED=false).

조회가 벡터 유사도만 보고 워크스페이스 축이 없어서, 임계값 이상 유사한 질문이면 다른 워크스페이스가 생성한 SQL 이 반환될 수 있었습니다. 또한 캐시 히트는 데이터 권한 필터와 SQL 검증을 건너뜁니다.

워크스페이스 분리를 적용한 뒤 다시 활성화할 예정입니다.

주요 기능

  • 의미 유사도 기반 캐싱: 질문의 임베딩 벡터로 유사한 이전 질문을 찾습니다. 문자열이 같지 않아도 의미가 가까우면 히트합니다(기본 임계값 0.95).
  • 캐시 히트 표시: 응답에 cache_hit 플래그를 포함하여 캐시 사용 여부를 알려줍니다

캐싱 동작 원리

  1. 사용자 질문을 임베딩 벡터로 변환합니다
  2. 벡터 저장소에서 가장 가까운 캐시 항목 1건을 찾습니다
  3. 유사도가 임계값 이상이고 이전 실행이 성공했다면 캐시된 SQL 을 반환합니다 (cache_hit: true)
  4. 아니면 AI Orchestrator 로 SQL 을 생성하고 결과를 캐시에 저장합니다
스키마 변경 시 자동 무효화는 없습니다

과거 문서에 "스키마 변경 시 관련 캐시를 자동 무효화한다"고 적혀 있었으나 구현되어 있지 않습니다. 스키마가 바뀌면 캐시된 SQL 이 낡을 수 있습니다.

캐시 관련 응답 필드

Text-to-SQL API의 응답에 포함되는 캐시 관련 필드입니다:

필드설명
cache_hit캐시 적중 여부 (true/false)
source응답 생성 소스 (cache, llm 등)

API 엔드포인트

MethodPathDescription
POST/api/v1/ai/askText-to-SQL (캐시 자동 적용)
POST/api/v1/ai/schema/sync스키마 동기화 (캐시 무효화 트리거)

관련 문서