Agents
- Agentは自然言語理解のモジュール
- 自分のアプリケーションや製品、サービスに組み込むことができる
- 自然言語によるユーザのリクエストをアクショナブルなデータに変換できる
- アクショナブルなデータへの変換はAgentの中に用意されたIntentに合致させることによって実行される
- InetntはAgentの中に存在するユーザリクエストを処理するための事前に定義されたコンポーネントかもしくは開発者が定義したコンポーネントである
- ContextやIntentのプロパティ、webhookを通したfulfillment等を利用することによって、Agentは会話の流れを管理するためにデザインすることが可能
Agentの作成
コンソール画面でCreate AgentをクリックするとAgent作成のメニューが開く
- Description - Agentの説明
- Add Sample Data - Agentにセットする事前に定義された知識を選ぶ。prebuilt agentと似ているが、Intent内のレスポンスをインクルードする点で異なる(prebuilt agentにはレスポンスは含まれない)。
- Language - Agentで扱う言語を選択する
- Default Time Zone - Agentのデフォルトタイムゾーンを選択する
- Google Project - 既に存在するGoogle Cloud Projectを選ぶか、新しく作るかを選択する。(※Google Cloud Platformのプロジェクト)
Agentの設定
コンソールで歯車アイコンをクリックするとAgentの設定画面が表示される。
- Update Avatar - Agentを表すアバターの設定
- Description - Agentの説明
- Language - Agentが取り扱う言語
- Default Time Zone - Agentのデフォルトタイムゾーン
- Google Project - AgentとリンクするGoogle Cloudプロジェクト
- Client Access Token - クライアントからアクセスする際のAPIキー
- Developer Access Token - EntityやIntentを管理するためのAPIキー
- Delete Agent - Agentの削除
Agentの事前ビルド
Prebuilt AgentsはAPI.AIのチームによって開発されたAgentのコレクションで、ユースケースに合わせてダウンロードし、自分のアプリの会話インターフェースを構築するベースとして使うことができる。
Prebuilt Agentのインポート方法
コンソールの左メニューで「Prebuilt Agents」をクリックしすると、キーワードに関係するユースケースのAgentを探せる画面に移る。特定のAgentをクリックするとImportボタンが出てくるので、クリックする。
Prebuilt Agentの構造
Prebuilt Agentはユーザの入力を分類する準備ができたもので、ユーザの自然言語による入力をアクショナブルなデータに変換する。
webhook経由で取得する外部ソースや特定のユースケースに依存するため、レスポンスは提供されない。例えば、天気予報ではサードパーティの天気APIからレスポンスを取得する必要がある。
Prebuilt Agentのカスタマイズ方法
Prebuilt Agentは十分にカスタマイズすることができる。
Topics CoveragetとClassification Modelのカスタマイズ
Prebuilt Agentは最も一般的なユーザの入力をカバーしている。同じ領域や反対の領域に関係する追加のトピックや、一部のユーザしか使わないような質問をカバーしたい場合は、IntentやEntityを削除・追加することで対応できる。
Agent間でIntentやEntityをコピーしたり移動したり、一度にIntentやEntitiyを削除することができる。
Agentのレスポンスのカスタマイズ
Intent内でのレスポンスの定義
シンプルなユースケースにおいては、Intent内で直接レスポンスを定義することができる。他のメッセージングプラットフォームを使う場合はテキストだけでなくリッチメッセージも定義することができる。
Fulfillment Service内でのレスポンスの定義
webhook経由で自身で作成したWebサービスと接続することができる。自身のWebサービス内で、Agentから受け取った悪所なブルなデータに基づいたレスポンスを定義したり、オペレーションを定義したりDBやサードパーティAPI等の外部ソースからデータを取得したりできる。
自前のバックエンドサービスを持っている場合、Agentに対するクエリリクエスト(ユーザが入力した自然言語?)を送って、独自のビジネスロジックでレスポンスを定義したいと考えるだろう。異なるプラットフォームや言語でクエリリクエストを送ってレスポンスを取得するために、SDKを使うことができる。