【问题标题】:Access Watson intents in Unity在 Unity 中访问 Watson 意图
【发布时间】:2018-09-14 00:43:40
【问题描述】:

我有 Watson 2.7.0 语音转文本、助手、文本转语音服务。

我的工作区包含提供一般语音响应的一般意图;以及在 Unity 中执行操作的“操作”意图。

我在自己的脚本中复制了 Watson Cardboard vr 示例中的代码,但发现我无法访问意图。它不断给我下面的错误。如果没有“动作”意图部分,我的脚本运行良好。我错过了什么?

Type `IBM.Watson.DeveloperCloud.Services.Assistant.v1.MessageResponse' does not contain a definition for `intents' and no extension method `intents' of type `IBM.Watson.DeveloperCloud.Services.Assistant.v1.MessageResponse' could be found. Are you missing an assembly reference?

【问题讨论】:

  • 请添加详细信息:什么脚本,哪个版本的 Watson Assistant API,您到底在做什么,...?
  • @data_henrik 添加了详细信息。谢谢。

标签: unity3d watson-conversation


【解决方案1】:

MessageResponseIntents 是对象,因为它们可以具有其他用户定义的属性。您可以从回调中的响应中解析出意图

private void OnMessage(object response, Dictionary<string, object> customData)
{
    Log.Debug("ExampleAssistantV1.OnMessage()", "Response: {0}", customData["json"].ToString());

    //  Get intent
    object tempIntentsObj = null;
    (response as Dictionary<string, object>).TryGetValue("intents", out tempIntentsObj);

    //  First intent
    object tempIntentObj = (tempIntentsObj as List<object>)[0];
    object tempIntent = null;
    (tempIntentObj as Dictionary<string, object>).TryGetValue("intent", out tempIntent);
    string intent = tempIntent.ToString();

    Log.Debug("ExampleAssistantV1.OnMessage()", "intent: {0}", intent);
}

【讨论】:

猜你喜欢
  • 2017-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多