文档API 参考📓 教程🧑‍🍳 食谱🤝 集成💜 Discord🎨 Studio
文档

AmazonBedrockChatGenerator

该组件支持通过 Amazon Bedrock 服务使用模型进行聊天补全。

pipeline 中的最常见位置使用 ChatPromptBuilder 后
必需的初始化变量"model": 要使用的模型

"aws_access_key_id": AWS 访问密钥 ID。可以通过以下方式设置:AWS_ACCESS_KEY_ID 环境变量。

"aws_secret_access_key": AWS 密钥访问密钥。可以通过以下方式设置:AWS_SECRET_ACCESS_KEY 环境变量。

"aws_region_name": AWS 区域名称。可以通过以下方式设置:AWS_DEFAULT_REGION 环境变量。
强制运行变量“messages”: 一个 ChatMessage 实例列表
输出变量"replies": 一个 ChatMessage 对象列表

”meta”:一个包含与每个回复相关的元数据的字典列表,例如 token 计数、结束原因等
API 参考Amazon Bedrock
GitHub 链接https://github.com/deepset-ai/haystack-core-integrations/tree/main/integrations/amazon_bedrock

Amazon Bedrock 是一项全托管服务,通过统一的 API 提供来自领先 AI 初创公司和 Amazon 的高性能基础模型。您可以选择各种基础模型,找到最适合您用例的模型。

AmazonBedrockChatGenerator 支持使用来自 Anthropic、Cohere、Meta Llama 2 和 Mistral 的聊天模型,通过单个组件实现聊天补全。

我们目前支持的模型包括 Anthropic 的Claude、Meta 的Llama 2Mistral,但随着更多聊天模型的添加,它们的支持将通过AmazonBedrockChatGenerator.

概述

此组件使用 AWS 进行身份验证。您可以使用 AWS CLI 通过您的 IAM 进行身份验证。有关设置 IAM 基于身份的策略的更多信息,请参阅官方文档

📘

使用 AWS CLI

考虑使用 AWS CLI 作为管理 AWS 服务的更简单工具。使用 AWS CLI,您可以快速配置您的 boto3 凭证。这样,您无需在初始化 Haystack 中的 Amazon Bedrock Generator 时提供详细的身份验证参数。

要使用此组件进行文本生成,请初始化一个 AmazonBedrockGenerator,并指定模型名称、AWS 凭证(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_DEFAULT_REGION)应设置为环境变量,如上所述配置,或作为 Secret 参数传递。请注意,确保您设置的区域支持 Amazon Bedrock。

要开始使用 Haystack 中的 Amazon Bedrock,请安装amazon-bedrock-haystack

pip install amazon-bedrock-haystack

流式传输

此 Generator 支持将 LLM 的 token直接流式传输到输出中。要做到这一点,请将一个函数传递给streaming_callback 初始化参数。

用法

单独使用

基本用法

from haystack_integrations.components.generators.amazon_bedrock import AmazonBedrockChatGenerator
from haystack.dataclasses import ChatMessage

generator = AmazonBedrockChatGenerator(model="meta.llama2-70b-chat-v1")
messages = [ChatMessage.from_system("You are a helpful assistant that answers question in Spanish only"), ChatMessage.from_user("What's Natural Language Processing? Be brief.")]
    
response = generator.run(messages)
print(response)

在 pipeline 中

在 RAG 管道中

from haystack import Pipeline
from haystack.components.builders import ChatPromptBuilder
from haystack.dataclasses import ChatMessage
from haystack_integrations.components.generators.amazon_bedrock import AmazonBedrockChatGenerator

pipe = Pipeline()
pipe.add_component("prompt_builder", ChatPromptBuilder())
pipe.add_component("llm", AmazonBedrockChatGenerator(model="meta.llama2-70b-chat-v1"))
pipe.connect("prompt_builder", "llm")

country = "Germany"
system_message = ChatMessage.from_system("You are an assistant giving out valuable information to language learners.")
messages = [system_message, ChatMessage.from_user("What's the official language of {{ country }}?")]

res = pipe.run(data={"prompt_builder": {"template_variables": {"country": country}, "template": messages}})
print(res)

相关链接

请查看 GitHub 仓库或我们的文档中的 API 参考