Перейти к основному содержимому

$caila.cdqaQuery

Метод возвращает фрагменты из документа, который загружен в модуль CDQA из базы знаний.

Синтаксис

Метод принимает следующие аргументы:

АргументТипОбязательныйОписание
queryСтрокаДаТекст запроса.
moduleNameСтрокаДаНазвание модуля CDQA, например CDQA.Наши курсы.
thresholdЧислоНетПороговое значение, задающее минимальную уверенность в правильности ответов от CDQA.
Значение должно быть между 0 (не включительно) и 1 (включительно). Значение по умолчанию — 0,5.
classifierTokenСтрокаНетAPI-ключ CAILA. Значение по умолчанию — API-ключ текущего проекта.
Передавайте этот аргумент, только если бот и модуль CDQA находятся в разных проектах.
$caila.cdqaQuery("Что такое CDQA?", "CDQA.База знаний", 0.3);

Метод возвращает объект с полями:

ПолеТипОписание
predictedСтрокаОтвет от CDQA с наибольшим весом выше порогового значения threshold.
variantsМассив строкСписок ответов от CDQA с весом выше порогового значения threshold.
rawОбъектПолное тело ответа от CDQA. В нем содержится список всех ответов с метаинформацией, а также фрагмент, из которого они были извлечены.
подсказка
Если запрос в CDQA не вернул подходящих ответов, значением predicted будет null, а variants — пустой список.
{
"predicted": "вопросно-ответная система на основе машинного обучения",
"variants": [
"вопросно-ответная система на основе машинного обучения"
],
"raw": {
"output": [
{
"extracted_texts_list": [
{
"texts": [
{
"start_index": 46, // Позиция в строке `source_text`, где начинается ответ
"end_index": 100, // Позиция в строке `source_text`, где заканчивается ответ
"confidence": 0.65422564744949341, // Значение уверенности в том, что ответ правильный
"text": "вопросно-ответная система на основе машинного обучения"
},
{
"start_index": 6,
"end_index": 38,
"confidence": 0.081722691655159,
"text": "Closed Domain Question Answering"
}
],
"source_text": "CDQA (Closed Domain Question Answering) — это вопросно-ответная система на основе машинного обучения.",
"source_text_score": 0.265350878238678
}
]
}
]
}
}

Использование в сценарии

Чтобы бот мог использовать ответы из CDQA, добавьте метод $caila.cdqaQuery в глобальный стейт для обработки нераспознанных запросов:

state: NoMatch
event!: noMatch
script:
var result = $caila.cdqaQuery($request.query, "CDQA.Наши курсы", 0.5);
if (result.predicted) {
$reactions.answer(result.predicted);
} else {
$reactions.answer("Я не нашел ответ в своих документах. Пожалуйста, спросите что-нибудь другое.");
}