Работа с JSON для ChatGPT в Loginom

Иногда нужно иметь возможность подключаться к LLM напрямую, чтобы управлять параметрами запросов и регулировать затраты. В статье показано, как в Loginom автоматически формировать корректный JSON для ChatGPT API и при этом сохранять полный контроль над структурой и настройками запроса.

Интерес к интеграции искусственного интеллекта (ИИ) в задачи бизнес-аналитики быстро растет. Особенно привлекательно использование ИИ в формате low-code. Важно не только получить результат, но и сохранить контроль над процессом. Пользователям нужны решения, которые позволяют гибко управлять запросами к языковым моделям, не погружаясь при этом в сложную разработку.

В экосистеме Loginom уже есть такие возможности. Например, MCP-сервер предоставляет удобный интерфейс для работы с LLM. Но он доступен только в редакции Enterprise. Есть библиотека LLM Kit, которая упрощает интеграцию ИИ. Однако детали выполнения частично скрыты от аналитика, что ограничивает уровень контроля.

На практике нередко возникает другая задача: напрямую работать с API (например, ChatGPT), управляя параметрами запроса — чтобы оптимизировать расход токенов, настраивать поведение модели и точно контролировать структуру взаимодействия.

Для обращения к ChatGPT API требуется JSON-объект с параметрами запроса. Структура такого объекта зависит от типа запроса и может включать как обязательные, так и необязательные поля.

В статье рассматривается подход, который позволяет решить эту задачу средствами Loginom: пользователь формирует параметры запроса в удобном виде, а Сценарий автоматически собирает корректный JSON для обращения к API. Описывается устройство этого процесса и как его можно использовать на примере запроса Responses.

Сценарий формирования JSON-объекта для запроса к ChatGPT API можно скачать по ссылке.

Поддерживаемые типы запросов

В Сценарии предусмотрены отдельные Подмодели для основных типов запросов к ChatGPT API:

  • Responses — универсальный AI API;
  • Image — генерация/редактирование изображений;
  • Chat — классический чат API;
  • GenerateEmbeddings — векторизация текста.

Каждая тестовая Подмодель передает подготовленные параметры в соответствующую Подмодель формирования запроса.

Подмодели для основных типов запросов к ChatGPT API

Подмодели для основных типов запросов к ChatGPT API

Входные параметры запроса

У каждой Подмодели есть порт переменных, в котором задаются основные параметры запроса. Для каждого параметра указываются имя, значение, тип данных и описание. Описание помогает определить назначение параметра и понять, в каких случаях его необходимо заполнять.

Если параметр не используется, его значение оставляют равным NULL. В итоговый JSON-объект должны попадать только заполненные параметры, если логика конкретного запроса не требует явной передачи NULL.

Порт переменных с параметрами запроса

Порт переменных с параметрами запроса

Описание процесса формирования JSON

Процесс построен как последовательное преобразование плоского набора параметров в древовидную структуру, а затем в JSON-объект. Общая логика одинакова для всех поддерживаемых типов запросов, отличается только набор входных параметров и структура дерева.

ЭтапДействиеРезультат
Выбор ПодмоделиПользователь выбирает Подмодель, соответствующую типу запроса: Responses, Image, Chat или GenerateEmbeddings.Определяется набор допустимых параметров.
Заполнение параметровВ порте переменных задаются значения параметров. Неиспользуемые параметры остаются равными NULL.Формируется исходный набор значений.
Преобразование в деревоПодмодель «Data Transform» переносит значения параметров в структуру «Дерево». Имена узлов дерева соответствуют ключам будущего JSON.Получается древовидное представление запроса.
Сериализация в JSONУзел «Дерево → JSON» преобразует дерево в текст JSON.Получается JSON-объект в полном виде.
Очистка результатаПоля со значением NULL исключаются из итогового объекта, если их не требуется передавать в API явно.Формируется компактный JSON для отправки.
Передача запросаСформированный JSON передается в Узел отправки запроса к ChatGPT API.API получает корректно структурированный запрос.

На схеме ниже показана последовательность преобразований: содержимое порта переменных передается в «Data Transform», затем преобразуется в дерево, сериализуется в JSON и используется как тело запроса.

Общая схема преобразования параметров в JSON-объект

Общая схема преобразования параметров в JSON-объект

Внутри «Data Transform» входные значения представлены в виде дерева. Корневой узел содержит дочерние элементы, соответствующие параметрам запроса: model, input, temperature и другим полям, поддерживаемым выбранным типом запроса.

Пример входного дерева данных для запроса Responses

Пример входного дерева данных для запроса Responses

​​​​​На этапе сопоставления задается связь между входными параметрами и целевой JSON-структурой. Это позволяет формировать единый JSON-объект без ручного написания тела запроса для каждого запуска Сценария.

Сопоставление входных параметров с узлами JSON-структуры

Сопоставление входных параметров с узлами JSON-структуры

Пример формирования JSON для Responses

Для примера используются следующие заполненные параметры: model = "gpt-4", input = "What is loginom?", temperature = 0.5. Остальные параметры в исходном наборе оставлены равными NULL.

Промежуточный JSON-объект содержит все параметры, включая поля со значением NULL:

{
  "model": "gpt-4",
  "background": null,
  "conversation": null,
  "input": "What is loginom?",
  "max_output_tokens": null,
  "max_tool_calls": null,
  "parallel_tool_calls": null,
  "previous_response_id": null,
  "instructions": null,
  "prompt_cache_key": null,
  "prompt_cache_retention": null,
  "safety_identifier": null,
  "service_tier": null,
  "store": null,
  "stream": null,
  "temperature": 0.5,
  "top_logprobs": null,
  "top_p": null,
  "truncation": null
}

После исключения неиспользуемых параметров итоговый JSON-объект принимает компактный вид:

{"model":"gpt-4","input":"What is loginom?","temperature":0.5}

Примечание. Если для конкретного метода API требуется передать параметр со значением NULL явно, такой параметр не следует исключать на этапе очистки. Это должно быть зафиксировано в настройках соответствующей Подмодели или в правилах формирования JSON.

В результате Сценарий формирует корректный JSON-объект на основании значений, заданных в порте переменных. Пользователь работает с понятным набором параметров, а техническая логика построения дерева, сериализации и очистки JSON выполняется внутри Loginom. Такой подход сокращает время подготовки запросов, снижает риск ошибок в структуре JSON и упрощает поддержку разных типов обращений к ChatGPT API.

Рассмотренный подход закрывает важный практический разрыв между удобством low-code инструментов и необходимостью тонкой настройки работы с LLM. Пользователь сохраняет контроль над параметрами запроса — от выбора модели до управления генерацией и расходом токенов — при этом не тратит время на ручное формирование JSON.

В отличие от готовых интеграционных компонентов, где логика скрыта, данный Сценарий остается прозрачным: вся структура запроса, этапы преобразования и правила очистки данных явно заданы и могут быть адаптированы под конкретные задачи.

В результате Loginom выступает не просто как инструмент интеграции, а как среда, в которой можно гибко и точно управлять взаимодействием с LLM — без потери преимуществ low-code подхода.
 

Другие материалы по теме:

Подключение к ChatGPT на платформе Loginom

ИИ-генерация кода для компонента JavaScript в Loginom

 

#LLM

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

Подписывайтесь на телеграмм-канал Loginom
Новости, материалы по аналитике, кейсы применения, активное сообщество
Подписаться