【问题标题】:Watson Responds with one API codeWatson 使用一个 API 代码进行响应
【发布时间】:2016-12-08 14:08:36
【问题描述】:

我知道我是否想在我使用的对话中向 Watson 发送任何信息:

var latestResponse = Api.getResponsePayload();
var context = latestResponse.context;
Api.sendRequest("Hi Watson!", context);

我的代码的这个结果:

我想知道如何让 Watson 在对话中发送内容。我看到了一些例子并尝试过,但没有奏效。有人可以帮忙吗?

我现在不这样做如果我做得对,但我的例子是:

// var responseText = null;
   //responseText = {};
 var latestResponse = Api.setResponsePayload(); // I dont know if this is true
  var context = latestResponse.context;
  Api.sendRequest('Hi ' + context); // I try this
  responseText = 'Hi ' + context; // I try this too

这就是我想要的

【问题讨论】:

    标签: ibm-watson watson-conversation


    【解决方案1】:

    您是否查看了https://github.com/watson-developer-cloud/conversation-simple 的演示应用程序?

    您可以通过 JSON 方式将对象添加到上下文中。

    context.myproperty = "Hello World";
    

    并将其与输入一起发送到服务

    反过来,在对话服务中,您可以将变量(在本例中为用户名)分配给上一步中提供的文本(在本例中为 input.text)。 通过使用$variablename(在本例中为$username),您可以生成动态响应。 不要让预先响应屏幕中的顺序打扰您,上下文在输出之前处理...

    在客户端(在我的例子中是 Java)

    MessageRequest.Builder messageRequestBuilder = new MessageRequest.Builder();
            messageRequestBuilder.inputText("Joe");
            messageRequestBuilder.context(question.context); //this context comes from a previous step 
    
    
    ServiceCall<MessageResponse> response = conversationService.message(workspaceId, messageRequestBuilder.build());
            MessageResponse mAnswer =  response.execute();
    
            Object textObject = mAnswer.getOutput().get("text");
    

    此文本对象将包含: 嗨,乔,很高兴认识你。我是来回答关于....的问题的。

    (Node.) JS 代码从示例应用程序中复制(并删除了一些行)

    // Create the service wrapper
    var conversation = watson.conversation ( {
      username: process.env.CONVERSATION_USERNAME || '<username>',
      password: process.env.CONVERSATION_PASSWORD || '<password>',
      version_date: '2016-07-11',
      version: 'v1'
    } );
    
    
    // Endpoint to be called from the client side
    app.post ( '/api/message', function (req, res) {
    
      var payload = {
        workspace_id: workspace_id,
        context: {}
      };
      if ( req.body ) {
        if ( req.body.input ) {
          payload.input = req.body.input;
        }
        if ( req.body.context ) {
          // The client must maintain context/state
          payload.context = req.body.context;
        }
      }
      // Send the input to the conversation service
      conversation.message ( payload, function (data) {
        return res.json ( data );
      } );
    

    【讨论】:

    • 好的,但是,我如何在对话中发送它,就好像它是机器人一样?在我的示例中,它以用户身份发送...检查我的编辑
    • @SayuriMizuguchi 我已经编辑了我的回复,假设您不想每次都决定是否对话服务或其他服务(例如本地 javascript)给出答案
    • 嗨@mpjjonker,在我使用javascript e nodejs的情况下。可以加一个例子吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-25
    • 1970-01-01
    • 1970-01-01
    • 2018-11-10
    • 1970-01-01
    • 1970-01-01
    • 2017-09-25
    相关资源
    最近更新 更多