
Иногда нужно иметь возможность подключаться к 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:
Каждая тестовая Подмодель передает подготовленные параметры в соответствующую Подмодель формирования запроса.

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

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

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

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

Сопоставление входных параметров с узлами JSON-структуры
Для примера используются следующие заполненные параметры: 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