翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
パッセージを取得する
Retrieve API を、検索拡張生成 (RAG) システムのレトリバーとして使用できます。
RAG システムは、生成系人工知能を使用して質問応答アプリケーションを構築します。RAG システムは、レトリバーと大規模言語モデル (LLM) で構成されています。クエリが指定されると、レトリバーはドキュメントのコーパスから最も関連性が強いテキストのコーパスを特定し、それを LLM に送り、最も有用な答えを提供します。次に、LLM は関連するテキストチャンクまたはパッセージを分析し、クエリに対する包括的なレスポンスを生成します。
Retrieve
API は、パッセージと呼ばれるテキストのチャンクまたは抜粋を検索し、最も関連性の強い最上位のパッセージをクエリに返します。
Query API と同様に、Retrieve
API は関連情報も検索します。Retrieve API の情報の取得では、クエリのコンテキストと、インデックスが作成されたドキュメントから利用可能なすべての情報を考慮します。ただし、デフォルトでは Query
API は最大 100 個のトークンワードの抜粋のみを返します。Retrieve
API を使用すると、最大 200 個のトークンワードの長いパッセージと、最大 100 個のセマンティックに関連するパッセージを取得できます。これには、インデックスからの質問応答や FAQ タイプの回答は含まれません。節はチャンクとも呼ばれ、複数のドキュメントと同じドキュメントの複数の部分から意味的に抽出できるテキストの抜粋です。Kendra の GenAI Enterprise Edition インデックスは、深層学習モデルによるランク付けとともに、ベクトルインデックスとキーワードインデックスに対するハイブリッド検索を使用して、取得に関する高精度の結果を提供します。
Retrieve
API を使用すると、次のことを実行できます。
-
インデックスレベルでのオーバーライドブースト
-
ドキュメントフィールドまたは属性に基づくフィルタリング
-
ユーザーまたはグループのドキュメントへのアクセスに基づいたフィルタリング
-
取得したドキュメントの結果の信頼度スコアバケットを表示します。信頼度バケットは、 Amazon Kendra がそのレスポンスがクエリに関連している信頼度を示す相対的なランク付けを提供します。
注記
信頼スコアバケットは現在、英語でのみ利用可能です。
有用な追加情報が得られる可能性のある特定のフィールドをレスポンスに含めることもできます。
Retrieve
API は現在、高度なクエリ構文を使用したクエリ、クエリのスペル修正の提案、ファセット、検索クエリをオートコンプリートするためのクエリ提案、増分学習などの機能をサポートしていません。取得 API クエリは分析ダッシュボードに表示されません。
Retrieve
API は、インデックスに設定したクエリ容量ユニットの数を共有します。1 つのキャパシティーユニットに含まれる内容と、インデックスのデフォルトの基本容量の詳細については、「Adjusting capacity」を参照してください。
注記
Amazon Kendra Developer Edition を使用している場合は、容量を追加できません。容量を追加できるのは Amazon Kendra Enterprise Edition を使用している場合のみです。Developer Edition と Enterprise Edition に含まれる内容の詳細については、「Amazon Kendra Editions」を参照してください。
次の例では、Retrieve
API を使用してクエリ "how does amazon kendra work?" のインデックス内のドキュメントから最も関連性の高い上位 100 件のドキュメントを取得しています。
import boto3
import pprint
kendra = boto3.client("kendra")
# Provide the index ID
index_id = "index-id"
# Provide the query text
query = "how does amazon kendra work?"
# You can retrieve up to 100 relevant passages
# You can paginate 100 passages across 10 pages, for example
page_size = 10
page_number = 10
result = kendra.retrieve(
IndexId = index_id,
QueryText = query,
PageSize = page_size,
PageNumber = page_number)
print("\nRetrieved passage results for query: " + query + "\n")
for retrieve_result in result["ResultItems"]:
print("-------------------")
print("Title: " + str(retrieve_result["DocumentTitle"]))
print("URI: " + str(retrieve_result["DocumentURI"]))
print("Passage content: " + str(retrieve_result["Content"]))
print("------------------\n\n")