AI-запрос
Инструмент “AI-запрос“ позволяет сформировать SQL-запрос с помощью искусственного интеллекта. Пользователь может описать задачу простым языком, а подключенная к платформе LLM (большая языковая модель) автоматически преобразует запрос в рабочий SQL-код. Данная функциональная возможность удобна для быстрой генерации сложных запросов без ручного написания кода.
По умолчанию данная функция отключена. Чтобы узнать, как подключить ее, см. раздел “Подключение функции генерации AI-запросов” ниже.
Предположим, у вас есть в запросе столбец с датами и вы хотите на его основе создать SQL-запрос, который бы на базе данных этого столбца создал дополнительные столбцы с названием года, квартала, месяца, дня недели и дня. Для этого сделайте следующее:
Перейдите в модуль преобразования данных и загрузите в него данные для преобразования.
Нажмите кнопку AI-запрос в панели инструментов:
В открывшемся окне введите название запроса, его описание, которое по факту является запросом к ИИ-модели, и нажмите Добавить преобразование:
В окне предпросмотра вы увидите результат преобразования:
Вы можете просмотреть сгенерированный SQL-запрос, нажав на кнопку с изображением карандаша в списке шагов преобразования в правой части окна. При необходимости вы можете отредактировать его вручную, или же сгенерировать новый SQL-запрос, написав новый текст:
Советы по написанию запросов
Запросы должны быть краткими и лаконичными, но достаточно информативными, чтобы получить желаемый результат.
Для повышения точности рекомендуется указывать названия колонок в запросе так, как они представлены в таблице.
Если задача сложная, можно разбить один запрос на несколько последовательных запросов.
Генерируются только запросы типа
SELECT. Платформа не поддерживает изменение схемы БД (ALTER, DROP и т.д.). Вместо этого формируется измененныйSELECT-запрос (с добавленными, измененными или удаленными колонками), и его результат уже становится текущей таблицей.
Подключение функции генерации AI-запросов
Платформа Visiology не имеет встроенных ресурсов для работы с большими языковыми моделями (LLM), необходимыми для генерации запросов с использованием искусственного интеллекта. Чтобы подключить функцию AI-запросов к платформе, вам потребуется одно из двух решений:
Мощный сторонний сервер (VPS/VDS или выделенный физический сервер) с установленным GPU и развернутой на нем подходящей моделью LLM.
Подписка на публичный API с доступом к большим языковым моделям (например, GPT от OpenAI).
Подключение функции AI-запроса
Для подключения функции AI-запросов на платформе Visiology нужно внести изменения в конфигурационные файлы:
1. В файле designer.json, который находится по пути /var/lib/visiology/scripts/v3/configs, найдите параметр useAi и установите его значение на true.
Пример измененного файла:
{
"useAuthorization": {{ env "USE_AUTHORIZATION" }},
"deployPath": "{{ env "RELATIVE_PATH_PART" }}",
"authFullPath": "{{ env "KEYCLOAK_EXTERNAL_REALM_PATH" }}",
"documentationPath": "{{ env "DOCUMENTATION_PATH" }}",
"supportPath": "{{ env "SUPPORT_PATH" }}",
"useCancelOperation": false,
"useAi": true,
"defaultPortalThemeDark": {{ env "DEFAULT_PORTAL_THEME_DARK" }}
}2. В файле пользовательской конфигурации компонента платформы “Data Management Service” заполните секцию “AI”. Этот файл расположен по следующему пути: /var/lib/visiology/scripts/v3/custom-configs/custom-datamanagementservice.json.
Пример файла:
{
"AI": {
"Endpoint": "https://model-ip/api/chat",
"ApiKey": "",
"Model": "o3-mini",
"PromptFile": "model_prompt.md"
}
}где
Endpoint- адрес, по которому находится API большой языковой модели;ApiKey- токен доступа (для публичных API, требующих авторизации);Model- наименование используемой большой языковой модели;PromptFile- путь к файлу с содержимым системного промпта (model_prompt.md- это файл по умолчанию, он есть прямо из коробки).
3. После внесения изменений перезапустите платформу, перегенерировав конфигурационные файлы, чтобы новые настройки вступили в силу:
/var/lib/visiology/scripts/run.sh --stop
/var/lib/visiology/scripts/v3/prepare-config.sh -f
/var/lib/visiology/scripts/run.sh --restartНастройка системного промпта для AI-запроса
Системный промпт – это сообщение для большой языковой модели, которое содержит инструкции по формированию ответов на запросы пользователей.
Системный промпт позволяет сделать ответы модели на запросы более точными.
Один и тот же системный промпт может не подходить одинаково хорошо к различным языковым моделям.
По умолчанию на платформе содержится общий системный промпт (название файла -
model_prompt.md).Вы можете подключить собственный системный промпт, смонтировав его в контейнер
data-management-service, а затем указать путь к нему в соответствующем файле конфигурации (см. ниже).
Содержимое системного промпта по умолчанию
По умолчанию системный промпт включает следующие элементы:
`{USER_QUESTION}`– в этот маркер перед отправкой запроса будет подставляться вопрос пользователя.`{ETL_PROCESS_DDL}`– сюда будут добавлены метаданные ETL-процесса перед выполнением запроса.
Также предусмотрены инструкции по работе с SQL, адаптированные специально для ETL модуля платформы. Например:
«Всегда используй псевдоним AS».
«Обращайся к таблицам через фигурные скобки {}».
и т.д.
Наличие маркеров `{USER_QUESTION}` и `{ETL_PROCESS_DDL}` является обязательным условием. Без них LLM может вернуть некорректный или нерабочий SQL-код.
Пример настроек:
Generate a SQL query to answer this question: `{USER_QUESTION}`
- Always use "as" to alias for column and table references
- Each column reference should be included in double quotes
- Each table reference should be included in curly braces
- Table name can contain parentheses
- The first table in the database schema is the main table that we are querying from in our ETL
- The query should be written in a single SELECT statement
- The string literals should be included in single quotes
DDL statements:
`{ETL_PROCESS_DDL}`
The following SQL query best answers the question `{USER_QUESTION}`:
```sqlИспользование собственного системного промпта
Для того, чтобы использовать системный промпт с собственными инструкциями, необходимо сделать следующее:
Создайте и откройте файл промпта, выполнив следующие команды:
mkdir -p /home/visiology/custom-prompt cd /home/visiology/custom-prompt nano custom_model_prompt.mdЗатем вставьте содержимое вашего промпта и сохраните файл.
Смонтируйте созданный файл в контейнер
data-management-service, используяyml-файл с конфигурацией Docker-контейнеров:cd /var/lib/visiology/scripts/v3/extended-services nano 80-CustomSettings.ymlВ файл 80-CustomSettings.yml добавьте следующее содержимое и сохраните его:
version: "3.8" services: data-management-service: volumes: - /home/visiology/custom-prompt:/mnt/promptsУкажите в файле конфигураций
/var/lib/visiology/scripts/v3/custom-configs/custom-datamanagementservice.jsonпуть к смонтированному файлу системного промпта:{ "AI": { "Endpoint": "https://model-ip/api/chat", "ApiKey": "my-api-token", "Model": "o3-mini", "PromptFile": "/mnt/prompts/custom_model_prompt.md" } }Перезапустите платформу:
/var/lib/visiology/scripts/run.sh --restart
Поддерживаемые языковые модели (LLM)
На текущий момент поддерживается большинство языковых моделей, использующих протокол OpenAI.
Для развертывания и использования больших языковых моделей на собственном сервере рекомендуется использовать инструмент vLLM (Virtual Large Language Model – открытая Python-библиотека, разработанная для оптимизации работы больших языковых моделей).
Смотрите также
На этой странице
Время чтения: 2 мин.
Нужна дополнительная помощь?