Vertex AI Search アプリで検索するときに、関連性のしきい値を適用して、このしきい値を満たすドキュメントのみが結果として返されるようにできます。このページでは、関連性のしきい値を指定して、クエリで返されるドキュメントの数を減らす方法について説明します。
ドキュメント レベルの関連性によるフィルタリングについて
検索クエリによって返された各ドキュメントには、返されたドキュメントとクエリの関連性を示す関連性レベルが付与されます。API 呼び出しでクエリを実行するときに、関連性のしきい値を設定できます。関連性の高いドキュメントのみを返すようにしきい値を高く設定すると、クエリで返されるドキュメントの数を減らすことができます。
たとえば、検索結果にユーザーにとって関連性が低いドキュメントが過剰に返される場合は、関連性のしきい値を高く設定して、最も関連性の高いドキュメントのみを検索結果に表示するようにします。高設定で過剰に制限される場合は、中設定をお試しください。
ドキュメント レベルの関連性フィルタでサポートされているデータ型とアプリ
ドキュメントレベルの関連性フィルタは、次のようなデータを含むデータストアに適用できます。
- ウェブサイトの高度なインデックス登録を使用したウェブサイト データ
- 一般的な非構造化データ
- 一般的な構造化データ
ドキュメントレベルの関連性フィルタは、基本的なウェブサイト インデックス登録、メディアデータ、医療データを含むデータストアでは機能しません。
また、ドキュメント レベルの関連性フィルタは、統合検索アプリでは使用できません。統合検索アプリは、複数のデータストアに接続されているアプリです。
その他の種類のフィルタ
クエリによって返されたデータをフィルタする方法は、ドキュメント レベルの関連性フィルタ以外にもあります。フィルタ式を使用して、メタデータ(ウェブサイトの高度なインデックス登録とメタデータ データストアを使用した非構造化データ)とフィールド値(構造化データストア)に基づいて結果をフィルタすることもできます。
詳細については、以下をご覧ください。
フィルタ式とドキュメント レベルの関連性フィルタの両方を使用する場合、まずフィルタ式が結果に適用され、次にドキュメント レベルの関連性フィルタが適用されます。
始める前に
アプリとデータストアを作成し、データストアにデータを取り込んだことを確認します。詳細については、検索アプリを作成するをご覧ください。ドキュメントレベルの関連性フィルタでサポートされるデータ型とアプリもご覧ください。
ドキュメント レベルの関連性に基づいて結果を検索、フィルタする
関連性でフィルタするには、次の手順を行います。
アプリ ID を確認します。アプリ ID がすでにある場合は、次のステップに進みます。
Google Cloud コンソールで、[Agent Builder] ページに移動します。
[アプリ] ページでアプリの名前を見つけ、[ID] 列からアプリの ID を取得します。
ドキュメント レベルの関連性で検索をフィルタするには、
engines.servingConfigs.search
メソッドでrelevanceThreshold
フィールドを使用します。curl -X POST -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1alpha/projects/
PROJECT_ID /locations/global/collections/default_collection/engines/APP_ID /servingConfigs/default_search:search" \ -d '{ "servingConfig": "projects/PROJECT_ID /locations/global/collections/default_collection/engines/APP_ID /servingConfigs/default_search", "query": "QUERY ", "relevanceThreshold": "RELEVANCE_THRESHOLD " }'- PROJECT_ID: プロジェクトの ID。 Google Cloud
- APP_ID: クエリする Vertex AI Search アプリの ID。
- QUERY: 検索するクエリテキスト。
- RELEVANCE_THRESHOLD: 次のいずれかになります。
HIGH
、MEDIUM
、LOW
、LOWEST
。
コマンドの例と結果
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1alpha/projects/my-project-123/locations/global/collections/default_collection/engines/my-search-app/servingConfigs/default_search:search" \ -d '{ "servingConfig": "projects/my-project-123/locations/global/collections/default_collection/engines/my-search-app/servingConfigs/default_search", "query": "What is the check grounding API", "relevanceThreshold": "HIGH" }'
{ "results": [ { "id": "a082e70352c073a4443502477255bd2a", "document": { "name": "projects/123456/locations/global/collections/default_collection/dataStores/my-data-store/branches/0/documents/a082e70352c073a4443502477255bd2a", "id": "a082e70352c073a4443502477255bd2a", "derivedStructData": { "displayLink": "cloud.google.com", "link": "https://cloud.google.com/generative-ai-app-builder/docs/check-grounding", "htmlTitle": "Check grounding | Vertex AI Agent Builder | Google Cloud", "title": "Check grounding | Vertex AI Agent Builder | Google Cloud" } } } ], "totalSize": 1, "attributionToken": "f_B-CgwIidzwswYQyue15gESJDY2N2M1NmJkLTAwMDAtMjk3Ni1iMGI4LTg4M2QyNGZmNTZhOCIHR0VORVJJQypAjr6dFavEii3b7Ygt3o-aIoCymiLC8J4Vo4CXIra3jC3Usp0V24-aIt7tiC3n7YgtrsSKLeTtiC2DspoixsvzFw", "guidedSearchResult": {}, "summary": {} }ここでは、関連性のしきい値が高く設定されているため、最も関連性の高い結果のみが返されます。この例では、関連性が非常に高いドキュメントが 1 つだけと判断されました。
さまざまなしきい値で複数のクエリをテストして、データとアプリケーションに最適なしきい値設定を決定します。