2016-11-08 12 views
-4

私はこの技術が初めてですが、.NETアプリケーションでWatsonのAPI会話を使用したいと考えています。 .NETでWatson Cloud Servicesを呼び出すにはどうすればよいですか?C#/ .netのIBM Watson Conversation APIクライアントの例

+3

代わりにスペイン語のサイトに投稿してください。このサイトは英語のみです。 – Carcigenicate

+1

Por favor preguntarlo [aqui](http://es.stackoverflow.com/)。 –

+1

これは明らかなことですが、これは悪い質問であり、依然として不明瞭で、過度には英語で尋ねられました。 – Marcin

答えて

1

IBMは、「シンプル」という言葉を遠隔から理解していると思います。彼らのsample appsはかなり不明瞭です。その上に、彼らは最近、古いAPIを焼き/廃止しました。ここにはnew API descriptionがあります。ワトソンの資格情報を最初に取得する必要があります。

他のRESTful APIと同じように、v1 Converstaions APIを使用できるはずです。私はFlurlがこの仕事のために好きです。

namespace WhatsOn 
{ 
    using System; 
    using System.Text; 
    using System.Linq; 
    using System.Threading.Tasks; 
    using Flurl; 
    using Flurl.Http; 
    using Newtonsoft.Json; 

    public class Program 
    { 
     public static void Main() 
     { 
      TalkToWatson().Wait(); 
     } 

     public static async Task TalkToWatson() 
     { 
      var baseurl = "https://gateway.watsonplatform.net/conversation/api"; 
      var workspace = "25dfa8a0-0263-471b-8980-317e68c30488"; 
      var username = "...get your own..."; 
      var password = "...get your own..."; 
      var context = null as object; 
      var input = Console.ReadLine(); 
      var message = new { input = new { text = input }, context }; 

      var resp = await baseurl 
       .AppendPathSegments("v1", "workspaces", workspace, "message") 
       .SetQueryParam("version","2016-11-21") 
       .WithBasicAuth(username, password) 
       .AllowAnyHttpStatus() 
       .PostJsonAsync(message); 

      var json = await resp.Content.ReadAsStringAsync(); 

      var answer = new 
      { 
       intents = default(object), 
       entities = default(object), 
       input = default(object), 
       output = new 
       { 
        text = default(string[]) 
       }, 
       context = default(object) 
      }; 

      answer = JsonConvert.DeserializeAnonymousType(json, answer); 

      var output = answer?.output?.text?.Aggregate(
       new StringBuilder(), 
       (sb,l) => sb.AppendLine(l), 
       sb => sb.ToString()); 

      Console.ForegroundColor = ConsoleColor.White; 
      Console.WriteLine($"{resp.StatusCode}: {output}"); 

      Console.ForegroundColor = ConsoleColor.Gray; 
      Console.WriteLine(json); 
      Console.ResetColor(); 
     }   
    } 
} 
1

前回の回答のように、Watson CloudサービスのANYをRESTインターフェイスで呼び出すことができます。 JSONペイロードを正しくフォーマットしてください。必要な情報はすべてConversation API Referenceです。

まだ未熟なかもしれませんが、それはSDK for .NETです。外に出て、GitHubのWatson Developer Cloudにある現在のSDKとユーティリティをすべて見ることができます。

+0

とは何ですか?https://github.com/watson-developer-cloud/dotnet-standard-sdk#installing-the-watson-net-standard-sdk。 –

+1

それは私には新しかったですが、あなたが望むことをしなければならないように見えます。 –

関連する問題