MyTetra Share
Делитесь знаниями!
Пример внедрения API V2
Время создания: 14.02.2020 00:23
Раздел: Компьютер - C# - DialogFlow
Запись: Kozlov-AE/Tetra/master/base/1581629010y6d3goy9aw/text.html на raw.githubusercontent.com

Выполните следующие действия (рабочий пример на С#)

  1. После создания агента Dialogflow перейдите в настройки агента → Общие → нажмите ссылку Сервисная учетная запись link
  2. Вы будете перенаправлены на облачную платформу Google, где сможете создать учетную запись службы
  3. .После создания учетной записи службы будет возможность создать KEY, создать его и загрузить его в формате (JSON)
  4. .Этот ключ будет использоваться для подключения вашего проекта С# к агенту Dialogflow
  5. Установите пакет Google.Cloud.Dialogflow.V2 в свой проект
  6. Создайте, например, класс диспетчера Dialogflow (см. пример ниже)


public class DialogflowManager {

private string _userID;

private string _webRootPath;

private string _contentRootPath;

private string _projectId;

private SessionsClient _sessionsClient;

private SessionName _sessionName;


public DialogflowManager(string userID, string webRootPath, string contentRootPath, string projectId) {


_userID = userID;

_webRootPath = webRootPath;

_contentRootPath = contentRootPath;

_projectId = projectId;

SetEnvironmentVariable();


}


private void SetEnvironmentVariable() {

try {

Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", _contentRootPath + "\\Keys\\{THE_DOWNLOADED_JSON_FILE_HERE}.json");

} catch (ArgumentNullException) {

throw;

} catch (ArgumentException) {

throw;

} catch (SecurityException) {

throw;

}

}


private async Task CreateSession() {

// Create client

_sessionsClient = await SessionsClient.CreateAsync();

// Initialize request argument(s)

_sessionName = new SessionName(_projectId, _userID);


}


public async Task < QueryResult > CheckIntent(string userInput, string LanguageCode = "en") {

await CreateSession();

QueryInput queryInput = new QueryInput();

var queryText = new TextInput();

queryText.Text = userInput;

queryText.LanguageCode = LanguageCode;

queryInput.Text = queryText;


// Make the request

DetectIntentResponse response = await _sessionsClient.DetectIntentAsync(_sessionName, queryInput);

return response.QueryResult;

}

}


И тогда это можно назвать так, например, чтобы обнаружить Intents

DialogflowManager dialogflow = new DialogflowManager("{INSERT_USER_ID}",

_hostingEnvironment.WebRootPath,

_hostingEnvironment.ContentRootPath,

"{INSERT_AGENT_ID");


var dialogflowQueryResult = await dialogflow.CheckIntent("{INSERT_USER_INPUT}");

 
MyTetra Share v.0.55
Яндекс индекс цитирования