$caila.cdqaQuery
Метод возвращает фрагменты из документа, который загружен в модуль CDQA из базы знаний.
Синтаксис
Метод принимает следующие аргументы:
Аргумент | Тип | Обязательный | Описание |
---|---|---|---|
query | Строка | Да | Текст запроса. |
moduleName | Строка | Да | Название модуля CDQA, например CDQA.Наши курсы . |
threshold | Число | Нет | Пороговое значение, задающее минимальную уверенность в правильности ответов от CDQA. Значение должно быть между 0 (не включительно) и 1 (включительно). Значение по умолчанию — 0,5. |
classifierToken | Строка | Нет | API-ключ NLP Direct API. Значение по умолчанию — 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("Я не нашел ответ в своих документах. Пожалуйста, спросите что-нибудь другое.");
}