注意事項
- 本記事は2019/11時点の情報です
- もしかすると抜けている部分があるかもしれません
やりたいこと
Python3.7からDialogflowにアクセスし、渡した文字列の解析をさせたい。
なぜ本記事を書いたか
- 日本語での情報が少ない
- 公式ドキュメントがわかりにくい
- 今後のために備忘録
手順
1.事前準備
必要なパッケージをpipでインストール
pip install dialogflow
2.基本となるプログラム
import os
import dialogflow
from google.api_core.exceptions import InvalidArgument
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = 'private_key.json'
DIALOGFLOW_PROJECT_ID = 'プロジェクトID'
DIALOGFLOW_LANGUAGE_CODE = 'ja'
SESSION_ID = 'me'
text_to_be_analyzed = "こんにちは"
session_client = dialogflow.SessionsClient()
session = session_client.session_path(DIALOGFLOW_PROJECT_ID, SESSION_ID)
text_input = dialogflow.types.TextInput(text=text_to_be_analyzed, language_code=DIALOGFLOW_LANGUAGE_CODE)
query_input = dialogflow.types.QueryInput(text=text_input)
try:
response = session_client.detect_intent(session=session, query_input=query_input)
except InvalidArgument:
raise
print("Query text:", response.query_result.query_text)
print("Detected intent:", response.query_result.intent.display_name)
print("Detected intent confidence:", response.query_result.intent_detection_confidence)
print("Fulfillment text:", response.query_result.fulfillment_text)
print(response.query_result)
3.プロジェクトID取得
1. Diaogflowのコンソールを開きます
2. アシスタント名の右にある歯車アイコンから設定画面へ行きます
3. プロジェクトIDを探しコピー
4. コピーしたIDに置き換え
DIALOGFLOW_PROJECT_ID = 'プロジェクトID'
のプロジェクトIDを置き換えてください
4.認証キーの取得
1. 先ほどのプロジェクトIDが書かれていた場所をクリック
2. GoogleCloudPlatformが開くのでナビゲーションメニューからAPIとサービス -> ライブラリ の順で選択
3. ライブラリでDialogflowを検索して選択
4. 有効になっているか確認する
5. ナビゲーションメニューからIAMと管理 -> サービスアカウント の順で選択
6. サービスアカウントを作成を選択
7. サービスアカウント名を記入
- 他のアカウントと区別するだけなので好きな名前をサービスアカウント名へ入れる
- IDはこだわりがなければ特に変更しなくてよい
- 説明は省略可
終わったら作成を選択
8. 役職を決める
役職を選択から Dialogflow -> Dialogflow API クライアント の順で選択し続行を選択
9. キー作成
1. キーの作成を選択
2. キーのタイプでjsonを選択し作成
3. ダウンロードしたjsonファイルを配置
private_key.jsonに名前を変更しPythonファイルと同じ階層に置く
5.実行
Pythonプログラムを実行しエラーが出なければ成功
最後に
GoogleのAPI全般で分かりにくいのが認証だと思います。公式ドキュメントも探しにくく大変なことが多いです。
少しでも本記事が役に立てれば幸いです。
最後までご覧いただきありがとうございました。