Gemini (OpenAI 格式) — 可文件分析
简洁描述:兼容 OpenAI 风格的参数结构,支持文本与多种文件(PDF/图片/音视频/文本等)混合输入,用于文档解析、摘要、问答等场景。
概览
- 请求方法:
POST - 路径:
/v1/chat/completions - 内容类型:
application/json
支持的文件类型(示例)
- .pdf, .mp3, .mp4, .wav, .png, .jpg, .jpeg, .txt, .mov, .mpeg, .mpg, .avi, .wmv, .flv
认证方式
- 使用
Authorization: Bearer sk-xxx(推荐)。
请求参数说明(常用)
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| model | string | 是 | 模型名称,例如 gemini-2.5-pro 或 gemini-2.5-flash-search |
| messages | array | 是 | OpenAI 格式的消息数组,content 支持多种子项(文本/文件/url) |
| temperature | number | 否 | 采样温度,0-2 |
| top_p | number | 否 | 核采样阈值 |
| max_tokens | number | 否 | 最大生成 tokens |
| stream | boolean | 否 | 是否流式返回 |
| tools | array | 否 | 函数调用工具定义,格式与 OpenAI 类似 |
| extra_body / thinking_config | object | 否 | 高级参数(思考控制、思维预算等,见示例) |
| response_format | object | 否 | 结构化输出定义 |
说明:当模型名称包含 -thinking 或 thinking-* 后缀时,表示启用了“思考”能力,可配合 thinking_config 使用。
示例
文本聊天示例(curl)
bash
curl -X POST "https://api.gpt.ge/v1/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-xxxx" \
-d '{
"model": "gemini-2.5-pro",
"messages": [ { "role": "user", "content": [ { "type": "text", "text": "你好,你是?" } ] } ],
"max_tokens": 1688,
"temperature": 0.5,
"stream": false
}'文件分析示例(curl,base64 data URI)
bash
curl -X POST "https://api.gpt.ge/v1/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-xxxx" \
-d '{
"model": "gemini-2.5-pro",
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "总结一下文档内容" },
{ "type": "file", "file": { "filename": "api-doc.pdf", "file_data": "data:application/pdf;base64,JVBERi0xLjQKJ..." } }
]
}
],
"max_tokens": 6000,
"stream": false
}'说明:若文件 >20MB 建议使用 file_url 或 image_url 形式传入网络地址。
JavaScript 示例
javascript
fetch('https://api.gpt.ge/v1/chat/completions', {
method: 'POST',
headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer sk-xxxx' },
body: JSON.stringify({
model: 'gemini-2.5-pro',
messages: [{ role: 'user', content: [{ type: 'text', text: '请总结附件' }, { type: 'file', file: { filename: 'doc.pdf', file_data: 'data:application/pdf;base64,JVBERi0x...' } }] }]
})
}).then(r => r.json()).then(console.log)Python 示例
python
import requests
payload = {
'model': 'gemini-2.5-pro',
'messages': [ { 'role': 'user', 'content': [ { 'type': 'text', 'text': '请总结附件' } ] } ]
}
resp = requests.post('https://api.gpt.ge/v1/chat/completions', headers={'Content-Type':'application/json','Authorization':'Bearer sk-xxxx'}, json=payload)
print(resp.json())返回示例(200)
json
{
"id": "resp-12345",
"object": "chat.completion",
"created": 1725014307,
"choices": [
{
"index": 0,
"message": { "role": "assistant", "content": "文档要点:..." },
"finish_reason": "stop"
}
],
"usage": { "prompt_tokens": 10, "completion_tokens": 200, "total_tokens": 210 }
}