Watson Assistant的.NET客户端库什么是_assistant对象?

时间:2018-09-05 07:03:19

标签: c# ibm-cloud ibm-watson watson-conversation

我正在尝试通过Windows Form App(使用C#)与我的聊天机器人进行通信。我已经将SDK安装到Visual Studio中,但是在使用它时遇到了麻烦。我已经阅读了所有文档,包括GitHub上的文档,但是,因为这是我第一次使用SDK,所以我对如何使其工作感到非常困惑。在这一点上,我只希望能够发送“消息”并读取聊天机器人的响应。 我必须包括哪些名称空间(即"using IBM.Watson...")?因为我已经尝试过身份验证,但收到错误:"namespace AssistantService could not be found",根据GitHub上dotnet指南中的IAM身份验证。另外,什么是"_assistant"对象以及如何创建对象,文档没有对此进行解释,所以我不断收到错误"_assistant does not exist in the current context..."

这是我正在关注的SDK的链接:https://github.com/watson-developer-cloud/dotnet-standard-sdk

我正在尝试通过该链接上的说明进行身份验证,但未成功。我正在尝试使用以下说明致电Watson Assistant:https://github.com/watson-developer-cloud/dotnet-standard-sdk/tree/development/src/IBM.WatsonDeveloperCloud.Assistant.v1

****************更新*****************

using System.Windows.Forms;
using IBM.WatsonDeveloperCloud.Assistant.v1.Model;
using IBM.WatsonDeveloperCloud.Assistant.v1;
using IBM.WatsonDeveloperCloud.Util;

namespace Watson_Assistant_Test
{
public partial class Form1 : Form
{
    AssistantService _assistant;
    string[] _questionArray = { "Hello there" };

    public Form1()
    {
        TokenOptions iamAssistantTokenOptions = new TokenOptions()
        {
            IamApiKey = "Y....H",
            IamUrl = "https://gateway-syd.watsonplatform.net/assistant/api"
        };
        _assistant = new AssistantService(iamAssistantTokenOptions, "2018-07-10");
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        MessageRequest messageRequest = new MessageRequest()
        {
            Input = new InputData()
            {
                Text = _questionArray[0]
            }
        };
        var result = _assistant.Message("d...5", messageRequest);
        label1.Text = result.ResponseJson.ToString();
    }
}
}

我认为我仍然无法正确创建AssistantObject。我收到此错误:ServiceResponseException: The API query failed with status code NotFound: Not Found

谢谢,哈里

1 个答案:

答案 0 :(得分:2)

[我不是C#开发人员,还没有使用过该SDK,但是...:)]

有一个小型Android module用于汽车仪表板示例。由于将Watson Conversation重命名为Watson Assistant,所以它仍使用旧的对象名称(两者均可用)。

代码使用以下命名空间:

using IBM.WatsonDeveloperCloud.Assistant.v1.Model

基于sample as part of the SDK,它检查TokenOptions的以下部分:

  • IamApiKey
  • IamAccessToken
  • ServiceUrl

我的猜测是您必须在代码中将IamUrl重命名为ServiceUrl。