13 | Документация

Хранение запросов пользователей

Запросы пользователей к виртуальному помощнику могут сохраняться в отдельную таблицу в базе данных.
Для этого создайте таблицу запросов пользователей (см. п. 11.3.1 ) и опубликуйте картографический сервис, содержащий эту таблицу.
Укажите опубликованный сервис и сформированную таблицу в настройках ИИ-ассистентов (см. п. 11.3.2 ).
Обратите внимание, что в Правилах SOE для картографического сервиса с таблицей запросов должен быть настроен плагин Редактирование (см. п. 14.6 ).
Теперь запросы пользователей будут сохраняться в указанную таблицу.

Создание таблицы запросов пользователей

Таблица запросов пользователей должна содержать следующие поля:
  • engine_uid - тип GUID - идентификатор ИИ-агента, использованного в карте;
  • engine_name - тип строка (String) - имя ИИ-агента;
  • map_id - тип строка (String) - идентификатор (ID) карты, где был вызван ИИ-агент;
  • map_caption - тип строка (String) - название карты;
    Если название карты не задано, то сохраняется идентификатор (ID) карты.
  • user_ip - тип строка (String) - IP-адрес пользователя;
  • user_login - тип строка (String) - логин пользователя;
  • user_request - тип строка (String) - текст запроса пользователя;
  • request_date - тип дата-время (Datetime) - дата и время отправки запроса;
  • answer_date - тип дата-время (Datetime) - дата и время получения последнего ответа от ИИ-агента;
  • request_state - тип строка (String) - статус обработки запроса;
    На поле должен быть наложен домен со следующими парами «код-значение»:
    • new - Новый запрос ещё до вызова ИИ;
    • processing - Запрос обрабатывается ИИ;
    • waiting - ИИ ждёт значение функции;
    • success - Обработка завершено успешно;
    • error - Обработка завершена с ошибкой;
      В данном случае возможны две ошибки:
      • Length - превышено количество токенов, запрос отклонен;
      • ContentFilter - запрос заблокирован из-за его содержания;
  • answer_text - тип строка (String) - текстовый ответ ИИ-агента;
  • used_functions - тип строка (String) - функции, использованные ИИ-агентом для получения ответа на запрос;
    Это строка формата JSON вида [{name:"function_name", parameters: [{"parameter_name":"parameter_output_value"}]}] .
  • input_token_count - тип целочисленный (Integer) - количество входных токенов;
    С учетом длины запроса, списка функций и промпта ИИ-агента и др.
  • output_token_count - тип целочисленный (Integer) - количество выходных токенов.
    С учетом трудности выполнения запроса.
Таблица запросов пользователей можно создать вручную.
Для создания таблицы в базе данных СУБД PostgreSQL вы можете использовать следующий скрипт:
CREATE TABLE ai_function_calling.ai_requests
(
oid serial PRIMARY KEY,
engine_uid uuid NOT NULL,
engine_name character varying(255),
map_id character varying(255),
map_caption text,
user_ip character varying(255),
user_login character varying(255),
user_request text NOT NULL,
request_date timestamp with time zone NOT NULL,
answer_date timestamp with time zone,
request_state character varying(50) NOT NULL,
answer_text text,
used_functions text,
input_token_count integer,
output_token_count integer
);
Опубликуйте на ГИС-сервере картографический сервис с подготовленной таблицей. Настройте в Правилах SOE для картографического сервиса с таблицей запросов плагин Редактирование (см. п. 14.6 ).

Настройка сервиса с таблицей запросов пользователей

После подготовки таблицы и публикации картографического сервиса на ГИС-сервере перейдите в меню Администрирование > Настройки > ИИ-ассистенты (function calling) .
В группе параметров Запросы от пользователей задайте следующие настройки (см. Рисунок 703 ):
  • URL сервиса - выберите картографический сервис, в котором содержится слой запросов пользователей;
    Обратите внимание, что в Правилах SOE должен быть настроен плагин Редактирование (см. п. 14.6 ).
  • Таблиц запросов - выберите из выпадающего списка слой запросов пользователей.
Рисунок 703 - Определение слоя для хранения запросов от пользователей