このページでは、Agent Assist のスマート作成機能を使用する際のベスト プラクティスについて説明します。API を直接呼び出してこの機能を実装する方法については、スマート作成のハウツーガイドをご覧ください。コンソールのチュートリアルで、 エージェント アシスト コンソールを使用してこの機能を実装する手順をご確認ください。
用語
スマート作成では、次の用語を使用します。
候補のベーステキスト
このセクションでは、Agent Assist で使用する用語について説明します。
候補のベーステキスト は、スマート作成が入力補完の候補を生成するために使用する、部分的に入力されたテキストです。これは、
current_text_input.text の
SuggestSmartComposeAnswersRequest内のテキストです。
例: 人間のエージェントが「Ho」と入力した場合、「how are you」という候補が表示されることがあります。この場合、「Ho」がベーステキスト で、「how are you」が候補です。
候補の拡張テキスト
候補の拡張テキスト は、候補とそのベーステキストをマージして作成されます。ベーステキストに、候補の接頭辞と一致する接尾辞が含まれている場合、一致する部分がマージされます。スマート作成では、接尾辞と接頭辞が区別されません。誤検出を避けるため、ベーステキストの接尾辞と一致する空でない接頭辞がある場合にのみ候補を表示することをおすすめします。
例: ベーステキストが「Ho」で、候補が「how are you」の場合、候補の拡張テキスト は「How are you」になります。
利用可能な候補
候補は、次の条件を満たす場合に利用可能 な候補となります。
- 候補のベーステキストが、すでに入力されているテキストの接頭辞である。
- 入力されたテキストが、候補の拡張テキストの接頭辞であるが、候補の拡張テキストと等しくない。
例: すでに入力されているテキストが「how a」の場合、ベーステキストが「Ho」の候補「how are you」は利用可能な候補 ですが、すでに入力されているテキストが「h」または「how are you」の場合、利用可能な候補ではありません。
候補をリクエストする
利用可能な候補でカバーされていない新しい文字が入力されるたびに、サーバーから
suggestSmartComposeAnswers
リクエストを送信することをおすすめします。これにより、スマート作成の候補が生成される可能性が高まります。これにより、qps が高くなる可能性があります。割り当て上限によりリクエストが調整されている場合は、Google にお問い合わせのうえ、解決策をご相談ください。リクエストを作成する際は、取得する候補の数を増やすために max_results=3 を設定することを検討してください。
候補を選択する
候補の選択は、エージェント UI にスマート作成を実装する前に実装する必要がある重要な機能です。入力は迅速に行われる可能性があり、スマート作成の候補には遅延が生じます。そのため、候補がエージェント UI に届くまでに無効になる可能性があります。この問題を最小限に抑えるため、利用可能な候補のサブセットのみを UI にレンダリングすることをおすすめします。入力されたテキストに対して、次の条件を満たす候補を選択する必要があります。
- 入力されたテキストの利用可能な候補である。
- ベーステキストの文字数が、利用可能なすべての候補の中で最も多い。
- 最長のベーステキストが同じ候補が複数ある場合は、候補のランクが最も高いオプションを選択します。
ワークフローの例:
- エージェントが「Ho」と入力します。
- 現在のメッセージ「Ho」を含むリクエストが送信されます。
- エージェントが「How」と入力します。
- 候補 {"Hope you", "how are you", "How are you doing today?"} (元のエントリ「Ho」に基づく)がエージェント UI に届きます。
- この場合、エージェントが別の単語を入力したため、「Hope you」は有効な候補ではなくなりました。代わりに、「how are you」が候補として表示されます。
キャッシュ
接頭辞をキー、API から返される候補を値として、Key-Value マップとしてキャッシュを実装することをおすすめします。マップで、エージェントの入力と一致するキーを確認する必要があります。マップに一致するキーが含まれていない場合は、エージェントの入力の末尾から文字を 1 つずつ削除し、反復ごとにマップを確認する必要があります。一致する候補が見つかるか、エージェントの入力から削除する文字がなくなるか、反復回数の上限に達するまで(50 回の反復が妥当な数です)続行します。一致するキーが見つかったら、候補を反復処理する必要があります。候補が有効かどうかを判断するには、キー(接頭辞の部分文字列)と候補をマージし、エージェントの入力と照合します。マージされた候補とエージェントの入力は、最初の文字から完全に重複している必要があります。重複していない場合は、次の候補を確認する必要があります。
キャッシュを使用した例:
- 「エージェント」が「H」と入力します。
- Key-Value マップで、接頭辞「H」の候補が確認されます。候補がなく、入力の末尾から削除する文字もないため、「H」の候補のリクエストが行われます。
- 「エージェント」が「Ho」と入力します。
- Key-Value マップで、接頭辞「Ho」の候補が確認されます。候補がないため、Key-Value マップで接頭辞「H」の候補が確認されます。候補がなく、入力の末尾から削除する文字もないため、「Ho」の候補のリクエストが行われます。
- ステップ 2 で送信されたリクエストから候補のないレスポンスが返され、レスポンスがキー「H」のキャッシュに追加されます。
- ステップ 4 で送信されたリクエストから候補 {"Hope you", "how are you", "How are you doing today?"} を含むレスポンスが返され、候補がキー「Ho」のキャッシュに追加されます。
- Key-Value マップで、接頭辞「Ho」の候補が確認されます。候補があります。候補がループ処理され、キーと候補がマージされて「エージェント」の入力と照合されます。「エージェント」の入力「Ho」が最初の候補「Hope you」と重複しているため、候補「pe you」がエージェントに表示されます。
- 「エージェント」が「How」と入力します。
- Key-Value マップで、接頭辞「How」の候補が確認されます。候補がないため、Key-Value マップで接頭辞「Ho」の候補が確認されます。候補があります。候補がループ処理され、キーと候補がマージされて「エージェント」の入力と照合されます。「エージェント」の入力「How」が最初の候補「how are you」と重複しているため、候補「 are you」がエージェントに表示されます。
会話の履歴
スマート作成は、会話の履歴に基づいて正しく機能します。Smart Reply やその他の Agent Assist 機能を
analyzeContent
API を介して使用している場合は、すでにカバーされています。それ以外の場合は、suggestSmartComposeAnswers を使用してスマート作成の候補を取得する前に、完了したメッセージごとに analyzeContent API を呼び出す必要があります。詳しくは、スマート作成のハウツー
ガイドをご覧ください。