我有一个Python Flask应用程序,尝试使用IBM Watson Assistant。下面是调用消息API函数的代码段。如何打印返回的答案?
import json, _watson, requests, jsonify
import watson_developer_cloud
from flask import Flask, render_template
from flask_socketio import SocketIO, send
@app.route('/')
def index():
return render_template('index.html')
@socketio.on('message')
def handleMessage(msg):
print("Message: "+msg)
msg = _watson.conversacion(msg)
send(msg, broadcast=False)
def conversacion(mensaje):
response = assistant.message(workspace_id='1bef94fd-be51-4996-956c-73f9d0f08c41', input={'text': mensaje})
mens = (json.dumps(response, indent=2))
msj = json.loads(mens)
# print(json.dumps(response, indent=2))
print(msj["output"]["text"][0]) # mensaje de respuesta
rewa = (msj["output"]["text"][0])
return rewa
if __name__=='__main__':
socketio.run(app)
答案 0 :(得分:1)
您的代码未显示您如何设置和配置Python SDK with the credentials for IBM Watson Assistant。 message function with its input and output is documented here in the API reference。如果在返回的消息对象上使用json.dumps
,则可以看到result (response) structure。
结果结构取决于您在SDK初始化期间配置的API version(代码中未显示)。它只能将文本作为数组,或者使用最新的API版本,它可以包含图像,可供选择的选项等。所有内容都以JSON结构的形式返回到 output 元素(在代码中显示)下。
答案 1 :(得分:1)
将您返回的答案发布到另一个页面
@app.route(/returned_answer/<mensaje>)
def conversacion(mensaje):
response = assistant.message(workspace_id='1bef94fd-be51-4996-956c-73f9d0f08c41', input={'text': mensaje})
mens = (json.dumps(response, indent=2))
msj = json.loads(mens)
# print(json.dumps(response, indent=2))
print(msj["output"]["text"][0]) # mensaje de respuesta
rewa = (msj["output"]["text"][0])
return rewa
为您的输入消息提供消息标签, ,然后在您的索引页中编写html代码以将/ returned_answer消息嵌入索引页
<button onclick="window.location.href = ('/returned_answer/'+document.getElementById('message_id').value)