このガイドでは、データストア エージェントのパフォーマンスをモニタリングして改善するための推奨事項について説明します。
エージェントのパフォーマンスを追跡する
エージェントの会話履歴をモニタリングしたり、エージェントの統計情報に分析ツールを使用したりできます。
セルフサービス評価を実行する
セルフサービス評価を実行すると、データストア エージェントの品質を評価し、変更を推奨できます。
エージェントのレスポンスを改善する
テスト中に期待どおりでないレスポンスが見つかった場合は、次の手順をお試しください。
- 特定の質問のよくある質問のエントリを追加することで、回答を上書きできます。
- 構造化されたよくある質問で質の低い回答がある場合は、非構造化されたよくある質問をお試しください。
- 検索構成を使用すると、正しい回答を確実に提供するのに役立ちます。
- レスポンスを最適化するには、構成の解析とチャンクを使用します。
- 特定のフレーズを禁止するには、エージェントの設定: 禁止フレーズをご覧ください。
- 責任ある AI(RAI)のコンテンツ フィルタリングをカスタマイズするには、エージェントの設定: 安全フィルタをご覧ください。
会話の余談を処理する
エンドユーザーが会話中に明らかにするための質問をする場合があります。たとえば、クレジット カード情報の収集中に、CVV が何かを明確にする必要があります。この場合、エージェントは質問に回答し、必要なクレジット カード情報の収集に戻る必要があります。これを行うには、質問に答えるデータストアを使用してデータストア ハンドラを作成し、そのハンドラをクレジット カード情報の収集を処理するフローのフロースタートページに適用して、このハンドラが「現在のページ」に戻るためのトランジション ターゲットを設定します。
不要なインテント マッチを処理する
エージェントがデータストア ハンドラを使うべきなのにインテントと一致している場合、これを修正するために以下を試すことができます。
- あいまいなトレーニング フレーズを削除または変更します。これにより、すべてのトレーニング フレーズが目的の意図を正確に処理し、データストアのコンテンツと競合しなくなります。
- ネガティブ サンプルを使用してインテント不一致を回避します。
データストアのフィルタリング
場合によっては、セッション パラメータ値に応じて、クエリに特定のデータストアのみを使用することがあります。たとえば、商品カテゴリごとに一意のデータストアを作成する場合があります。商品カテゴリのデータストア フィルタリングを行うには:
- セッション パラメータを商品カテゴリに設定します。
- セッション パラメータの値をチェックし、目的のデータストア ハンドラがある特定のページに遷移する条件ルートを作成します。
- データストア ハンドラが呼び出しページに戻り、会話を続行できます。
カスタマイズ
生成回答をエンドユーザーにより関連性のあるものにするために、Dialogflow にユーザーに関する情報を提供できます。
この情報は JSON として提供されます。 想定されるスキーマはないため、オブジェクト プロパティを自由に定義できます。 この JSON は大規模な言語モデルにそのまま送信されるため、記述的なプロパティ名と値により最適な結果につながります。
次に例を示します。
{
"subscription plan": "Business Premium Plus",
"devices owned": [
{"model": "Google Pixel 7"},
{"model": "Google Pixel Tablet"}
]
}
Dialogflow API によるパーソナライズ
インテント検出リクエストを送信するときに、そのデータを Dialogflow に渡すことができます。 この情報はセッションで維持されないため、すべてのインテント検出リクエストで提供する必要があります。
この情報は、Sessions.detectIntent
メソッドの queryParams.endUserMetadata
フィールドに入力します。
セッション リファレンスのプロトコルとバージョンを選択:
プロトコル | V3 | V3beta1 |
---|---|---|
REST | セッション リソース | セッション リソース |
RPC | セッション インターフェース | セッション インターフェース |
C++ | SessionsClient | 利用できません |
C# | SessionsClient | 利用できません |
Go | SessionsClient | 利用できません |
Java | SessionsClient | SessionsClient |
Node.js | SessionsClient | SessionsClient |
PHP | 利用不可 | 利用できません |
Python | SessionsClient | SessionsClient |
Ruby | 利用不可 | 利用できません |
Dialogflow Messenger によるカスタマイズ
このデータを Dialogflow Messenger の統合に提供できます。setContext メソッドをご覧ください。
検索構成
エージェントの動作をより適切に制御し、回答の質を向上させるために、検索構成(ブーストとフィルタ)を公開することで、ドキュメントのブースト、埋め込み、フィルタを行うことができます。
ブースト コントロールを使用すると、特定のドキュメントにブースト値(ランキングが高い場合は 0 より大きい値、ランキングが低い場合は 0 未満の値)を適用することで、検索結果のランキングを変更できます。
フィルタ コントロールを使用すると、指定したフィルタ条件に基づいて検索結果を保持または削除できます。
この情報は、Dialogflow リクエストに JSON として提供されます。 JSON の形式は、検索コントロールのタイプによって異なります。
ブースト コントロール
次の検索構成は、ブースト コントロールを示しています。
"searchConfig": {
"boostSpecs": [
{
"dataStores": [ "DATASTORE_ID" ],
"spec": [
{
"conditionBoostSpecs": {
"condition": "CONDITION",
"boost": "1.0"
}
}
]
}
]
}
フィルタ コントロール
次の検索構成は、フィルタ コントロールを示しています。
"searchConfig": {
"filterSpecs": [
{
"dataStores": [ "DATASTORE_ID" ],
"filter": "CONDITION"
}
]
}
Dialogflow API を使用して検索構成を設定する
インテント検出リクエストを送信するときに、そのデータを Dialogflow に渡すことができます。 この情報はセッションで維持されないため、すべてのインテント検出リクエストで提供する必要があります。
この情報は、Sessions.detectIntent
メソッドの queryParams.searchConfig
フィールドに入力します。
セッション リファレンスのプロトコルとバージョンを選択:
プロトコル | V3 | V3beta1 |
---|---|---|
REST | セッション リソース | セッション リソース |
RPC | セッション インターフェース | セッション インターフェース |
C++ | SessionsClient | 利用できません |
C# | SessionsClient | 利用できません |
Go | SessionsClient | 利用できません |
Java | SessionsClient | SessionsClient |
Node.js | SessionsClient | SessionsClient |
PHP | 利用不可 | 利用できません |
Python | SessionsClient | SessionsClient |
Ruby | 利用不可 | 利用できません |
Dialogflow Messenger を使用して検索構成を設定する
このデータを Dialogflow Messenger の統合に提供できます。
検索コントロールを適用するには、次のスニペットをウェブサイトに埋め込むときに DF メッセンジャー コードに追加する必要があります。
<script>
document.addEventListener('df-messenger-loaded', () => {
const dfMessenger = document.querySelector('df-messenger');
const searchConfig = { ... }
dfMessenger.setQueryParameters(searchConfig);
});
</script>
詳しくは、setQueryParameters メソッドをご覧ください。