LoginSignup
3
5

More than 5 years have passed since last update.

api.aiのContextの概要

Posted at

Contexts

Contextはユーザのリクエストの現在のコンテキストを表す。これは、ユーザの好み、地理的な位置、アプリケーションないのページ、会話のトピックなどに依存して意味が異なったり漠然とした居留守異なったフレーズを扱うのに便利である。

例えば、ユーザが音楽を聞いていて興味を引くバンドを見つけたとしたしたとき、「このバンドの他の曲をもっと聞きたい」というようなことを言うだろう。開発者としては、Agentが他のIntent内で使えるようにするためにリクエスト内にバンド名を含めることが出来る。

また、あなたがスマートホームデバイスの製造者というのであれば、ライトや家電製品を遠隔で操作するアプリケーションを作ることができる。ユーザは「ライトをつけて」と言ったあとに「それを消して」という。コンテキストを設定することによって、アプリケーションは1つめのリクエストで言及されているライトを2番めのリクエスト内で理解することができる。もしユーザが「コーヒーマシーンをオンにして」といいい、「それを消して」といった場合、先の例とはコンテキストが異なるので違った結果になる(=消えるのはライトではなくコーヒーマシーン)。

Contextsの追加

Contextを定義してIntentに追加するためには、 Add input contextAdd output contextフィールドをクリックして所望のコンテキスト名を入力し、エンターキーで確定する。

Lifespan

デフォルトではContextは有効化されたタイミングから5リクエストか10秒で期限切れとなる。Contextを更新するIntentはカウンターをリセットして、追加の5リクエストまたは10秒を仕掛ける。

現在のLifespanをクリックしてリクエスト数を入れ直すことでContextのLifespanを変更することができる。Lifespanを0にすると、Contextがリセットされる。

Output Contexts

Contextはユーザのセッション(APIコール内で渡されるセッションID)に紐付けられる。ユーザの表現があるIntentにマッチした場合、そのIntentはアウトプットContextを設定することができる。また、ユーザのリクエストをあなた自身のAPIに送ったときにもコンテキストを設定することができるl.

Input Contexts

InputContextは特定のコンテキストがセットされているときにのみIntentとマッチするように制限する。

音楽の例において、「このバンドの曲がもっと聞きたい」といったようなリクエストに対する2つのIntentを作成する。このContextなしのIntentは、アプリケーションがアーティストについての情報を持っていないときにマッチし、ユーザからアーティストの情報を取得する必要が出てくる。これはrequiredパラメータで提供されるPromptによって取得する。

Contextsからのパラメータ値の抽出

定義されたアウトプットContextと紐付いたIntent内で抽出されたパラメータの値をさんしょうするには、次のフォーマットをVALUEカラムで使う。#context_name.parameter_name

3
5
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
3
5