AwsBedrockEmbedder 类用于通过 AWS Bedrock API 将文本数据嵌入到向量中。默认情况下,它使用 Cohere Embed Multilingual V3 模型来生成嵌入。

设置

设置您的 AWS 凭证

export AWS_ACCESS_KEY_ID = xxx
export AWS_SECRET_ACCESS_KEY = xxx
export AWS_REGION = xxx

默认情况下,此 embedder 使用 cohere.embed-multilingual-v3 模型。在使用此 embedder 之前,您必须在 AWS Bedrock 模型目录中启用对此模型的访问。

运行 PgVector

docker run - d \
    - e POSTGRES_DB = ai \
    - e POSTGRES_USER = ai \
    - e POSTGRES_PASSWORD = ai \
    - e PGDATA = /var/lib/postgresql/data/pgdata \
    - v pgvolume: / var/lib/postgresql/data \
    - p 5532: 5432 \
    - -name pgvector \
    agnohq/pgvector: 16

用法

cookbook/embedders/aws_bedrock_embedder.py

# 将句子嵌入数据库
embeddings = AwsBedrockEmbedder().get_embedding(
    "The quick brown fox jumps over the lazy dog."
)
# 打印嵌入及其维度
print(f"Embeddings: {embeddings[:5]}")
print(f"Dimensions: {len(embeddings)}")

# 结合 PDF 知识库的示例用法
knowledge_base = PDFUrlKnowledgeBase(
    urls=["https://agno-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf"],
    reader=PDFUrlReader(
        chunk_size=2048
    ),  # 由于 Cohere 模型具有固定的 2048 大小,因此是必需的
    vector_db=PgVector(
        table_name="recipes",
        db_url="postgresql+psycopg://ai:ai@localhost:5532/ai",
        embedder=AwsBedrockEmbedder(),
    ),
)
knowledge_base.load(recreate=False)

参数

参数类型默认值描述
idstr"cohere.embed-multilingual-v3"要使用的模型 ID。您需要在 AWS Bedrock 模型目录中启用此模型。
dimensionsint1024模型生成的嵌入的维度(Cohere 模型为 1024)。
input_typestr"search_query"在前面加上特殊标记以区分类型。选项:‘search_document’, ‘search_query’, ‘classification’, ‘clustering’。
truncateOptional[str]None如何处理长度超过最大标记长度的输入。选项:‘NONE’, ‘START’, ‘END’。
embedding_typesOptional[List[str]]None要返回的嵌入类型。选项:‘float’, ‘int8’, ‘uint8’, ‘binary’, ‘ubinary’。
aws_regionOptional[str]None要使用的 AWS 区域。如果未提供,将回退到 AWS_REGION 环境变量。
aws_access_key_idOptional[str]NoneAWS 访问密钥 ID。如果未提供,将回退到 AWS_ACCESS_KEY_ID 环境变量。
aws_secret_access_keyOptional[str]NoneAWS 密钥访问密钥。如果未提供,将回退到 AWS_SECRET_ACCESS_KEY 环境变量。
sessionOptional[Session]None用于身份验证的 boto3 Session 对象。
request_paramsOptional[Dict[str, Any]]None要传递给 API 请求的附加参数。
client_paramsOptional[Dict[str, Any]]None要传递给 boto3 客户端的附加参数。
clientOptional[AwsClient]None用于发出 API 请求的 AWS Bedrock 客户端实例。

开发人员资源