Функция nlu.parse
используется для анализа текста и выявления намерений (что хочет сказать пользователь) и сущностей (конкретных объектов в тексте, таких как даты, локации, имена). Функция обрабатывает текст и возвращает объект, содержащий результаты анализа.
Сигнатура: nlu.parse(text: string, agentId: string, modelId: string = "", confidence: float = 1, timezone: string = "UTC", time: int|string|dt.Time = nil) -> nlu.Recognition
Аргументы:
text
— текст сообщения, который необходимо проанализировать.agentId
— уникальный идентификатор NLU-агента, который будет использоваться для распознавания. Это обязательный параметр.modelId
— версия агента, которую нужно использовать. Этот параметр является необязательным. Если не указан, будет использована последняя версия агента.confidence
— минимальный порог доверия для распознавания намерений. Значение должно быть в пределах от 0 до 1. Если ни одно намерение не достигает этого порога, будет выбрано намерение с максимальной достоверностью.timezone
— часовой пояс, который используется для корректного распознавания временных сущностей. По умолчанию используется «UTC».time
— текущее время, которое может быть использовано для корректировки распознавания временных сущностей. Если параметр не задан, будет использовано текущее системное время.Возвращаемое значение: Функция возвращает объект типа nlu.Recognition
, который содержит результат анализа текста, включая распознанное намерение и сущности.
Пример использования:
$recognition = nlu.parse("Привет, Вася", "1ee8b80f-b5db-47b8-9786-70c2992da713", "", 0.6)
В этом примере происходит анализ текста "Привет, Вася"
, используя агент с идентификатором 1ee8b80f-b5db-47b8-9786-70c2992da713
. Результатом работы будет объект, содержащий распознанное намерение и извлеченные сущности.
timezone
и time
особенно важны для правильной обработки временных сущностей (например, даты и времени). Убедитесь, что они указаны корректно, если это необходимо для вашего случая.confidence
позволяет контролировать точность распознавания намерений. Если значения доверия для всех намерений ниже указанного порога, будет использовано намерение по умолчанию.Функция nlu.suggest
помогает сопоставить текст пользователя с заданными рекомендациями, основываясь на намерениях и сущностях.
Сигнатура: nlu.suggest(text: string, agentId: string, timezoneOffset: int, version: int, confidence: float, suggestions: array, maxSuggestionCount: int) -> array
Аргументы:
text
— текст для анализа.
agentId
— идентификатор агента, выполняющего анализ.
timezoneOffset
— смещение временной зоны для корректного выявления временных сущностей.
version
— версия агента (1 — для старых сценариев, 11 — для новых).
confidence
— минимальный порог доверия для распознавания намерений.
suggestions
— список рекомендаций с указанием намерений и сущностей, например:
[
{ "intent": "buy", "entities": ["apple", "orange"] },
{ "intent": "sell", "entities": ["juice"] }
]
maxSuggestionCount
— максимальное количество возвращаемых рекомендаций (0 или отрицательное значение отключают ограничение).
Возвращаемое значение: Список рекомендаций, подходящих по указанным намерениям и сущностям. К каждой рекомендации добавляется параметр confidence
, указывающий степень уверенности системы.
Примеры использования:
$suggestions = [
{ "message": "Что вы хотите купить?", "intent": "buy" },
{ "message": "Что вы хотите продать?", "intent": "sell", "entities": ["juice"] }
];
$result = nlu.suggest("Я хочу купить яблоки", $agentId, 0, 1, 0.89, $suggestions, -1);
Результат:
[
{
"message": "Что вы хотите купить?",
"intent": "buy",
"confidence": 0.97
}
]
$result = nlu.suggest("Я хочу продать сок", $agentId, 0, 1, 0.89, $suggestions, -1);
Результат:
[
{
"message": "Что вы хотите продать?",
"intent": "sell",
"entities": ["juice"],
"confidence": 0.95
}
]
timezone
и time
, если точность работы с временными сущностями критична.confidence
для настройки чувствительности системы к различным намерениям.maxSuggestionCount
для настройки ограничения количества рекомендаций.