Не могу разобраться с Интеграцией ChatGPT в 1С

1. marrlovescash 14.12.23 13:54 Сейчас в теме
Пытаюсь интегрировать чат. Получается какая-то фигня.

Код общего модуля
#Если Сервер Тогда

Функция ОтправитьВопросВChatGPT(ТекстВопроса) Экспорт
Попытка
Заголовки = Новый Соответствие;
Заголовки.Вставить("Content-Type", "application/json");
Заголовки.Вставить("Authorization", "Bearer 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");

ТелоЗапроса = Новый Структура("prompt, max_tokens", ТекстВопроса, 150);
СтрокаТелаЗапроса = ДанныеВJSON(ТелоЗапроса);

Соединение = Новый HTTPСоединение("api.openai.com", , , , , Истина);
HTTPЗапрос = Новый HTTPЗапрос("/v1/engines/davinci-codex/completions", Заголовки);
HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаТелаЗапроса, КодировкаТекста.UTF8);

HTTPОтвет = Соединение.ОтправитьДляОбработки(HTTPЗапрос);

Если HTTPОтвет.КодСостояния = 200 Тогда
ОтветJSON = ДанныеИзJSON(HTTPОтвет.ПолучитьТелоКакСтроку());
Если ОтветJSON.Свойство("choices") Тогда
Возврат ОтветJSON.choices[0].text;
КонецЕсли;
КонецЕсли;

Возврат Неопределено;
Исключение
Возврат Неопределено;
КонецПопытки;
КонецФункции

Функция ДанныеВJSON(Значение, ПараметрыЗаписиJSON = Неопределено, НастройкиСериализации = Неопределено)
ПотокВПамяти = Новый ПотокВПамяти;
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку(ПотокВПамяти);
// Если есть параметры записи, то установите их здесь, используя методы объекта ЗаписьJSON. Например:
// ЗаписьJSON.УстановитьФорматирование(Истина);
// ЗаписьJSON.УстановитьФорматСлужебнойИнформации(ФорматСлужебнойИнформацииJSON.БезСлужебнойИнформации);

ЗаписатьJSON(ЗаписьJSON, Значение); // Значение - это структура ТелоЗапроса
ЗаписьJSON.Закрыть();
ПотокВПамяти.УстановитьПозицию(0); // Сбрасываем курсор на начало потока
Результат = ПотокВПамяти.ПолучитьСтроку(); // Получаем результат в виде строки

Возврат Результат;
КонецФункции


Функция ДанныеИзJSON(ДанныеJSON, ИзФайла = Ложь, ПрочитатьВСоответствие = Ложь, ЗначениеПоУмолчанию = Неопределено, ОписаниеОшибки = "")
ЧтениеJSON = Новый ЧтениеJSON;

Если ИзФайла Тогда
ЧтениеJSON.ОткрытьФайл(ДанныеJSON);
Иначе
ЧтениеJSON.УстановитьСтроку(ДанныеJSON);
КонецЕсли;

Попытка
Результат = ПрочитатьJSON(ЧтениеJSON, ПрочитатьВСоответствие);
Исключение
ОписаниеОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
Результат = ЗначениеПоУмолчанию;
КонецПопытки;

Возврат Результат;
КонецФункции

#КонецЕсли

Код модуля формы

&НаСервере
Процедура ОтправитьВопросНаСервере()
ТекстВопроса = Объект.Вопрос; // Получите текст из вашего поля ввода
Ответ = ИнтеграцияChatGPT.ОтправитьВопросВChatGPT(ТекстВопроса);// Используйте ранее созданную функцию для отправки вопроса

Если Ответ <> Неопределено Тогда
Объект.Ответ = Ответ; // Установите ответ в текстовое поле для ответа
КонецЕсли
КонецПроцедуры

&НаКлиенте
Процедура ОтправитьВопрос(Команда)
ОтправитьВопросНаСервере();
КонецПроцедуры
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1880116 14.12.23 14:41 Сейчас в теме
(1)
Получается какая-то фигня.
Телепаты в отпуске, приходи в следующем году.

Что ж за народ-то пошел: "Я ничего не понимаю, чего надо не скажу, вот вам простыня неформатированого кода, колупайтесь. Что, никто не знает что-ли?"
3. Snowbridge 14.12.23 16:35 Сейчас в теме
а фигню мы должны угадать?
4. user5300 1064 14.12.23 16:38 Сейчас в теме
Ошибка 403 forbidden - Доступ запрещен. Попробуйте через прокси, либо vpn
5. user1880116 14.12.23 17:26 Сейчас в теме
(4) у тебя bearer не той системы =)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот