Skip to content

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(推荐)。

请求参数说明(常用)

参数类型必填说明
modelstring模型名称,例如 gemini-2.5-progemini-2.5-flash-search
messagesarrayOpenAI 格式的消息数组,content 支持多种子项(文本/文件/url)
temperaturenumber采样温度,0-2
top_pnumber核采样阈值
max_tokensnumber最大生成 tokens
streamboolean是否流式返回
toolsarray函数调用工具定义,格式与 OpenAI 类似
extra_body / thinking_configobject高级参数(思考控制、思维预算等,见示例)
response_formatobject结构化输出定义

说明:当模型名称包含 -thinkingthinking-* 后缀时,表示启用了“思考”能力,可配合 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_urlimage_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 }
}