-4

私はこのテクノロジーに慣れていませんが、Watson の API 会話を .NET アプリケーションで使用したいと考えています。.NET で Watson Cloud Services を呼び出すにはどうすればよいですか?

4

2 に答える 2

1

前の回答で示したように、REST インターフェースを使用して任意の Watson Cloud サービスを呼び出すことができます。JSON ペイロードの形式が正しいことを確認してください。必要な情報はすべてConversation API Referenceにあります。

そうは言っても、まだ未熟かもしれませんが.NET用のSDKがあります。GitHub のWatson Developer Cloudで、現在のすべての SDK とユーティリティを確認できます。

于 2017-01-12T15:53:17.827 に答える
1

私は、IBM は「シンプル」についてかなり遠い理解を持っていると思います。彼らのサンプルアプリはかなりわかりにくいです。それに加えて、彼らは最近、古い API を燃やしたり廃止したりしました。新しい APIの説明は次のとおりです。まず、いくつかの watsone 資格情報を取得する必要があります。

他の 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();
        }        
    }
}
于 2016-11-21T10:52:54.717 に答える