К содержимому
Интеграции

Интеграция AI в 1С через AI Gateway: HTTP-запросы на встроенном

Как обратиться к AI из 1С:Предприятие 8: HTTP-запрос на встроенном языке к OpenAI-совместимому API AI Gateway, сериализация JSON и разбор ответа. Ключ в константе или параметрах.

2 минуты чтения

1С:Предприятие умеет ходить в HTTP-сервисы штатными средствами встроенного языка — этого достаточно, чтобы обращаться к OpenAI-совместимому API AI Gateway. Соберём функцию, которая шлёт текст промпта на шлюз и возвращает ответ модели: её можно вызывать из обработки, регламентного задания или обработчика события. Модели берём из каталога.

Подготовка

Нужен ключ AI Gateway sk-aigate-… и хост ai-gatewey.ru (порт 443, HTTPS). Ключ лучше хранить в константе или параметре сеанса, а не в модуле. Обращения идут на путь /v1/chat/completions.

Реализация

  1. Вспомогательные функции JSON

    Тело запроса и разбор ответа — через штатные ЗаписатьJSON/ПрочитатьJSON:

    bslbsl
    Функция ВJSON(Значение)Запись = Новый ЗаписьJSON;Запись.УстановитьСтроку();ЗаписатьJSON(Запись, Значение);Возврат Запись.Закрыть();КонецФункции​Функция ИзJSON(Строка)Чтение = Новый ЧтениеJSON;Чтение.УстановитьСтроку(Строка);Результат = ПрочитатьJSON(Чтение);Чтение.Закрыть();Возврат Результат;КонецФункции
  2. Функция обращения к модели

    Формируем структуру запроса, шлём HTTPЗапрос по защищённому соединению и достаём текст ответа:

    bslbsl
    Функция ЗапросКAI(ТекстПромпта) ЭкспортСообщение = Новый Структура("role, content", "user", ТекстПромпта);Сообщения = Новый Массив;Сообщения.Добавить(Сообщение);​Тело = Новый Структура;Тело.Вставить("model", "deepseek/deepseek-v4-flash");Тело.Вставить("messages", Сообщения);​Запрос = Новый HTTPЗапрос("/v1/chat/completions");Запрос.Заголовки.Вставить("Content-Type", "application/json");Запрос.Заголовки.Вставить("Authorization", "Bearer " + КлючAIGateway());Запрос.УстановитьТелоИзСтроки(ВJSON(Тело));​Соединение = Новый HTTPСоединение("ai-gatewey.ru", 443, , , , 30,Новый ЗащищенноеСоединениеOpenSSL);Ответ = Соединение.ОтправитьДляОбработки(Запрос);​Данные = ИзJSON(Ответ.ПолучитьТелоКакСтроку());Возврат Данные["choices"][0]["message"]["content"];КонецФункции
  3. Хранение ключа

    Ключ отдаём отдельной функцией — из константы или параметра сеанса, чтобы не хардкодить в бизнес-логике:

    bslbsl
    Функция КлючAIGateway()Возврат Константы.КлючAIGateway.Получить();КонецФункции
  4. Вызов из кода

    Дальше функцию можно применять где угодно — например, сформировать краткое описание номенклатуры:

    bslbsl
    Описание = ЗапросКAI("Составь краткое описание товара: " + Наименование);
обратите внимание
Ключ AI Gateway храните в константе или параметре сеанса с ограниченными правами доступа, а не в тексте модуля. HTTP-запрос к модели небыстрый: в фоновых заданиях и регламентных операциях задавайте таймаут соединения и не блокируйте им интерактивные формы.

Какие модели подойдут

Для типовых задач учёта (описания, классификация, черновики писем) хватает быстрой недорогой модели; сложные разборы можно направить на флагман:

Актуальные цены каталога AI Gateway за 1 млн токенов. Все модели →

Частые вопросы

Нужны ли внешние компоненты или коннекторы?

Нет. Достаточно штатных HTTPСоединение, HTTPЗапрос и объектов JSON встроенного языка — API AI Gateway обычный HTTPS с JSON, как у OpenAI. Сторонние компоненты не требуются.

Работает ли это в тонком клиенте?

HTTP-запросы выполняются на стороне сервера 1С, поэтому вызывайте функцию в серверном контексте (&НаСервере или общий серверный модуль). Так соединение с интернетом не зависит от рабочего места пользователя.

Как обработать ошибку или таймаут?

Оберните вызов в попытку (Попытка … Исключение) и проверяйте Ответ.КодСостояния: 401 — неверный ключ, 402 — исчерпана квота, пуст баланс, модель сверх тарифа или сработал лимит самого ключа (список моделей, потолок расхода, срок действия), 429 — превышен лимит RPM. Логируйте сбои и делайте повтор с паузой.

AI Gateway

AI в 1С — начните с ключа AI Gateway