使用 Amazon Bedrock 生成文本的典型 API 请求涉及将结构化有效负载发送到特定的模型端点,其中包含定义输入和输出行为的参数。具体细节取决于您使用的基础模型(例如,Anthropic Claude、AI21 Jurassic-2),但大多数都遵循类似的模式。您需要使用 AWS Signature Version 4 (SigV4) 对请求进行身份验证,包含诸如 Content-Type: application/json
的请求头,并发送包含您的提示和配置选项的 JSON 正文。例如,对 Claude 的请求可能会指定 anthropic.claude-v2
模型端点,并在有效负载中包含 prompt
、max_tokens_to_sample
和 temperature 等参数。
有效负载通常包含控制文本生成的参数。常见的结构包括输入文本 (prompt
)、一个 token 限制 (max_tokens
或 max_tokens_to_sample
),以及采样设置,如 temperature
(随机性)和 top_p
(多样性)。例如,一个 Claude 请求可能如下所示
{
"prompt": "\n\nHuman: Write a haiku about clouds\n\nAssistant:",
"max_tokens_to_sample": 100,
"temperature": 0.5,
"top_p": 0.9,
"stop_sequences": ["\n\nHuman:"]
}
在这里,stop_sequences
定义了指示模型停止生成的文本。其他模型如 Jurassic-2 可能使用略有不同的参数(例如,用于多个输出的 numResults
或用于控制重复的 penalties
)。请务必查看模型提供商的文档以了解确切要求。
响应是一个 JSON 对象,包含生成的文本和元数据。对于上面的示例,Claude 可能会返回
{
"completion": "Drifting cotton wisps,\nPainting whispers on blue skies,\nSun's fleeting embrace.",
"stop_reason": "stop_sequence",
"stop": "\n\nHuman:"
}
处理错误(例如,超出 token 限制)需要检查 HTTP 状态码和错误字段。开发者通常会将其包装在一个函数中,该函数负责构建请求、处理身份验证和解析响应。使用 AWS SDK(例如,Python 的 Boto3)可以简化 SigV4 签名,但您也可以使用 curl
等工具通过手动生成所需的请求头来直接调用 API。