Использование в сценарии
По умолчанию код для обращения к базе знаний добавляется в сценарий, когда вы подключаете базу знаний.
Код находится в основном файле — в стейте NoMatch
.
Вы также можете скопировать этот код или шаг J‑Graph в уже подключенной базе знаний.
Типы запросов
-
Вы можете создать чат в вашей базе знаний и отправлять в него запросы. База знаний будет учитывать историю чата при генерации ответов.
-
Одиночные запросы в базу знаний.
База знаний будет учитывать историю, только если вы сами передадите ее в запросе.
Код по умолчанию
state: NoMatch
event!: noMatch
scriptEs6:
// Если чата еще нет, бот создает новый чат в базе знаний
$client.example = $client.example || await $rag.chat.create("example");
// Бот получает ответ
$rag.chat.processQuery("example", $client.example.id, $request.query)
.then(chatResponse => {
// Отправка ответа пользователю
$conversationApi.sendTextToClient(chatResponse.response);
})
.catch(error => {
// Сообщение об ошибке
$conversationApi.sendTextToClient("Error: " + error);
});
# Если пользователь задаст вопрос во время ожидания, бот сможет сразу на него ответить
state: Waiting
q!: Почему ты молчишь
a: Я еще думаю…
Здесь бот:
- Если чата еще нет, создает новый чат в базе знаний с помощью
$rag.chat.create
. - Получает ответ с помощью метода
$rag.chat.processQuery
. Метод вызывается асинхронно. - Отправляет ответ с помощью
$conversationApi.sendTextToClient
.
Ограничения
- Такой сценарий не поддерживается в телефонном канале, голосовых ассистентах и Webim (Custom Channel API).
- Если база знаний не успеет сгенерировать ответ за 2 минуты, возникнет ошибка.
Вы можете адаптировать этот код для своего сценария. Смотрите примеры и описание методов $rag
.
Примеры
Выберите пример в зависимости от:
- Канала, в котором вы будете использовать бота. В некоторых каналах бот не может асинхронно отправлять ответ пользователю.
- Времени, которое ваша база знаний тратит на генерацию ответа. Например, если бот вызывает метод синхронно, он может ожидать ответ не более 25 секунд.
Пример | Каналы | Время ответа базы знаний | Описание |
---|---|---|---|
Синхронная генерация ответа | Все | До 25 секунд | Бот генерирует ответ в рамках одного запроса к базе знаний. |
Асинхронная генерация ответа | Не поддерживаются:
| До 2 минут | Бот генерирует ответ в рамках одного запроса к базе знаний. Во время генерации он может продолжать регировать на запросы пользователей. |
Создание запроса и проверка статуса | Все | Без ограничений | Бот создает запрос. Далее бот проверяет статус, если пользователь об этом просит. |
В каждом примере вы можете использовать разные типы запросов: одиночные или в рамках чата.