AI-запрос

AI-запрос

Инструмент «AI-запрос» позволяет сформировать SQL-запрос с помощью искусственного интеллекта. Пользователь может описать задачу простым языком, а подключенная к платформе LLM (большая языковая модель) автоматически преобразует запрос в рабочий SQL-код. Данная функциональная возможность удобна для быстрой генерации сложных запросов без ручного написания кода.

По умолчанию данная функция отключена. Чтобы узнать, как подключить ее, см. раздел «Подключение функции генерации AI-запросов» ниже.

Предположим, у вас есть в запросе столбец с датами и вы хотите на его основе создать SQL-запрос, который бы на базе данных этого столбца создал дополнительные столбцы с названием года, квартала, месяца, дня недели и дня. Для этого сделайте следующее:

  1. Перейдите в модуль преобразования данных и загрузите в него данные для преобразования.

  2. Нажмите кнопку AI-запрос в панели инструментов:

  3. В открывшемся окне введите название запроса, его описание, которое по факту является запросом к ИИ-модели, и нажмите Добавить преобразование:

  4. В окне предпросмотра вы увидите результат преобразования:

    Вы можете просмотреть сгенерированный 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

Использование собственного системного промпта

Для того, чтобы использовать системный промпт с собственными инструкциями, необходимо сделать следующее:

  1. Создайте и откройте файл промпта, выполнив следующие команды:

    mkdir -p /home/visiology/custom-prompt cd /home/visiology/custom-prompt nano custom_model_prompt.md

    Затем вставьте содержимое вашего промпта и сохраните файл.

  2. Смонтируйте созданный файл в контейнер 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
  3. Укажите в файле конфигураций /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" } }
  4. Перезапустите платформу:

    /var/lib/visiology/scripts/run.sh --restart

Поддерживаемые языковые модели (LLM)

  • На текущий момент поддерживается большинство языковых моделей, использующих протокол OpenAI.

  • Для развертывания и использования больших языковых моделей на собственном сервере рекомендуется использовать инструмент vLLM (Virtual Large Language Model – открытая Python-библиотека, разработанная для оптимизации работы больших языковых моделей).


Смотрите также

Загрузка данных и настройка модели данных

На этой странице


Время чтения: 2 мин.


Нужна дополнительная помощь?

Свяжитесь с технической поддержкой.