Данная публикация доработана в виде расширения конфигурации, в котором уже содержится модуль
HTTP Connector, и запуск и адаптация к любой конфигурации не представляет никаких сложностей.
Расширение выведено в отдельную подсистему, вот пример, как это выглядит в УНФ:

В разделе настройки нужно указать свой Authorization Key и Client ID.

Сам диалог общения с моделью выглядит так:

Сначала нажимаем на кнопку "Получить токен", поле токен должно заполниться токеном(время жизни 30 минут)
Затем можем задать вопрос модели как показано на скриншоте.
При нажатии на кнопку "Спросить", модель выводит ответ в поле Ответ.
Для обработки файлов, нужно сначала поместить файл на сервер по кнопке "Поместить",
затем нажать на кнопку "Обработать файл".
Вот скриншоты с примерами:

На этом обновление публикации завершено.
Особо замечу, что в расширении реализована работа с флагманской моделью от СБЕР GIGA CHAT ULTRA.
Предыдущий текст:
В приложенной обработке реализовано получение токена Bearer для обращения к API GigaChat, помещение файла pdf в хранилище GigaChat для последующего анализа и обработки и простой чат вопрос - ответ.
upd:
Добавляю простейший запрос для получения описания номенклатуры по ее наименованию:
Функция СпроситьИИНаСервере(Наименование)
//ИДФайла = Ответ;
Аутентификация = КоннекторHTTP.НоваяАутентификацияBearer(Токен());
Заголовки = Новый Соответствие;
Заголовки.Вставить("x-client-id", "");
// Определение структуры
СтруктураДанных = Новый Структура;
СтруктураДанных.Вставить("model", "GigaChat");
Сообщения = Новый Массив;
СообщениеСистемы = Новый Структура;
СообщениеСистемы.Вставить("role", "system");
СообщениеСистемы.Вставить("content", "Ты профессиональный маркетолог. Умеешь из короткого названия товара сгенерировать описание. Результат выводишь в виде текста без своих комментариев.");
Сообщения.Add(СообщениеСистемы);
СообщениеПользователя = Новый Структура;
СообщениеПользователя.Вставить("role", "user");
СообщениеПользователя.Вставить("content", Наименование);
//СообщениеПользователя.Вставить("attachments", ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ИДФайла));
Сообщения.Add(СообщениеПользователя);
СтруктураДанных.Вставить("messages", Сообщения);
// Теперь структура готова к использованию
Результат = КоннекторHTTP.PostJSON("https://gigachat.devices.sberbank.ru/api/v1/chat/completions", СтруктураДанных, Новый Структура("Аутентификация,Заголовки", Аутентификация, Заголовки));
Ответ = Результат["choices"][0]["message"]["content"];
Возврат Ответ;
КонецФункции
Выкладываю код, он же в приложенной обработке.
Подставляем в функцию Токен() <Authorization key> из кабинета developers.sber.ru
&НаСервере
Функция Токен()
Аутентификация = КоннекторHTTP.НоваяАутентификацияBearer("<Authorization key>");
Также понадобится <id клиента>
Данные = Новый Структура("purpose", "general");
Заголовки = Новый Соответствие;
Заголовки.Вставить("x-client-id", "<id клиента>");
Прилагаю код формы:
&НаКлиенте
Процедура Команда1(Команда)
РеквизитТокен = Токен();
КонецПроцедуры
&НаКлиенте
Процедура Команда2(Команда)
СкормитьПДФ();
КонецПроцедуры
&НаСервере
Функция Токен()
Аутентификация = КоннекторHTTP.НоваяАутентификацияBearer("<Authorization key>");
Данные = Новый Структура("scope", "GIGACHAT_API_PERS");
Заголовки = Новый Соответствие;
Заголовки.Вставить("RqUID",XMLСтрока(Новый УникальныйИдентификатор));
Результат = КоннекторHTTP.КакJSON(КоннекторHTTP.Post("https://ngw.devices.sberbank.ru:9443/api/v2/oauth", Неопределено, Новый Структура("Аутентификация,Заголовки, Данные", Аутентификация, Заголовки, Данные)));
Возврат Результат["access_token"];
КонецФункции
&НаСервере
Процедура СкормитьПДФ()
Аутентификация = КоннекторHTTP.НоваяАутентификацияBearer(Токен());
Файлы = Новый Массив;
ФайлДанных = КоннекторHTTP.НовыйОтправляемыйФайл("file", "d:\test.pdf", Новый ДвоичныеДанные("d:\test.pdf"), "application/pdf");
Файлы.Добавить(ФайлДанных);
Данные = Новый Структура("purpose", "general");
Заголовки = Новый Соответствие;
Заголовки.Вставить("x-client-id", "<id клиента>");
Результат = КоннекторHTTP.Post("https://gigachat.devices.sberbank.ru/api/v1/files", Неопределено, Новый Структура("Файлы,Данные,Аутентификация,Заголовки", Файлы, Данные, Аутентификация, Заголовки));
Ответ = КоннекторHTTP.КакJson(Результат)["id"];
КонецПроцедуры
&НаСервере
Процедура СпроситьИИНаСервере()
ИДФайла = Ответ;
Аутентификация = КоннекторHTTP.НоваяАутентификацияBearer(Токен());
Заголовки = Новый Соответствие;
Заголовки.Вставить("x-client-id", "<id клиента>");
// Определение структуры
СтруктураДанных = Новый Структура;
СтруктураДанных.Вставить("model", "GigaChat");
Сообщения = Новый Массив;
СообщениеСистемы = Новый Структура;
СообщениеСистемы.Вставить("role", "system");
СообщениеСистемы.Вставить("content", "Ты - пьяный гопник и быдло. Тебе нужно отвечать на все вопросы как будто ты маргинал.");
Сообщения.Add(СообщениеСистемы);
СообщениеПользователя = Новый Структура;
СообщениеПользователя.Вставить("role", "user");
СообщениеПользователя.Вставить("content", ВопросИИ);
//СообщениеПользователя.Вставить("attachments", ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ИДФайла));
Сообщения.Add(СообщениеПользователя);
СтруктураДанных.Вставить("messages", Сообщения);
// Теперь структура готова к использованию
Результат = КоннекторHTTP.PostJSON("https://gigachat.devices.sberbank.ru/api/v1/chat/completions", СтруктураДанных, Новый Структура("Аутентификация,Заголовки", Аутентификация, Заголовки));
Ответ = Результат["choices"][0]["message"]["content"];
КонецПроцедуры
&НаКлиенте
Процедура СпроситьИИ(Команда)
СпроситьИИНаСервере();
КонецПроцедуры
Проверено на следующих конфигурациях и релизах:
- 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.11.155, 3.1.11.142
- Управление нашей фирмой, редакция 3.0, релизы 3.0.14.108
Вступайте в нашу телеграмм-группу Инфостарт