Короче говоря, я создаю чат-агента для агента по недвижимости и только что внедрил фильтр, позволяющий пользователю осуществлять поиск по диапазону чисел (например, по крайней мере, одна спальня, стоимостью менее 2500 долларов США). Чтобы сделать это, я создал составную сущность entity_range, состоящую из типа диапазона (например, самое большее, точно) и самого объекта (валюта за единицу по цене, а также некоторые пользовательские сущности, такие как количество спален). До создания entity_range сами объекты работали нормально. Но теперь кажется, что часть объекта entity_range не определена. Смотрите образец моего кода ниже:
function get_count(req, res) {
console.log("price: " + req.queryResult.parameters["entity_range"]["unit-currency"])
var price, beds, baths, num_filter_funct
if(req.queryResult.parameters["entity_range"]["unit-currency"] != undefined) {
price = req.queryResult.parameters["entity_range"]
console.log("price: " + price)
} else {
console.log("could not find parameter")
}
Перед созданием entity_range мой код выглядел точно так же, за исключением отсутствия ["entity_range"] между параметрами и ["unit-currency"]. Во всяком случае, этот код журнала:
price: undefined
could not find parameter
после ввода «Сколько за 2500 долларов» со следующей диагностической информацией:
...
"queryResult": {
"queryText": "how many for $2500",
"parameters": {
"entity_range": [
{
"unit-currency": {
"amount": 2500,
"currency": "USD"
}
}
]
}...
Таким образом, сущность "единица валюты" распознается Dialogflow, но не моей программой. entity_range позволяет пользователям не указывать диапазон, так что это не проблема:
см. Скриншот здесь .
Буду очень признателен за любые советы!