Блок AI-ответ из базы знаний дает пользователям ответ, который генерируется нейросетью GigaChat. Ответ выдается на конкретном шаге сценария и генерируется на базе информации из загруженных документов.
- Graph
- Code
Для получения ответа из базы знаний:
-
Откройте раздел Сценарий.
-
Выберите шаг, на котором требуется выполнить поиск в базе знаний.
-
Добавьте блок AI-ответ из базы знаний.
-
Заполните необходимые параметры блока. Описание параметров приведено ниже.
-
Нажмите Сохранить.
Для блока в сценарии настроены переходы:
- Успешный ответ — если ответ был найден в документах (переход
okState
). - Ответ не найден — если в документах не было найдено подходящего ответа (переход
noMatchState
).
Параметры блока
Параметр | Описание |
---|---|
Запрос пользователя | Требования и инструкции, необходимые для правильной генерации ответа от GigaChat. Не более 16 000 токенов. Токен может быть символом, несколькими символами, фрагментом слова или словом целиком. В среднем в одном токене 3—4 символа, включая пробелы, знаки препинания и специальные символы. Все, что модель получает в запросе, сначала преобразуется в токены. Количество символов в токене зависит от модели. Поле должно поддерживать использование переменных сценария. Пример: «Ты консультант по банковским услугам. Ответь на вопрос пользователя, используя приведенный ниже контекст. При ответе на вопрос определи, относится ли вопрос пользователя к тематикам: кредит, ипотека, банковские продукты для физических лиц. Е сли вопрос не относится к указанным тематикам, ответь, что вопрос находится вне твоих компетенций. Ответ должен быть кратким, до 100 слов и на русском языке.» Здесь также есть возможность вернуть значение по умолчанию в поле Запрос пользователя |
Базы знаний | Список доступных баз знаний по документам. Можно выбрать базы знаний для документов, которые добавили в раздел ранее. На данный момент по умолчанию доступна одна база знаний по документам |
Переменная для результата | Обязательное текстовое поле, где пользователь должен указать название переменной, в которую должен сохраниться ответ, полученный в случае успеха. Не более 30 символов |
Выводить результат пользователю | Если поле активно, то в случае успешного ответа от GigaChat выполнится отправка сообщения клиенту чат-бота и его сохранение в переменную. Если поле неактивно, будет выполнено только сохранение результата в указанную переменную, без отправки сообщения пользователю |
Сборка и внедрение
Для настройки работы базы знаний возможно выбрать один из двух режимов:
- Собрать — в этом случае будет выполнена сборка без внедрения базы знаний документов. Включено по умолчанию, если ответ пустой и в списке нет ни одной базы знаний.
- Собрать и внедрить — все обученные документы будут внедрены и выполнится сборка. Включено по умолчанию, если в списке есть база знаний.
Настройка приоритета срабатывания
Для настройки случаев, когда должна срабатывать база знаний, укажите Приоритет срабатывания в разделе Настройки базы знаний.
- Высокий — найденные ответы из базы знаний по документам срабатывают в первую очередь, при этом если в документах не найдено ничего подходящего, должны проверяться варианты по интентам, примерам и паттернам.
- Низкий — найденные ответы из базы знаний по документам срабатываю т только в том случае, если не найдено подходящих вариантов по интентам, примерам или паттернам.
- Только блок AI-Ответ из базы знаний — обращение в базу знаний сработает, если в сценарную логику добавлен этот блок. При использовании этого блока рекомендуется установить приоритет Только блок AI-Ответ из базы знаний. При использовании других приоритетов возможно срабатывание базы знаний при фразе пользователя в каком-либо ином блоке.
Для получения ответа из базы знаний:
-
Откройте раздел Редактор.
-
Выберите стейт, на котором требуется выполнить поиск в базе знаний.
-
Добавьте функцию
$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 |