Привет, сообщество переполнения стека,
Мне нужна ваша помощь в следующей проблеме:
В настоящее время я запускаю чат-бота Dialogflow, который имеет некоторые намерения и возвращает некоторые ответы. Чат-бот работает отлично до сих пор. Для вашей информации я использую webhook для получения ответов.
Вот скриншот моего потока намерений: dialogflow chatbot
Что я пытаюсь сделать, это датьПользователь имеет возможность перезапустить весь разговор с самого начала. Знаете ли вы, как я могу добиться этого в Dialogflow?
Фрагмент кода Python для запуска webhook:
app = Flask(__name__)
# default route
@app.route('/')
def index():
return 'Chatbot is online and running!'
@app.route('/webhook', methods=['GET', 'POST'])
def webhook():
# return response
req = request.get_json(force=True, silent = True)
action = req.get('queryResult').get('action')
intent_name = req.get('queryResult').get('intent').get('displayName')
if action == "get_results" and intent_name == 'KellyMovieBot':
return make_response(jsonify(suggest_movie(req)))
elif action == "ask_question" and intent_name == 'ask_first_time':
return make_response(jsonify(propose_second_movie(req)))
elif action == "thanks_giving_end" and intent_name == "thanks_giving":
return make_response(jsonify(thanks(req)))
elif action == "rerun_conversation" and intent_name == "rerun_conversation":
user_answer = req.get('queryResult').get('parameters').get('user_answer')
if user_answer == "No" or user_answer == "no":
return {'fulfillmentText': "Enjoy your film!"}
elif user_answer == "Yes" or user_answer == "yes":
return {'fulfillmentText': "Let's start again..."}
# run the app
if __name__ == '__main__':
app.run()
Примечание: Функции offer_movie (), propose_second_movie ()Спасибо () - это три функции, которые были созданы для того, чтобы возвращать 3 разных выхода в зависимости от потока связи.
Мне нужно найти правильный синтаксис, который позволит мне RERUN весь разговор снова, если пользователь говорит «Да», иначе диалог должен завершить разговор.
Буду признателен за любую помощь или совет, который вы можете мне дать!