DialogFlow - Как Пакетное Обновление Интентов через API? - PullRequest
0 голосов
/ 30 октября 2018

Я ищу базовый пример того, как использовать batchUpdate в DialogFlow и как использовать batchUpdateResponse для отображения фактического ответа после его завершения.

Обнаружено нет примеров для DialogFlow V1 или V2 (на данный момент это может быть полезно), вот все, что мне удалось настроить - поиск недостающих аргументов, которые необходимо добавить:

$intentsClient->batchUpdateIntents($formattedParent, $languageCode, $test_3);

В настоящее время используется PHP https://github.com/googleapis/google-cloud-php/tree/83ae284c025f6e93b9ce835b987932c425b5a9de/Dialogflow, но здесь можно использовать любой язык.

Ответы [ 2 ]

0 голосов
/ 05 ноября 2018

Закончилось выяснение этого с помощью https://developers.google.com/apis-explorer/ и клиентской библиотеки Google для PHP (https://github.com/googleapis/google-api-php-client).

Ниже приведен базовый пример для обновления текста с двумя намерениями одновременно через PHP. Надеюсь, что это поможет кому-то в будущем, я несколько удивлен общим отсутствием полезной документации и / или примеров использования API V2 DialogFlow (или даже V1 в этом отношении). Так много удивительных вещей можно сделать с помощью этого, а не их панели инструментов для обучения вашего бота!

// Global variable pointing to the .json file downloaded with private key from DialogFlow
putenv('GOOGLE_APPLICATION_CREDENTIALS=directory-of-file/google-service-acount-key.json');

// Setup Google Client
require __DIR__.'/vendor/autoload.php';
$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->addScope('https://www.googleapis.com/auth/cloud-platform');
$httpClient = $client->authorize();

// Setup array to update intent (minified)
$update_intent = array('intentBatchInline'=>array('intents'=>array(
0=>array('name'=>'projects/YOUR-PROJECT-NAME/agent/intents/FIRST-INTENT-ID','displayName'=>'FIRST-INTENT-NAME','messages'=>array(0=>array('text'=>array('text'=>array(0=>'FIRST-INTENT-TEXT-TO-UPDATE',),),),),),
1=>array('name'=>'projects/YOUR-PROJECT-NAME/agent/intents/SECOND-INTENT-ID','displayName'=>'SECOND-INTENT-NAME','messages'=>array(0=>array('text'=>array('text'=>array(0=>'SECOND-INTENT-TEXT-TO-UPDATE',),),),),),),),
);

// Post to DialogFlow API
$response = $httpClient->post('https://dialogflow.googleapis.com/v2/projects/PROJECT-NAME-HERE/agent/intents:batchUpdate', [
    GuzzleHttp\RequestOptions::JSON => $test_batch_intent_1
]);

// Print out response for troubleshooting
print_r($response->getBody()->getContents());
echo "<br /><br />Here's to getting past DialogFlow API's hurdles! :)";
exit;
0 голосов
/ 30 октября 2018

Это похоже на мой ответ. Где я привел полный пример. Проверьте это. Ответ переполнения стека.

И это основано на NodeJs. Как вы сказали, язык не имеет значения. И посмотрите эту документацию на различные примеры. Этот документ охватывает даже функции batchUpdate.

Пожалуйста, проверьте это:

GitHub репо

GitHub репо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...