У меня есть агент диалога, который соответствует цели, например «Я хочу произвести оплату за контракт» . Затем webhook возвращает список контрактов, то есть '1) контракт A, 2) контракт B, 3) контракт C' . Эти параметры возвращаются в виде текстовых сообщений.
Тогда пользователь говорит 'Это вариант 2' . Здесь последующее намерение захватывает ответ и фиксирует 2 в качестве параметра.
У меня сейчас проблема. Как я могу получить из последующего намерения исходный список опций, чтобы я мог сопоставить число 2 с контрактом B?
У меня есть внутренняя логика, которая возвращает список вариантов в виде простых текстовых ответов. Я попробовал поискать способ установить список параметров в контекст, чтобы я мог извлечь его из последующего намерения.
Это образец кода, который возвращает параметры. Индекс $ является важным, поскольку он будет выбран пользователями.
if (sizeof($contracts) > 0) {
$this->setReply('Estos acuerdos encontré para ' . $parameters['given-name'] . ': ');
$index = 1;
foreach ($contracts as $c) {
$text =
$index . ') ' .
$c['contract'] . ': ' .
$c->name;
$this->setReply($text);
$index+=1;
}
$this->setReply('Dime que numero es el que buscas. ');
} else {
$this->setReply('No encontré acuerdos activos para ' . $parameters['given-name'] . '. Verifica el nombre por favor. ');
}
Я бы ожидал, что смогу где-то в последующем намерении увидеть список ответов, чтобы я мог сопоставить его с выбором пользователей.