首页 > 解决方案 > DialogFlow - 如何通过 API 批量更新意图?

问题描述

我正在寻找一个关于如何利用 DialogFlow 的 batchUpdate 以及如何利用 batchUpdateResponse 在完成后显示实际响应的基本示例。

没有找到DialogFlow V1 或 V2 的示例(此时任何一个都会有帮助),以下是我设法设置的全部内容 - 寻找要添加的缺失参数:

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

目前使用 PHP https://github.com/googleapis/google-cloud-php/tree/83ae284c025f6e93b9ce835b987932c425b5a9de/Dialogflow但这里任何语言都可以。

标签: phpdialogflow-es

解决方案


最终通过使用https://developers.google.com/apis-explorer/和 PHP 的 Google 客户端库 ( https://github.com/googleapis/google-api-php-client ) 解决了这个问题。

下面是通过 PHP 一次更新两个意图的文本的基本示例。希望这对未来的人有所帮助,对于使用 DialogFlow 的 API V2(甚至 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;

推荐阅读