Claude(原生格式)——可 PDF 分析
简述:Claude 官方原生请求格式,支持 PDF/图片上传与缓存控制,适用于文档解析、摘要与问答。下列为常用字段与示例,更多高级参数请参阅 Claude 官方文档。
概览
- 请求方法:
POST - 路径:
/v1/messages - 内容类型:
application/json
适用模型
- 支持以
cld-或claude-开头的模型,以及部分兼容模型(示例:claude-3-5-sonnet-20240620等)。
认证方式
- Claude 官方格式通常无需
Authorizationheader,但在本平台推荐使用Authorization: Bearer sk-xxx或按平台要求的认证方式。
请求参数说明(常用)
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| model | string | 是 | 模型名称,例如 claude-3-5-sonnet-20240620 |
| messages | array | 是 | 消息数组,元素含 role 与 content,content 支持文本或文件对象 |
| messages[].content[].type | string | 否 | 可为 text / image / document 等 |
| messages[].content[].source | object | 否 | 文件资源,type 字段指示 base64 或 url,data 或 url 包含文件内容或地址 |
| messages[].content[].cache_control | object | 否 | 缓存控制(如 ephemeral),用于在会话中缓存 PDF 以节省 tokens |
| temperature | number | 否 | 采样温度 |
| top_p | number | 否 | 核采样阈值 |
| max_tokens | number | 否 | 最大生成 tokens |
| stream | boolean | 否 | 是否流式返回 |
| tools | object | 否 | 函数调用定义,详见 Claude 官方文档 |
| thinking | object | 否 | 指定思考模式(例如启用带 budget_tokens 的思考,仅部分模型支持) |
说明:若需启用思考(thinking),请确保所用模型支持该参数,且 budget_tokens 与 max_tokens 的设置满足约束。
示例
简单文本请求(curl)
bash
curl -X POST "https://api.gpt.ge/v1/messages" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-3-5-sonnet-20240620",
"messages": [ { "role": "user", "content": [ { "type": "text", "text": "你好,你是?" } ] } ],
"max_tokens": 1688,
"temperature": 0.5
}'PDF 分析示例(curl,base64)
bash
curl -X POST "https://api.gpt.ge/v1/messages" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-3-5-sonnet-20240620",
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "请帮我总结这份 PDF 的要点" },
{ "type": "document", "source": { "type": "base64", "data": "JVBERi0xLjQKJ...", "media_type": "application/pdf" }, "cache_control": { "type": "ephemeral" } }
]
}
],
"max_tokens": 6000
}'说明:若文件较大(>20MB),建议使用 url 形式传入并在 source.type 中标注 url。
JavaScript 示例
javascript
fetch('https://api.gpt.ge/v1/messages', {
method: 'POST',
headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer sk-xxxx' },
body: JSON.stringify({
model: 'claude-3-5-sonnet-20240620',
messages: [{ role: 'user', content: [{ type: 'text', text: '请总结这份 PDF' }, { type: 'document', source: { type: 'base64', data: 'JVBERi0x...' } }] }]
})
}).then(r => r.json()).then(console.log)返回示例(200)
json
{
"id": "resp-claude-1234",
"type": "message",
"role": "assistant",
"content": [ { "type": "text", "text": "PDF 要点:..." } ],
"model": "claude-3-5-sonnet-20240620",
"stop_reason": "stop",
"usage": { "input_tokens": 120, "output_tokens": 430 }
}