Почему бот не принимает запрос?

1. _Noway_ 13.04.24 20:35 Сейчас в теме
Здравствуйте, я начинающий разработчик, возник вопрос. Почему бот не выдает ответ?

Процедура ОбработкаСообщенияСистемыВзаимодействия(Сообщение, ДополнительныеПараметры)
	//Создаем обработку сообщения
	
	Ответ = СистемаВзаимодействия.СоздатьСообщение(Сообщение.Обсуждение);
	Ответ.Текст = ЗапросЧатDeepSeek.ПолучитьКонсультацию(Сообщение.Текст);
	Ответ.Записать();
КонецПроцедуры


Сама функция протестирована на форме, и она дает результат, а вот бот не хочет ее вызывать. В свойствах общего модуля галки стоят на вызов.
Вот функция из общего модуля: bearer есть, я просто его убрал по понятным причинам)
Функция ПолучитьКонсультацию(текст) Экспорт 
	
	ЗащищенноеСоединение =  Новый ЗащищенноеСоединениеOpenSSL;
	
	//Создание соединения
	Соединение = Новый HTTPСоединение("api.deepseek.com", 443, , ,  , 30 , ЗащищенноеСоединение, );
	
	//Добавление заголовков
	ЗаголовокЗапросаHTTP = Новый Соответствие();  
    ЗаголовокЗапросаHTTP.Вставить("Content-Type", "application/json");
	ЗаголовокЗапросаHTTP.Вставить("Authorization", "Bearer " + bearer);
	
	//Обрабатываем JSON ответ
	Массив = Новый Массив;
	Структура1 = Новый Структура;
	Структура1.Вставить("role", "system");
	Структура1.Вставить("content", "You are a helpful assistant.");

	Структура2 = Новый Структура;
	Структура2.Вставить("role", "user");
	Структура2.Вставить("content", текст);

	Массив.Добавить(Структура1);
	Массив.Добавить(Структура2);

	Структура3 = Новый Структура;
	Структура3.Вставить("model", "deepseek-coder");
	Структура3.Вставить("messages", Массив);
	
	ТелоЗапроса = ЗаписатьЗначениеJSON(Структура3);

	
	//Отправка запроса 
	АдресРесурса = СтрШаблон("/v1/chat/completions");
	Запрос = Новый HTTPЗапрос(АдресРесурса,ЗаголовокЗапросаHTTP);
	Запрос.УстановитьТелоИзСтроки(ТелоЗапроса);
	
	error = "";
	
	//Попытка выполнения запроса
	Попытка 
		
		  Ответ = Соединение.ВызватьHTTPМетод("POST", Запрос);
		  		  
	  Исключение
		  
		  error = "Не удалось отправить запрос, причина: " + ОписаниеОшибки();
		  возврат error
		  
		  
	КонецПопытки;	
	
	//Проверка кода состояния
	Если Ответ.КодСостояния = 200 Тогда
		
		//Обработка состояния
		ТелоОтвета = Ответ.ПолучитьТелоКакСтроку();
		ЧтениеJSON = Новый ЧтениеJSON();
		ЧтениеJSON.УстановитьСтроку(ТелоОтвета);
		
		МассивДанных = ПрочитатьJSON(ЧтениеJSON, Истина);
		ОтветБот = МассивДанных["choices"]["message"]["content"];
		
		Возврат  ОтветБот
		
	Иначе
		
		error = СтрШаблон("Не удалось выполнить запрос, код запроса: %1, ответ сервера: %2", Ответ.КодСостояния, Ответ.ПолучитьТелоКакСтроку());
		возврат error;
		
		
	КонецЕсли;
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. пользователь 14.04.24 15:16
Сообщение было скрыто модератором.
...
3. _Noway_ 16.04.24 20:04 Сейчас в теме
Решение было простым, нужно было
ОтветБот = МассивДанных["choices"]["message"]["content"];

Обернуть в массив
Для Каждого Массив из МассивДанных["choices"] Цикл
			ОтветБот = Массив["message"]["content"];
		КонецЦикла;
Оставьте свое сообщение

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