【问题标题】:how to call ibm watson api from .net core如何从.net核心调用ibm watson api
【发布时间】:2017-08-18 07:50:57
【问题描述】:

我正在尝试调用 watson 个性洞察 api,环顾四周后,似乎解决方案是使 .net 等效于以下 curl 请求。我对此很陌生,想知道是否可以获得指导或指向相关教程。

curl -X POST -u "{username}:{password}"
--header "Content-Type: application/json"
--data-binary @profile
"https://gateway.watsonplatform.net/personality-insights/api/v3/profile?version=2016-10-20&consumption_preferences=true&raw_scores=true"

【问题讨论】:

    标签: .net curl ibm-watson personality-insights


    【解决方案1】:

    在这种情况下,您是否使用 curl 调用 API?根据你的例子...

    通过提供您要使用的服务实例的服务凭据 中提供的usernamepassword 来调用 Personality Insights。 API 使用HTTP 基本身份验证。

    用于身份验证:

    curl -u "{username}":"{password}"
    "https://gateway.watsonplatform.net/personality-insights/api/v3/{method}"
    

    Bluemix 从所有请求中收集数据并使用这些数据来改进 Watson 服务。

    请求记录:

    curl -u "{username}":"{password}"
    --header "X-Watson-Learning-Opt-Out: true"
    "https://gateway.watsonplatform.net/personality-insights/api/v3/{method}"
    

    调用和获取响应的方法:

    curl -X POST -u "{username}:{password}"
    --header "Content-Type: application/json"
    --data-binary @profile.json
    "https://gateway.watsonplatform.net/personality-insights/api/v3/profile?version=2016-10-20&consumption_preferences=true&raw_scores=true"
    

    IBM Watson API 使用标准 HTTP 响应代码来指示方法是否成功完成。

    • 200 级响应始终表示成功。

    • 400 级响应表示某种故障。

    • 500 级响应通常表示内部系统错误。

    查看来自 IBM 的 documentation 进行开发,有所有示例如何调用以及是否有错误原因。和this 用于验证如何工作以及如何使用。

    Demo here,如果你愿意,你可以从 github 上 fork。

    【讨论】:

      【解决方案2】:

      您可以使用Watson Developer Cloud .NET Standard SDK。使用

      通过 NuGet 安装 Personality Insights 服务
      Install-Package IBM.WatsonDeveloperCloud.PersonalityInsights -Pre
      

      实例化服务

      // create a Personality Insights Service instance
      PersonalityInsightsService _personalityInsights = new PersonalityInsightsService();
      
      // set the credentials
      _personalityInsights.SetCredential("<username>", "<password>");
      

      调用服务

      var results = _personalityInsights.GetProfile(ProfileOptions.CreateOptions()
                                                               .WithTextPlain()
                                                               .AsEnglish()
                                                               .AcceptJson()
                                                               .AcceptEnglishLanguage()
                                                               .WithBody("some text"));
      

      未来版本中,您将能够使用命名参数而不是构建选项来调用服务。

      var results = _personalityInsights.GetProfile(
              "<input>", 
              "<content-type>", 
              "<content-language>", 
              "<accept>", 
              "<accept-language>",
              "<raw-scores>",
              "<csv-headers>"
              "<consumption-preferences>",
              "<version>"
          );
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-08-23
        • 1970-01-01
        • 1970-01-01
        • 2019-10-23
        • 2017-08-31
        • 1970-01-01
        • 1970-01-01
        • 2019-08-08
        相关资源
        最近更新 更多