$update_response = file_get_contents("php://input");
$update = json_decode($update_response, true);
$reply = 'Message';
$context = array();
$context[0]['lifespanCount'] = 1;
$context[0]['name'] = $update['session'].'/contexts/newUser';
echo json_encode((array(
'fulfillmentText' => $reply,
'outputContexts' => $context,
'source' => 'Agent')));
Я использую код, показанный выше, в моем php веб-перехватчике, чтобы установить контекст моего разговора после начального.
Вот так выглядит мой ответ о заполнении после анализа в консоли Dialogflow
{
"fulfillmentText": "Message",
"outputContexts": [
{
"lifespanCount": 1,
"name": "projects/agent-duvwmd/agent/sessions/8b044ab6-cc42-f663-18a3-409e2983c3f1/contexts/newUser"
}
],
"source": "Agent"
}
Мой агент успешно отправляет ответ, и я вижу, что имя контекста newUser отображается правильно на консоль диалогового потока, однако она не будет принята как ввод контекста для моего единственного другого намерения. для объекта параметра установлено значение sys.any, поэтому он должен в основном принимать любой ввод. У меня только два намерения и больше нет контекстов, поэтому мой контекст вообще не работает. Я установил срок жизни на 1, что-то около 5, но, похоже, он вообще не работает.
Это такой маленький проект, что использование библиотеки диалогового потока Google будет большим препятствием, поэтому я не буду используй это.
Что вызывает эту проблему?
EDIT : так выглядит Raw API Response в следующем намерении (после установки контекста newUser)
{
"responseId": "e6a89789-bc1d-4f15-94e4-86404060c4b9-83ffff32",
"queryResult": {
"queryText": "Something",
"parameters": {},
"languageCode": "es"
}
}
Нет контекста, ничего. Вот как выглядят мои контексты в intent2
У меня отключен веб-перехватчик для второго намерения