본문으로 건너뛰기

Ask (Text-to-SQL)

자연어 질문을 SQL로 변환하는 Text-to-SQL API입니다. AI 오케스트레이터를 통해 스키마 컨텍스트 기반 SQL을 생성합니다.

엔드포인트

POST /api/v1/ai/ask

설명: 자연어 질문을 SQL로 변환합니다. SQL만 반환하고 실행하지 않습니다.

요청 본문:

필드타입필수설명
questionstringY자연어 질문
catalogstringN대상 카탈로그
max_retriesintNSQL 생성 재시도 횟수 (기본 2, 0–5)
conversation_historyarrayN이전 대화 맥락 (role/content 객체 목록)

응답 (AskApiResponse):

필드타입설명
sqlstring생성된 SQL
sourcestring생성 출처 — generated / cache / blocked / error
explanationstringSQL 설명
tables_usedstring[]참조된 테이블
join_pathsobject[]스키마 그래프에서 사용한 조인 경로
execution_successbool | null실행 성공 여부 (/ask 에서는 null, /ask/execute 에서 채워짐)
errorstring | null오류 메시지 (없으면 null)
security_filteredintSqlGuard 로 필터/차단된 항목 수 (기본 0)
cache_hitbool쿼리 캐시 히트 여부
{
"sql": "SELECT ...",
"source": "generated",
"explanation": "이 SQL은...",
"tables_used": ["tpch.tiny.orders"],
"join_paths": [],
"execution_success": null,
"error": null,
"security_filtered": 0,
"cache_hit": false
}

인증

JWT Bearer 토큰이 필요합니다.

참고

  • 스키마 그래프 인덱스가 구축되어 있으면 더 정확한 SQL을 생성합니다.
  • AI 제공자 설정은 서버 환경변수로 구성됩니다.

에러 코드

코드설명
400질문이 비어있거나 잘못된 요청
429워크스페이스 AI 쿼터 초과 — Retry-After: 3600 헤더 포함
500AI 제공자 호출 실패