Интеграции

Интеграция 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:

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

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

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

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

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

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

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

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

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

МодельВвод, ₽/1МВывод, ₽/1МКонтекст
DeepSeek: DeepSeek V331125128K
OpenAI: GPT-5.4 Mini118705400K
Anthropic Claude Haiku Latest157784200K
Актуальные цены каталога AI Gateway за 1 млн токенов. Все модели →

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

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

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

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

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

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

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

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

Получить ключ