私はこのテクノロジーに慣れていませんが、Watson の API 会話を .NET アプリケーションで使用したいと考えています。.NET で Watson Cloud Services を呼び出すにはどうすればよいですか?
質問する
2338 次
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 に答える