1C и GigaChat на базе 1С HTTP Connector

14.04.25

Интеграция - Нейросети

Данная публикация демонстрирует основы взаимодействия 1С по АПИ с GigaChat от Сбера. Приведены примеры получения токена, отправки файла для последующей обработки и чат с ИИ, и непосредственно обработка файла.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
1C и GigaChat на базе 1С HTTP Connector
.epf 7,15Kb
1
1 Скачать (2 SM) Купить за 2 150 руб.

Моя вторая публикация и снова на базе https://github.com/vbondarevsky/Connector

В приложенной обработке реализовано получение токена Bearer для обращения к API GigaChat, помещение файла pdf в хранилище GigaChat для последующего анализа и обработки и простой чат вопрос - ответ.

 

Выкладываю код, он же в приложенной обработке.

Подставляем в функцию Токен() <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"];
КонецПроцедуры


&НаКлиенте
Процедура СпроситьИИ(Команда)
    СпроситьИИНаСервере();
КонецПроцедуры

 

upd:
Пример обработки загруженного файла в хранилище GigaChat
&НаСервере
Процедура СпроситьИИНаСервере()

	ИДФайла = Ответ;
	Аутентификация = КоннекторHTTP.НоваяАутентификацияBearer(РеквизитТокен);
	Заголовки = Новый Соответствие;
	Заголовки.Вставить("x-client-id", "");
	
	// Определение структуры
	СтруктураДанных = Новый Структура;
	СтруктураДанных.Вставить("model", "GigaChat-2-preview");
	
	Сообщения = Новый Массив;
	
	СообщениеПользователя = Новый Структура;
	СообщениеПользователя.Вставить("role", "user");
	СообщениеПользователя.Вставить("content", "Выпиши все значения id в документе в столбик. Отвечай на основе приложенного документа");  
	СообщениеПользователя.Вставить("attachments", ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ИДФайла));  
	
	
	Сообщения.Add(СообщениеПользователя);
	
	СтруктураДанных.Вставить("messages", Сообщения);
	
	// Теперь структура готова к использованию	
	
	Результат = КоннекторHTTP.PostJSON("https://gigachat.devices.sberbank.ru/api/v1/chat/completions", СтруктураДанных, Новый Структура("Аутентификация,Заголовки", Аутентификация, Заголовки));
	Ответ = Результат["choices"][0]["message"]["content"];
КонецПроцедуры

 

Проверено на следующих конфигурациях и релизах:

  • 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.11.142

См. также

Нейросети Мастера заполнения Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

Расширение для заполнения описания номенклатуры с помощью модели ИИ GigaChat от Сбера. Расширение формирует продающее описание товара по его наименованию с помощью модели искусственного интеллекта. Будет полезно для владельцев интернет магазинов, каталогов товаров и продающих через маркетплейсы. Адаптировано для основных конфигураций: УТ, ЕРП, КА, УНФ.

5000 руб.

08.11.2023    3520    14    0    

24

Нейросети Бесплатно (free)

Недавно в сервисе MAKER-STUDIO появился ИИ ассистент, разработчики также обещают, что ИИ ассистент будет добавлен и в встроенный текстовый редактор, что ускорит написание документации по проекту, а также ИИ ассистент научиться генерировать схемы и формы. Пока поделимся тем, какие функции уже есть, приведем примеры наиболее востребованных на наш взгляд ПРОМТОВ, которые могут пригодиться в работе.

12.04.2025    2508    1Concept    0    

5

Нейросети 1С:Элемент Программист Бесплатно (free)

Технология 1С:Элемент позволяет быстро и качественно разрабатывать компактные и практичные мини-решения, не зацикливаясь на технических деталях, думая не о коде, а о бизнес-идее. Расскажем о том, какие приложения лучше всего разрабатывать на 1С:Элемент, кому это легче делать и какие трудности могут быть в освоении.

09.04.2025    3308    Dziden    46    

0

Нейросети Инструментарий разработчика Программист Платформа 1С v8.3 Бесплатно (free)

Если вы раздумываете, какую бы среду разработки освоить в дополнение к старому доброму Конфигуратору, тогда для вас самое время посмотреть на этот редактор.

09.04.2025    2446    33    mkalimulin    16    

19

Инструментарий разработчика Нейросети Программист Платформа 1С v8.3 Россия Абонемент ($m)

Быстро разбирайтесь в логике отчетов (ERF) и обработок (EPF) 1С с помощью AI! Расширение анализирует код, позволяя задавать вопросы и получать понятные объяснения о работе объекта на естественном языке.

3 стартмани

07.04.2025    5088    30    vanya_gonchar    20    

23

Нейросети Программист Платформа 1С v8.3 Бесплатно (free)

В библиотеке искусственного интеллекта для 1С появилась поддержка RAG (Retrieval Augmented Generation). Что это такое и как с этим работать, рассказываю в этой статье.

01.04.2025    1931    mkalimulin    12    

34

Нейросети Распознавание документов и образов Программист Пользователь Платформа 1С v8.3 Россия Абонемент ($m)

Уникальное расширение для автоматического распознавания текста и анализа изображений прямо в интерфейсе любой типовой конфигурации 1С:Предприятие. Автоматически извлекает данные с фотографий документов, поддерживает рукописный текст и формирует подробные описания изображений с помощью популярных моделей ИИ.

10 стартмани

26.03.2025    654    9    Prepod2003    5    

11
Оставьте свое сообщение