AmazonBedrockRanker
AmazonBedrockRanker
Amazon Bedrock 모델로 쿼리와의 유사도에 따라 문서를 순위 매기는 컴포넌트예요.
파이프라인에서 가장 흔한 위치: 쿼리 파이프라인에서 Retriever처럼 문서 목록을 반환하는 컴포넌트 뒤
필수 init 변수: aws_access_key_id(AWS_ACCESS_KEY_ID 환경 변수로 설정 가능), aws_secret_access_key(AWS_SECRET_ACCESS_KEY 환경 변수로 설정 가능), aws_region_name(AWS_DEFAULT_REGION 환경 변수로 설정 가능)
필수 run 변수: documents(문서 객체 목록), query(쿼리 문자열)
출력 변수: documents — 문서 객체 목록
API reference: Amazon Bedrock
GitHub link: https://github.com/deepset-ai/haystack-core-integrations/tree/main/integrations/amazon_bedrock/
Package name: amazon-bedrock-haystack
출처: 문서
본문
Overview
AmazonBedrockRanker는 지정된 쿼리에 대한 의미적 관련성에 따라 문서를 순위 매겨요. Amazon Bedrock Rerank API를 사용하죠. 지원되는 모든 모델 목록은 Amazon 문서에서 확인할 수 있어요. 이 Ranker의 기본 모델은 cohere.rerank-v3-5:0입니다.
top_k 파라미터로 반환할 최대 문서 수를 지정할 수도 있어요.
Installation
Haystack과 함께 Amazon Bedrock을 쓰려면 amazon-bedrock-haystack 패키지를 설치하세요:
pip install amazon-bedrock-haystack
Authentication
이 컴포넌트는 인증에 AWS를 사용해요. AWS CLI로 IAM을 통해 인증할 수 있습니다. IAM 아이덴티티 기반 정책 설정 방법은 공식 문서를 참고하세요.
Using AWS CLI AWS 서비스를 관리하는 더 간단한 도구로 AWS CLI를 쓰는 걸 고려해 보세요. AWS CLI로 boto3 자격 증명을 빠르게 구성할 수 있어요. 그러면 Haystack에서 Amazon Bedrock을 초기화할 때 자세한 인증 파라미터를 제공할 필요가 없어요.
이 컴포넌트를 쓰려면 모델 이름으로 초기화하세요. AWS 자격 증명(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_DEFAULT_REGION)은 환경 변수로 설정하거나, 위에서 설명한 대로 구성하거나, Secret 인자로 전달해야 합니다. 설정한 리전이 Amazon Bedrock을 지원하는지 확인하세요.
Usage
On its own
이 예시는 AmazonBedrockRanker로 두 개의 단순한 문서를 순위 매깁니다. Ranker를 실행하려면 query를 넘기고 documents를 제공하세요.
from haystack import Document
from haystack_integrations.components.rankers.amazon_bedrock import AmazonBedrockRanker
docs = [Document(content="Paris"), Document(content="Berlin")]
ranker = AmazonBedrockRanker()
ranker.run(query="City in France", documents=docs, top_k=1)
In a pipeline
아래는 InMemoryDocumentStore에서 키워드 검색(InMemoryBM25Retriever 사용)으로 문서를 가져오는 파이프라인 예시예요. 그런 다음 AmazonBedrockRanker로 가져온 문서를 쿼리와의 유사도에 따라 순위 매깁니다. 파이프라인은 Ranker의 기본 설정을 사용해요.
from haystack import Document, Pipeline
from haystack.components.retrievers.in_memory import InMemoryBM25Retriever
from haystack.document_stores.in_memory import InMemoryDocumentStore
from haystack_integrations.components.rankers.amazon_bedrock import AmazonBedrockRanker
docs = [
Document(content="Paris is in France"),
Document(content="Berlin is in Germany"),
Document(content="Lyon is in France"),
]
document_store = InMemoryDocumentStore()
document_store.write_documents(docs)
retriever = InMemoryBM25Retriever(document_store=document_store)
ranker = AmazonBedrockRanker()
document_ranker_pipeline = Pipeline()
document_ranker_pipeline.add_component(instance=retriever, name="retriever")
document_ranker_pipeline.add_component(instance=ranker, name="ranker")
document_ranker_pipeline.connect("retriever.documents", "ranker.documents")
query = "Cities in France"
res = document_ranker_pipeline.run(
data={
"retriever": {"query": query, "top_k": 3},
"ranker": {"query": query, "top_k": 2},
},
)
더 알아보기 (Learn more)
- Rankers — Ranker 개요
- Retrievers — Retriever 컴포넌트