как использовать API IBM Watson для разговора из javascript и С#

Как использовать API IBM Watson для разговоров из javascript и C#?

Я попробовал приведенный ниже код, но он не работает:

if (string.IsNullOrEmpty(context)) req = "{\"input\": {\"text\": \"" + input + "\"}, \"alternate_intents\": true}";
                else req = "{\"input\": {\"text\": \"" + input + "\"}, \"alternate_intents\": true}, \"context\": \"" + context + "\"";
                using (var handler = new HttpClientHandler
                {
                    Credentials = _NetCredential
                })
                using (var client = new HttpClient(handler))
                {
                    var cont = new HttpRequestMessage();
                    cont.Content = new StringContent(req.ToString(), Encoding.UTF8, "application/json");
                    var result = await client.PostAsync(_Server, cont.Content);
                    return await result.Content.ReadAsStringAsync();
                }

person saikumar nalluru    schedule 10.05.2017    source источник
comment
Недавно я подключился к watson, используя restsharp.org.   -  person Webbanditten    schedule 10.05.2017


Ответы (4)


IBM Watson API работает с вызовами REST, вы можете просто использовать любой язык и использовать REST для вызова Watson API, которые вам нужны.

Но недавно IBM Developers создали пакет для использования в вашем коде, и вы можете использовать библиотеку от IBM Developers для создания приложений с помощью этого ссылка.

Проверьте официальный пример:

//import librarys
using IBM.WatsonDeveloperCloud.Conversation.v1;
using IBM.WatsonDeveloperCloud.Conversation.v1.Model;
using System;

namespace IBM.WatsonDeveloperCloud.Conversation.Example
{
    public class ConversationServiceExample
    {
        private ConversationService _conversation = new ConversationService();
        private string _workspaceID;
        private string _inputString = "Turn on the winshield wipers";

        //set username, password with Service Crentials
        public ConversationServiceExample(string username, string password, string workspaceID)
        {
            _conversation.SetCredential(username, password);
            _workspaceID = workspaceID; //workspace_id from your conversation created

            Message(); //send message
        }
person Sayuri Mizuguchi    schedule 10.05.2017

Вы можете использовать библиотеку .NET SDK для подключения к Watson. https://github.com/watson-developer-cloud/dotnet-standard-sdk

Но если вы хотите подключиться через REST API в C#. Вот документация https://www.ibm.com/watson/developercloud/conversation/api/v1/

Таким образом, быстрый грязный пример отправки сообщения на основе документации будет таким.

            HttpClient client = new HttpClient();
            client.BaseAddress = new Uri("https://gateway.watsonplatform.net/conversation/api/v1/workspaces/25dfa8a0-0263-471b-8980-317e68c30488/message?version=2017-04-21");

            var json = "{\"input\": {\"text\": \"Turn on the lights\"}, \"context\": {\"conversation_id\": \"1b7b67c0-90ed-45dc-8508-9488bc483d5b\", \"system\": {\"dialog_stack\":[{\"dialog_node\":\"root\"}], \"dialog_turn_counter\": 1, \"dialog_request_counter\": 1}}}";

            var content = new StringContent(json, Encoding.UTF8, "application/json");
            var result = client.PostAsync(url, content).Result;

В этом вопросе говорится об использовании jQuery $.ajax для вызова Watson REST API. Используйте IBM watson API с jquery $.ajax Это может быть полезно, если вы хотите позвонить из javascript с помощью jQuery.

person KingPancake    schedule 10.05.2017

Используйте SDK Watson Developer Cloud .NET Standard, доступный на Nuget или Github.

Вам потребуется создать экземпляр службы обмена сообщениями в Bluemix и создать Workspace для взаимодействия.

В своем проекте вы можете создать экземпляр службы и отправить сообщение этому экземпляру, используя свой идентификатор рабочей области.

// create a Language Translator Service instance
ConversationService _conversation = new ConversationService();

// set the credentials
_conversation.SetCredential("<username>", "<password>");

//  create message request
MessageRequest messageRequest = new MessageRequest()
{
  Input = new InputData()
  {
    Text = "<input-string>"
  }
};

//  send a message to the conversation instance
var result = _conversation.Message("<workspace-id>", messageRequest);
person taj    schedule 11.05.2017

Мне пришлось добавить версию ("2018-02-16") в конструктор ConversationService, а также передать учетные данные через конструктор, чтобы он работал у меня (на примере @taj):

using IBM.WatsonDeveloperCloud.Conversation.v1.Model;
using IBM.WatsonDeveloperCloud.Conversation.v1;

static void Main(string[] args)
{
    // create a Language Translator Service instance
    ConversationService _conversation = new ConversationService("<username>", "<password>", "<version>");

    //  create message request
    MessageRequest messageRequest = new MessageRequest()
    {
        Input = new InputData()
        {
            Text = "<input-string>"
        }
    };

    //  send a message to the conversation instance
    var result = _conversation.Message("<workspace-id>", messageRequest);
}
person Michal Founě    schedule 19.03.2018