【发布时间】:2018-06-13 14:37:31
【问题描述】:
我想用Dialogflow 和Google Assistant 以及Google Transactions API 创建一个聊天机器人,让用户能够订购巧克力盒。目前我的代理包含以下四个意图:
-
Default Welcome Intent(短信回复:你好,要买巧克力盒吗?) Default Fallback Intent-
Int1(训练短语:是的,我想要,实现:启用 webhook 调用) -
Int2(事件:actions_intent_TRANSACTION_REQUIREMENTS_CHECK)
我正在使用 Dialogflow Json 而不是 Node.js 将我的代理与 Transactions API 连接起来。我想通过使用 Google 操作的 actions.intent.TRANSACTION_REQUIREMENTS_CHECK 操作来呈现订单预览(订购巧克力盒时)。出于这个原因,按照谷歌文档,当Int1 被触发时,我正在使用一个将谷歌助手连接到以下python脚本(后端)的网络钩子:
from flask import Flask, render_template, request, jsonify
import requests
app = Flask(__name__)
@app.route("/", methods=['POST'])
def index():
data = request.get_json()
intent = data["queryResult"]["intent"]["displayName"]
if (intent == 'Int1'):
proposedOrder = order.proposed_order(location)
return jsonify({
"fulfillmentText": "This is your order preview:",
"payload": {
"google": {
"expectUserResponse": True,
"isSsml": False,
"noInputPrompts": [],
"systemIntent": {
"data": {
"@type": "type.googleapis.com/google.actions.v2.TransactionDecisionValueSpec",
"orderOptions": {
"requestDeliveryAddress": True,
},
"paymentOptions": {
"actionProvidedOptions": {
"displayName": "VISA **** **** **** 3235",
"paymentType": "PAYMENT_CARD"
}
},
"proposedOrder": proposedOrder
},
"intent": "actions.intent.TRANSACTION_DECISION"
}
}
}
})
if __name__== "__main__":
app.run(debug=True)
其中proposed_order 是我在模块order 中编写的一个函数,它以Google 文档指定的所需方式形成用户的顺序。
当intent == 'Int1' 时,这将向用户(在手机谷歌助手上)呈现订单预览,如下所示(示例来自谷歌文档):
如您所见,在订单预览的底部有三个筹码建议:下订单、更改付款方式、没关系.
我的问题如下:我如何(以编程方式)编辑这些芯片建议并添加我的(例如,添加一个芯片建议'更改订购的商品数量'?
【问题讨论】:
-
在平台的订单中,您无法额外控制用户看到的选项。您可能希望添加一个中间步骤来进行最终检查。
-
感谢您的评论@NickFelker。因此,您的意思是说我根本无法修改订单预览(actions.intent.TRANSACTION_REQUIREMENTS_CHECK)的所有筹码建议,因此我应该简单地检查例如数字项目,而不是订单预览(actions.intent)。 TRANSACTION_REQUIREMENTS_CHECK) 在中间步骤?
-
P.S.我的语气可能看起来很严肃,但事实并非如此……哈哈……我只想对这个问题有一个明确的答案,这样我就不会再花时间在上面了:)
-
是的。交易意图完全由平台处理。您想要做的任何定制都需要在此意图之前完成。
-
好的@Nick,谢谢你的回答!你可以写在下面,如果你愿意,我可以接受:)
标签: python python-3.x actions-on-google