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