0

我正在为拼图创建一个机器人。用户将看到一个谜题,然后如果他们需要提示,机器人将一次提供一个。我决定用两个意图来建模——“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 修改它。

4

0 回答 0