要使用 AWS SDK 或 CLI 调用 Amazon Bedrock 提供的模型(如 Jurassic-2 或 Anthropic 的 Claude),您需要使用 Bedrock Runtime 服务。首先,确保您在 AWS 账户中拥有对 Bedrock 的访问权限,并且已启用特定模型。Bedrock 为与不同的基础模型交互提供了一个统一的 API,因此核心步骤在不同模型之间是相似的,但输入/输出格式可能会有所不同。您需要安装 AWS SDK(例如,Python 的 Boto3)或配置了凭据的 AWS CLI,并且您必须以 Bedrock 可用的区域为目标,例如 us-east-1
。
使用 AWS SDK,首先初始化 Bedrock Runtime 客户端。例如,在使用 Boto3 的 Python 中,您可以使用 boto3.client('bedrock-runtime')
创建一个客户端。接下来,构造一个针对目标模型格式化的请求正文。Claude 需要一个带有 prompt
字段和诸如 max_tokens_to_sample
之类的参数的 JSON 有效负载,而 Jurassic-2 使用 promptText
字段和诸如 temperature
之类的参数。例如,调用 Claude 可能如下所示
import boto3
client = boto3.client('bedrock-runtime', region_name='us-east-1')
response = client.invoke_model(
modelId='anthropic.claude-v2',
body=json.dumps({
"prompt": "Hello, how are you?",
"max_tokens_to_sample": 300
}),
contentType='application/json'
)
result = json.loads(response['body'].read())
print(result['completion'])
这会向 Claude 发送请求并从响应中解析生成的文本。
对于 AWS CLI,请使用 aws bedrock-runtime invoke-model
命令。指定模型 ID、包含 JSON 有效负载的输入文件和输出文件。例如,要调用 Jurassic-2
aws bedrock-runtime invoke-model \
--model-id 'ai21.j2-mid-v1' \
--body '{"promptText":"Explain quantum computing", "maxTokens":200}' \
--cli-binary-format raw-in-base64-out \
--region us-east-1 \
output.json
响应将保存到 output.json
,您可以解析该文件以获取生成的文本。请注意,CLI 输入必须正确转义或从文件加载。始终检查模型的文档以获取所需的参数和响应格式,因为它们在提供商之间有所不同。建议在生产环境中使用适当的错误处理和重试机制。