谷歌行动 |Agent context 在 agent.context.get() 中给出'-'



我提交的操作没有正确响应。我发现对话框流操作为agent.context.get('<name>')提供了'-',因此我得到了'undefined'作为最终结果。经过几次长时间的重试,我始终无法在实际设备上复制此问题。

代码片段:

//agent set context
const context = {
'name': 'riddle-index',
'lifespan': 10,
'parameters': {
'rindex': index
}
};
agent.context.set(context);
//agent get context
let riddleIndex = agent.context.get('riddle-
index'); 

我的包.json包含

"dependencies": {
"actions-on-google": "^2.6.0",
"dialogflow-fulfillment": "^0.6.1",
"firebase-admin": "^8.0.0",
"firebase-functions": "^3.0.0"
},

//记录代理上下文:

当上下文具有'-'时:

代理上下文{"contexts":{"-":}"name":"-","parameters":{"no input":0,"no match":0 cN9nlkH8KG_4lv4fS","inputContexts":{

当上下文具有槽值时:

代理上下文{"contexts":{"ridge index":{"name":"ridge index","lifetime":10,"parameters":"rindex":13,"any":"Violin","any.original":"Violin"}},"actions_capability_audio_output":,"actions_capability_media_reresponse_audio":{,"google_assistant_put_type_voice":{,"session":"projects/musical-instructures-quiz-8a073/agent/sessions/ABwppHGaPKiEmY8CePzJNdQXwQqMfKAmP0QUNIDyNfyGmuS5ScgqXa4pJKYq4B7Z52uZBXFZEIjg5YmzOWQroYudMNryOrkAmL-sEFz","inputContexts":{"}},"actions_capability_audio_output":{,"actions_capability_account_linking":{"name":"actions_capability_account_linking","parameters":{"any":"Violin","any.original":"Violin"}},"google_assistant_put_type_voice":"名称":"google_aassistant_put_type_voice",">system_counters":{"name":">system_counters","parameters":{"no input":0,"no match":0、"any":"Violin"、"any.original":"Violin"}}

//日志请求正文:

Dialogflow请求正文:{"responseId":"f9b56859-cb12-431a-a46c-02c92c5a64be-426bc00a","queryResult":{"queryText":"violen","parameters":"any":"violin"},"allRequiredParamsPresent":true,"outputContext":[{"name":"projects/musical-instructures-quiz-8a073/agent/environments/aog-4/users/-/sessions/ABwppHFMeT9XwzM6qV8uaK1EiCdMMKX6WiL6CcAgXKiqAjRg-X1au6qNz7QnHaJLSUFU_jRv4RCi5Awe2AGklCcccN9nlkH8KG_4lv4fS/contences/ridge index","lifespanCount":10,"parameters":{"rindex":6,"any":"Violin","any.original":"小提琴"}},{"名称":"项目/音乐乐器-quiz-8a073/agent/environments/__aog-4/users/-/sessions/ABwppHFMeT9XwzM6qV8uaK1EiCdMMKX6WiL6CcAgXKiqAjRg-X1au6qNz7QnHaJLSUFU_jRv4RCi5Awe2AGklCccN9nlkH8KG_4lv4fS/contexts/actions_capability_audio_output","parameters":{"any":"Violin","any.original":"小提琴"}},{"name":"projects/musical-instructures-quiz-8a073/agent/environments/__aog-4/users/-/sessions/ABwppHFMeT9XwzM6qV8uaK1EiCdMMKX6WiL6CcAgXKiqAjRg-X1au6qNz7QnHaJLSUFU_jRv4RCi5Awe2AGklCccN9nlkH8KG_4lv4fS/contexts/actions_capability_media_response_audio","parameters":{"any":"Violin","any.original":"Violin"}},{"name":"projects/musical-instructures-quiz-8a073/agent/environments/__aog-4/users/-/sessions/ABwppHFMeT9XwzM6qV8uaK1EiCdMMKX6WiL6CcAgXKiqAjRg-X1au6qNz7QnHaJLSUFU_jRv4RCi5Awe2AGklCccN9nlkH8KG_4lv4fS/contexts/actions_capability_account_linking","parameters":{"any":"Violin","any.original":"Violin"},{"name":"projects/musical-instructures-quiz-8a073/agent/environments/__aog-4/users/-/sessions/ABwppHFMeT9XwzM6qV8uaK1EiCdMMKX6WiL6CcAgXKiqAjRg-X1au6qNz7QnHaJLSUFU_jRv4RCi5Awe2AGklCccN9nlkH8KG_4lv4fS/contexts/actions_capability_screen_output","parameters":{"any":"Violin","any.original":"Violin"},{"name":"projects/musical-instructures-quiz-8a073/agent/environments/__aog-4/users/-/sessions/ABwppHFMeT9XwzM6qV8uaK1EiCdMMKX6WiL6CcAgXKiqAjRg-X1au6qNz7QnHaJLSUFU_jRv4RCi5Awe2AGklCccN9nlkH8KG_4lv4fS/contexts/actions_capability_web_browser","parameters":{"any":"Violin","any.original":"Violin"},{"name":"projects/musical-instructures-quiz-8a073/agent/environments/__aog-4/users/-/sessions/ABwppHFMeT9XwzM6qV8uaK1EiCdMMKX6WiL6CcAgXKiqAjRg-X1au6qNz7QnHaJLSUFU_jRv4RCi5Awe2AGklCccN9nlkH8KG_4lv4fS/contexts/google_assistant_put_type_voice","parameters":{"any":"Violin","any.original":"Violin"}},{"name":"projects/musical-instructures-quiz-8a073/agent/environments/__aog-4/users/-/sessions/ABwppHFMeT9XwzM6qV8uaK1EiCdMMKX6WiL6CcAgXKiqAjRg-X1au6qNz7QnHaJLSUFU_jRv4RCi5Awe2AGklCccN9nlkH8KG_4lv4fS/contexts/__system_counters","parameters":{"无输入":0,"无匹配":0}}],"intent":{"name":"projects/musical-instructures-quiz-8a073/agent/intents/e74ab319-eb4e-45d5-b3cd-40b1a567fa68","displayName":"RiddleAnswer intent"},"intentDetectionConfidence":1,"languageCode":"en"}、"originalDetectIntentRequest":{,"conversation":{"conversationId":"ABwppHFMeT9XwzM6qV8uaK1EiCdMMKX6WiL6CcAgXKiqAjRg-X1au6qNz7QnHaJLSUFU_jRv4RCi5Awe2AGklCcccN9nlkH8KG_4lv4fS","type":"ACTIVE","converstionToken":"[\"谜语索引\"]"},"inputs":[{"intent":"actions.intent.TEXT","rawInputs":〔{"inputType":"VOICE","query":"小提琴"}〕,"arguments":[{"name":"TEXT","rawText":"violen","textValue":"小提琴"}]}],"surface":{"capabilities":[{"name":"actions.capability.AUDIO_OUTPUT"},{"name:"actions.capability.MEDIA_RESPONSE_AUDIO"},{"name":"actions.capability.ACCOUNT_LINKING"},"available Surface":[{"capabilities":[{4RCi5Awe2AGklCccN9nlkH8KG_4lv4fS"}

您错误地调用了agent.context.set()方法。这种新方法采用不同的参数。

在过去,agent.setContext()接受一个对象。看起来您使用的agent.context.set与setContext()方法类似。

agent.context.set()的正确签名按顺序传入以下参数:contextName、lifetime、context parameter object);

例如,

agent.context.set('context_name_1', 10, {'param1' : 'abc'});
agent.context.set('context_name_2', 11, {'param2' : 2});