Загрузка...

Блог

Text2SQL: API, быстрый старт и примеры

Text2SQL: API, быстрый старт и примеры

Text2SQL-сервис доступен по HTTPS (Traefik) или по NodePort; все вызовы API (кроме /health и /metrics) требуют заголовок X-API-Key.

Режимы работы

Без сохранения в БД — передавайте schema_definition в теле запроса: схема не сохраняется, данные не пишутся, удобно для тестов и разовых запросов. С сохранением в БД — создаёте схему через POST /api/schemas, дальше используете schema_id; сохраняются история, кэш и few-shot примеры.

Быстрый старт (без БД)

Проверка: curl -k https://<ваш-text2sql>/health. Генерация SQL с передачей схемы в запросе:

curl -k -X POST https://<host>/api/generate \
  -H "X-API-Key: ВАШ_API_КЛЮЧ" \
  -H "Content-Type: application/json" \
  -d '{
    "user_query": "Покажи всех пользователей",
    "schema_definition": "CREATE TABLE users (id INT, name VARCHAR, age INT);"
  }'

В ответе приходят поля:

ПолеОписание
sqlСгенерированный SQL-запрос
execution_resultРезультат выполнения в БД (если execute_query=true)
visualization_typetable / chart / text — формат визуализации
difficultyeasy / medium / hard — определённая сложность запроса
best_candidate_scoreОценка LLM-as-a-judge выбранного кандидата
cachedtrue, если ответ взят из кэша

Основные endpoints

МетодПутьНазначение
GET/healthПроверка здоровья (без ключа)
GET/metricsМетрики Prometheus (без ключа)
POST/api/generateГенерация SQL (user_query, schema_id или schema_definition)
GET/POST/api/schemasСписок и создание схем
GET/api/historyИстория запросов

Параметры /api/generate

user_query — вопрос на естественном языке; schema_id или schema_definition — схема БД; validate_sql, execute_query, use_cache; use_self_consistency, num_candidates (3–5); auto_visualize. Для сложных запросов с JOIN можно не передавать схему — сервис сам подберёт таблицы (Schema Linking).

Мониторинг

Метрики экспортируются в Prometheus (/metrics): количество запросов, время генерации и выполнения, точность, кэш, количество кандидатов. Визуализация — в Grafana (дашборд Text2SQL).

Итого: Для старта достаточно POST /api/generate с user_query и schema_definition; ключ в заголовке X-API-Key; при постоянном использовании — схемы в БД и история.