如何打印 IBM Watson Assistant 返回的答案?

How to print the answer returned by IBM Watson Assistant?

我有一个 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)

您的代码未显示您如何设置和配置 Python SDK with the credentials for IBM Watson Assistant. The message function with its input and output is documented here in the API reference. If you use json.dumps on the returned message object, you can see the result (response) structure

结果结构取决于您在 SDK 初始化期间配置的 API version(未在您的代码中显示)。它可以只有文本作为数组,或者在最新的 API 版本中,可以包含图像、可供选择的选项等等。全部在 output 元素下的 JSON 结构中返回(显示在您的代码中)。

Post 您返回到另一页的答案

@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)