LoginSignup
16
12

More than 5 years have passed since last update.

GCPコンソールに追加されたDialogflow API を試す

Last updated at Posted at 2017-12-07

GCPコンソールに追加されたDialogflow API を試す

Dialogflow V2 APIのリリースに伴いGCPのAPIコンソールにDialogflowが追加されたので、試してみたいと思います :smiley:

Dialogflow V2 APIについてざっくり知りたい方はこちらの記事を見てください。Dialogflow V2 API の紹介

Screen Shot 0029-12-07 at 21.01.44.png

GCPコンソールに追加されたDialogflow API

Dialogflow API を使う準備

  • GCPコンソールでプロジェクトを選択し課金を有効にする
  • Dialogflow APIを有効にする
    • APIとサービスを選択
    • ライブラリを選択
    • Dialogflow APIを選択し有効にする
  • サービスアカウントを作成し .jsonをダウンロードする
    • APIとサービスを選択
    • 認証情報を選択する
    • 認証情報を作成
    • 新しいサービスアカウントを作成
    • 作成が終わったら.jsonファイルをダウンロードする

Screen Shot 0029-12-07 at 21.10.14.png

$ export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service_account.json
  • サービスアカウントをアクティベート
$ gcloud auth activate-service-account --key-file=service-account-key-file
  • GCPのDialogflowAPIからAgentを作成

Screen Shot 0029-12-07 at 21.19.43.png

※既に同一のGCPプロジェクトでDialogflowのエージェントを作成している場合は、新しく作成できません。

ここまでできれば準備完了です。

コマンドラインからIntentを作成

これまでDialogflowコンソールからIntentを作成していたと思いますが、コンソールからAPIを叩いて作成してみます。

作成リクエスト

$ curl -X POST -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8" --data "{
  'displayName': 'Greeting',
  'priority': 500000,
  'mlEnabled': true,
  'webhookState': 'WEBHOOK_STATE_UNSPECIFIED',
  'trainingPhrases': [
    {
      'type': 'EXAMPLE',
      'parts': [
        {
          'text': 'Hello!'
        }
      ]
    }
  ],
  'action': 'greeting',
   'messages': [
      {
        'text': {
          'text': [
           'Hello!'
          ]
        }
      }
    ],
}" "https://dialogflow.googleapis.com/v2beta1/projects/project-name/agent/intents"

URLのproject-nameの部分はGCPプロジェクトのIDにする

レスポンス

{
  "name": "",
  "displayName": "Greeting",
  "priority": 500000,
  "mlEnabled": true,
  "action": "greeting",
  "messages": [
    {
      "text": {
        "text": [
          "Hello!"
        ]
      }
    }
  ]
}

Dialogflowコンソールを確認

Screen Shot 0029-12-07 at 21.30.11.png

ちゃんと作成されました!

コマンドラインからIntentを削除

次はIntentを削除してみましょう!

IntentのIDをメモする

削除したいIntentを選択しIDをメモします。IntentページのURLの editIntent/以降の部分がIntentのIDです。

削除リクエスト

$ curl -X DELETE -H "Authorization: Bearer "$(gcloud auth print-access-token) \
               -H "Content-Type: application/json; charset=utf-8" \
               "https://dialogflow.googleapis.com/v2beta1/projects/project-name/agent/intents/intent-id"

URLのproject-nameの部分はGCPプロジェクトのIDにする
URLのintent-idの部分はメモをしたIDにする

レスポンス

削除に成功すると空のレスポンスが返ってきます。

$ {}

Dialogflowコンソールで削除を確認

Screen Shot 0029-12-07 at 21.44.27.png

ちゃんと削除されました!

16
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
12