在对 Amazon Bedrock 发送请求时,您可以通过在 API 调用中包含 modelId 参数来指定要使用的基础模型。Bedrock 中的每个模型都有一个唯一的标识符(例如 amazon.titan-text-express-v1 或 anthropic.claude-v2),它决定了用于处理请求的底层模型。通过 AWS SDK、CLI 或 REST API 发送请求时,您需要明确设置此参数以选择所需的模型。例如,在 InvokeModel API 中,您需要在请求正文或 SDK 方法调用中将 modelId 与输入文本和推理配置等其他参数一起构建。
为了说明这一点,这里有一个使用 Python 的 AWS SDK (Boto3) 的简化示例
import boto3
bedrock = boto3.client(service_name='bedrock-runtime')
response = bedrock.invoke_model(
modelId='anthropic.claude-v2',
body=json.dumps({
"prompt": "Explain how to choose a model in Bedrock.",
"max_tokens_to_sample": 300
})
)
在此代码段中,modelId 设置为 anthropic.claude-v2,表示选择 Claude v2。类似地,使用 amazon.titan-text-express-v1 将调用 Amazon 的 Titan Text Express 模型。请求正文的结构(例如,prompt vs. inputText)在不同模型之间可能略有差异,因此您必须遵循所选模型所需的输入格式。Bedrock 文档提供了每个模型输入参数的详细规范。
选择模型时,请确保它在您的 AWS 区域可用并符合您的用例。例如,Titan Text Express 针对通用文本生成进行了优化,而 Claude v2 支持更长的上下文。您可以使用 ListFoundationModels API 列出您区域中可用的模型。务必检查 modelId 的拼写和版本(例如 v1 vs. v2),因为不正确的 ID 将导致错误。此外,某些模型可能需要特定权限或有使用限制,因此请查看 Bedrock 的服务配额和 IAM 策略以避免中断。