이 기술은 처음 사용하지만 .NET 애플리케이션에서 Watson의 API 대화를 사용하려고합니다. .NET에서 Watson 클라우드 서비스를 호출하려면 어떻게해야합니까?C# /. net의 IBM Watson Conversation API 클라이언트의 예
답변
IBM은 '단순한'것에 대한 원격 이해가 다소 있습니다. 그들의 sample apps은 다소 애매합니다. 그 (것)들의 위에 그들은 최근에 그들의 오래된 API를 점화하거나 비난했다. new API description입니다. 먼저 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();
}
}
}
이전 답변에서와 같이 REST 인터페이스를 사용하여 Watson Cloud 서비스의 ANY를 호출 할 수 있습니다. JSON 페이로드를 올바르게 포맷해야합니다. 필요한 모든 정보는 Conversation API Reference에 있습니다.
그래도 아직 미성숙 할 수는 있지만 SDK for .NET이 있습니다. GitHub의 Watson Developer Cloud에있는 모든 현재 SDK 및 유틸리티를 찾아 볼 수 있습니다.
및 이것에 대한 정보 : https://github.com/watson-developer-cloud/dotnet-standard-sdk#installing-the-watson-net-standard-sdk. –
그건 나에게 새로운 ....하지만 당신이 원하는대로해야합니다. –
대신 스페인어 사이트에 게시하십시오. 이 사이트는 영어로만 제공됩니다. – Carcigenicate
Por favor preguntarlo [aqui] (http://es.stackoverflow.com/). –
분명히하기 위해, 이것은 나쁜 질문이 될 것이고 아직도 영어로 물어 보았을 때 명확하지 않거나 지나치게 넓어 질 것입니다. – Marcin