$rag.query.generateAnswer
Метод генерирует ответ на вопрос пользователя.
Метод доступен только в среде ECMAScript 6 и является асинхронным.
Синтаксис
Метод принимает аргументы:
Аргумент | Тип | Описание | Обязательный |
---|---|---|---|
secretName | Строка | Название токена для базы знаний. | Да |
query | Строка | Текстовый запрос пользователя. | Да |
history | Массив | История диалога с ботом. Вы можете передать историю, чтобы база знаний учитывала контекст. Получите историю с помощью $rag.getChatHistory . | Нет |
settings | Объект | Настройки обработки запроса. По умолчанию используются настройки из проекта Jay Knowledge Hub. Форматsettings совпадает с форматом одноименного объекта в запросе POST /api/knowledge-hub/query в Jay Knowledge Hub API. | Нет |
timeout | Число | Таймаут в миллисекундах на выполнение метода. Если таймаут превышен, возникнет ошибка. По умолчанию таймаут не установлен. | Нет |
Вы можете передавать аргументы в метод разными способами.
- Позиционные аргументы
- Через объект
Укажите аргументы по порядку:
await $rag.query.generateAnswer("MyKnowledgeHub", "Что делает сервис Example?", undefined, undefined, 5000);
Передайте объект, поля которого совпадают с названиями аргументов:
await $rag.query.generateAnswer({
secretName: "MyKnowledgeHub",
query: "Что делает сервис Example?",
timeout: 5000
});
Возвращаемое значение
Метод возвращает объект с результатом обработки запроса.
Поле response
содержит ответ на вопрос пользователя.
{
"id": 12345,
"request": "Что делает сервис Example?",
"status": "FINISHED",
"createdAt": "2024-12-02T16:10:52.873498Z",
"response": "Сервис Example обрабатывает запросы пользователей …",
"updatedAt": "2024-12-02T16:10:58.238115Z",
"comment": null
}
Объект имеет такой же формат, как ответ на запрос POST /api/knowledge-hub/query
в Jay Knowledge Hub API.
Использование в сценарии
В этом стейте бот отправит ответ из базы знаний:
state: Answer
intent!: /вопрос
scriptEs6:
// Бот получает историю диалога
const history = await $rag.getChatHistory();
// Бот отправляет запрос в базу знаний
$rag.query.generateAnswer("MyKnowledgeHub", $request.query, history)
.then(answer => {
$conversationApi.sendTextToClient(answer.response);
})
.catch(error => {
$conversationApi.sendTextToClient("Произошла ошибка: " + error);
});
Примеры работы с базой знаний и различные способы вызова смотрите в статье Использование в сценарии.