Блок AI-ответ из базы знаний дает пользователям ответ, который генерируется нейросетью GigaChat. Ответ выдается на конкретном шаге сценария и генерируется на базе информации из загруженных документов.
- Graph
- Code
Для получения ответа из базы знаний:
Откройте раздел Сценарий.
Выберите шаг, на котором требуется выполнить поиск в базе знаний.
Добавьте блок AI-ответ из базы знаний.
Заполните необходимые параметры блока. Описание параметров приведено ниже.
Нажмите Сохранить.
Для блока в сценарии настроены переходы:
- Успешный ответ — если ответ был найден в документах (переход
okState
). - Ответ не найден — если в документах не было найдено подходящего ответа (переход
noMatchState
).
Параметры блока
Параметр | Описание |
---|---|
Запрос пользователя | Требования и инструкции, необходимые для правильной генерации ответа от GigaChat. Не более 1000 символов. Поле должно поддерживать использование переменных сценария. Пример: "Ты консультант по банковским услугам. Ответь на вопрос пользователя, используя приведенный ниже контекст. При ответе на вопрос определи, относится ли вопрос пользователя к тематикам: кредит, ипотека, банковские продукты для физических лиц. Если вопрос не относится к указанным тематикам, ответь, что вопрос находится вне твоих компетенций. Ответ должен быть кратким, до 100 слов и на русском языке." Здесь также есть возможность вернуть значение по умолчанию в поле Запрос пользователя |
Базы знаний | Список доступных баз знаний по документам. Можно выбрать базы знаний для документов, которые добавили в раздел ранее. На данный момент по умолчанию доступна одна база знаний по документам |
Переменная для результата | Обязательное текстовое поле, где пользователь должен указать название переменной, в которую должен сохраниться ответ, полученный в случае успеха. Не более 30 символов |
Выводить результат пользователю | Если поле активно, то в случае успешного ответа от GigaChat выполнится отправка сообщения клиенту чат-бота и его сохранение в переменную. Если поле неактивно, будет выполнено только сохранение результата в указанную переменную, без отправки сообщения пользователю |
Сборка и внедрение
Для настройки работы базы знаний возможно выбрать один из двух режимов:
- Собрать — в этом случае будет выполнена сборка без внедрения базы знаний документов. Включено по умолчанию, если ответ пустой и в списке нет ни одной базы знаний.
- Собрать и внедрить — все обученные документы будут внедрены и выполнится сборка. Включено по умолчанию, если в списке есть база знаний.
Настройка приоритета срабатывания
Для настройки случаев, когда должна срабатывать база знаний, укажите Приоритет срабатывания в разделе Настройки базы знаний.
- Высокий — найденные ответы из базы знаний по документам срабатывают в первую очередь, при этом если в документах не найдено ничего подходящего, должны проверяться варианты по интентам, примерам и паттернам.
- Низкий — найденные ответы из базы знаний по документам срабатывают только в том случае, если не найдено подходящих вариантов по интентам, примерам или паттернам.
- Не активный — база знаний не будет срабатывать в сценарии, кроме тех случаев, когда она была явно вызвана из блока, поиск по документам использоваться не будет.
При использовании этого блока рекомендуется установить приоритет Не активный. При использовании других приоритетов возможно срабатывание базы знаний при фразе пользователя в каком-либо ином блоке.
Для получения ответа из базы знаний:
Откройте раздел Редактор.
Выберите стейт, на котором требуется выполнить поиск в базе знаний.
Добавьте функцию
$llm.agentQnAFindAnswer
, которая выполняет запрос в GigaChat.Для этой функции укажите список id-моделей документов, по которым будет выполняться поиск.
В результате обработки функции будет получен успешный или не успешный ответ. Полученный успешный ответ будет отправлен пользователю.
Возвращаемый объект имеет следующие поля:
Параметр | Описание |
---|---|
isOk | При успешном выполнении запроса принимает значение true . При ошибке внутри сервиса или при истечении таймаута принимает значение false |
message | Текст ответа нейросети |
error | Строка с описанием ошибки. В случае успешного запроса принимает значение undefined . При истечении таймаута принимает значение Read timed out |
status | Числовой код состояния http (например, 200 или 401 ). При ошибке внутри сервиса или при истечении таймаута запроса принимает значение -1 |
Список возвращаемых статусов ошибок
Кейс | Код ошибки | Описание ошибки |
---|---|---|
Сработал цензор | 406 | The censor restricted this request |
Ограничение тарифа | 403 | Restricted for the current tariff |
Таймаут выполнения запроса (выполнение запроса не завершено в указанный таймаут) | 408 | Read timed out |
Указанный идентификатор документа отсутствует в базе знаний | 400.1 | Document not found |
Указанный идентификатор документа не доступен для поиска (находится в статусе error, processing, deleted или по какой-то иной причине) | 400.2 | Document unavailable |
Указанный идентификатор раздела отсутствует в базе знаний | 400.3 | Sections of knowledge base is not found: {заполняется список не найденных id разделов} |
Ошибка при выполнении запроса в GigaChat | 500 | Request failed |
Код ошибки и сообщение о ней сохраняются в системные переменные.
Переменная | Описание | Пример |
---|---|---|
$knowledgeBaseResponseStatus | Содержит код ошибки, возникшей при выполнении запроса. Информация представлена в поле Код ошибки | 408 |
$knowledgeBaseResponseError | Содержит текст ошибки, возникшей при выполнении запроса. Информация представлена в поле Описание ошибки | Read timed out |