我正在为拼图创建一个机器人。用户将看到一个谜题,然后如果他们需要提示,机器人将一次提供一个。我决定用两个意图来建模——“Supply_puzzle”和后续意图“Supply_puzzle – get_a_hint”。当用户请求拼图时,Supply_puzzle 将联系 webhook 并提供拼图。随后的提示请求将通过调用 webhook 由后续意图处理。由于多个用户可能同时玩同一个谜题,因此我们跟踪每个会话的提示索引很重要。此外,如果我添加一个参数,比如hint_index,那么每次 webhook 收到来自后续意图的请求时,webhook 都会获取最后一个 hint_index。然后 webhook 可以提供下一个提示,也可以修改参数值,以便从这个意图进行下一次调用,先前设置的值 hint_index 返回到 webhook。希望这为我的查询提供上下文。
当前代码:我目前正在使用 lifespan
import urllib
import json
import os
import re
from flask import Flask
from flask import request
from flask import make_response
@app.route('/webhook',methods=['POST'])
def webhook():
req = request.get_json(silent=True, force=True)
identified_entity=extract_identified_entity(req)
parent_of_followup_intent=extract_parent_of_followup_intent(req)
ret_txt=processFollowUpIntent(parent_of_followup_intent, identified_entity, req)
x = {
"fulfillmentText": "ABC1",
"fulfillmentMessages": [{
"text": {
"text": [ ret_txt
]}}]
}
x = json.dumps(x, indent=4)
r = make_response(x)
r.headers['Content-type'] = 'application/json'
return r
def processFollowUpIntent(parent_of_followup_intent, identified_entity, req):
print("inside processFollowUpIntent key [%s]" %(identified_entity))
LIFESPAN_INITIAL_VALUE=10 #Currently I set this to 10 in 'Supply_puzzle' intent
current_lifespan=req['queryResult']['outputContexts'][0]['lifespanCount']
stepIndx=LIFESPAN_INITIAL_VALUE - 1 - current_lifespan
puzzleId=getPuzzleId(req)
return hint_map[puzzleId][stepIndx]
寻找示例 python 代码 - 非常感谢任何帮助。更具体地说,我想将“hint_index”参数值(见下文)修改为另一个值并返回给机器人。
"outputContexts": [{
"name": "Supply_puzzle – followup"
"lifespanCount": 10,
"parameters": {
"hint_index": "0",
...
}}],
PS 除了后续意图,我们可以在顶层使用该意图,并且仍然可以通过设置适当的输入上下文来链接。但是,仍然需要使用参数并能够从 webhook 修改它。