Text-to-SQL плагин (Productivity Tool)#
CedrusData Engine поддерживает подключаемый плагин, преобразующий запрос пользователя на естественном языке в SQL («Text-to-SQL»). Плагин не входит в поставку по умолчанию — это точка расширения (SPI), которую реализует конкретный провайдер (например, обёртка над LLM-сервисом). CedrusData Engine отвечает только за загрузку и вызов плагина, а также за интеграцию с SQL-редактором Web UI.
Примечание
Интерфейс является экспериментальным и может измениться в будущих версиях без сохранения обратной совместимости.
Настройка#
Чтобы включить Text-to-SQL, добавьте свойство с путем к файлу настроек плагина в etc/config.properties координатора:
cedrusdata.productivity-tool.config-file=etc/productivity-tool.properties
Создайте файл etc/productivity-tool.properties, указав имя зарегистрированной фабрики и её свойства:
productivity-tool.name=<имя_фабрики>
Пример со сторонним провайдером (имена свойств — условные, конкретный набор определяется реализацией плагина):
productivity-tool.name=my-llm-provider
my-llm-provider.endpoint=https://llm.corp.example.com/v1/complete
my-llm-provider.api-key=${ENV:MY_LLM_API_KEY}
my-llm-provider.model=my-model-name
Конфигурационные свойства#
Свойство |
Описание |
|---|---|
|
Путь к properties-файлу с конфигурацией Text-to-SQL плагина (например, |
|
Задаётся внутри файла, на который указывает |
Возможности Text-to-SQL#
Основной метод SPI — ProductivityTool.textToSql(...)
При вызове из Web UI CedrusData Engine передаёт в реализацию плагина:
identity— идентичность вызывающего пользователя (для аудита, персонализации ответа или дополнительных проверок доступа на стороне плагина);tabId— непрозрачный идентификатор вкладки SQL-редактора (session + tab), позволяющий провайдеру вести историю диалога или контекст в рамках одной вкладки;catalog/schema— текущий контекст каталога/схемы, выбранный пользователем в SQL-редакторе (если выбран);userText— текст запроса на естественном языке, введённый пользователем после префикса-- AI/;schemaExplorer— интерфейс для доступа к метаданным каталогов, схем, таблиц, представлений и колонок с учётом прав текущего пользователя. Каждый вызовSchemaExplorerвыполняется в изолированной read-only auto-commit транзакции, поэтому интерфейс безопасно использовать из любого потока, включая асинхронные callback’и.
Реализация возвращает CompletableFuture<String> со сгенерированным SQL-текстом, который затем показывается пользователю
(и, при использовании SQL-редактора, автоматически подставляется на место исходного комментария). Логика самого
преобразования (обращение к LLM, построение промпта на основе схемы, кэширование и т.д.) полностью лежит на стороне
плагина — CedrusData Engine выступает только транспортом между Web UI и плагином.