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 2 和Mistral,但随着更多聊天模型的添加,它们的支持将通过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)
更新于 5 个月前
