Я создаю бота для головоломки.Пользователю будет предложена головоломка, а затем, если ему понадобится подсказка, бот предоставит по одной.Я решил смоделировать это с двумя намерениями - «Supply_puzzle» и последующим намерением «Supply_puzzle - get_a_hint».Когда пользователь запрашивает головоломку, Supply_puzzle свяжется с веб-крючком, и головоломка будет предоставлена.Последующий запрос на подсказку будет рассмотрен последующим намерением путем вызова веб-крюка.Поскольку несколько пользователей могут играть с одной и той же головоломкой одновременно, важно, чтобы мы отслеживали индекс подсказок для каждой сессии.Кроме того, если я добавлю параметр, скажем, hint_index, то каждый раз, когда webhook получает запрос от последующего намерения, webhook получает последний hint_index.Затем веб-крючок может предоставить следующую подсказку, а также может изменить значение параметра, чтобы при следующем вызове из этого намерения ранее установленное значение hint_index было возвращено веб-крюку.Надеюсь, что это обеспечивает контекст для моего запроса.
Текущий код: на данный момент я использую срок службы
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 Вместо намерения продолжения мы можем использовать это намерение вверхний уровень и все еще может быть связан, устанавливая соответствующий входной контекст.Однако потребность в использовании параметра и возможности его изменения из веб-крюка все еще сохраняется.