Сервис предназначен для генерации ответа пользователю чат-бота через GigaChat.
При попадании чат-бота в стейт с функцией $llm.fetchRequest()
выполняется предусмотренный по сценарию запрос в GigaChat.
Параметр функции
Параметр | Тип | Обязательность | Описание |
---|---|---|---|
userContent | string | Да | Текст запроса в gigachat. Текст запроса с переменными. Не более 1500 символов |
systemContent | string | Нет | Системный промпт. Возможность задать промпт, который позволяет настроить дополнительные правила и условия обработки запроса. Не более 1500 символов |
noHistory | boolean | Нет | Отключить отправку истории переписки. true : история переписки не добавляется в запрос в GigaChat. Отправка истории отключена вручную false : история переписки отправляется. По умолчанию история отправляется |
timeout | num | Нет | Tаймаут выполнения запроса в миллисекундах. Значение по умолчанию должно задаваться в конфиге. По умолчанию установлено значение 6 секунд |
Возвращаемый объект имеет следующие поля:
isOk
: При успешном выполнении запроса принимает значениеtrue
. При ошибке внутри сервиса или при истечении таймаута принимает значениеfalse
.message
: Текст ответа GigaChat.error
: Строка с описанием ошибки. В случае успешного запроса принимает значениеundefined
. При истечении таймаута принимает значениеRead timed out
.status
: Числовой код состояния http (например, 200 или 401). При ошибке внутри сервиса или при истечении таймаута запроса принимает значение-1
.
Пример использования:
state: noMatch
event!: noMatch
script:
var systemContent = "Отвечай в стиле крокодила Гены из мультика чебурашка";
var userContent = $request.query;
$llm.fetchRequest({"systemContent": systemContent, "userContent": $request.query, "noHistory": true})
.then(function (response) {
if (response.isOk) {
$reaction.answer(response.message);
} else {
$reactions.transition('/transwerToOperator');
}
$jsapi.log("### log: " + toPrettyString($temp.answer));
});
Список возвращаемых статусов ошибок
Кейс | Код ошибки | Описание ошибки |
---|---|---|
Ограничение тарифа | 403 | Restricted for the current tariff |
Таймаут выполнения запроса (выполнение запроса не выполнено в указанный таймаут) | 408 | Read timed out |
Превышены лимиты по размеру полей Запрос или Системный промпт | 413 | Content is too large |
Ошибка при выполнении запроса в GigaChat | 500 | Request failed |
Достигнуто максимальное количество обращений на одного клиента | 503.1 | The limit of requests for the user per day |
Достигнуто максимальное количество обращений для тестового виджета | 503.2 | The limit of requests for test per project |
Запросы ограничены для текущей интеграции | 503.3 | Restricted for the channelType |
При совершении более 50 запросов в течение 10 минут будет произведена блокировка на 10 минут, по истечению которой вы сможете продолжить работу. Максимальное количество обращений от одного клиента - 500.