Skip to content

聊天接口(图片分析)

简洁描述:接受图像与文本混合输入的聊天接口,适用于需要图像理解或图文问答的模型。模型必须支持图片分析(如 gpt-4o 等多模态模型)。


概览

  • 请求方法:POST
  • 路径:/v1/chat/completions
  • 内容类型:application/json

认证方式

支持常见的 Header 认证格式:

  • OpenAI:Authorization: Bearer sk-xxx
  • Anthropic:x-api-key: sk-xxx(并可能需要 anthropic-version
  • Google:x-goog-api-key: sk-xxx

请求示例

Body 参数说明

参数类型必填描述
modelstring模型名称,必须支持图片分析,例如 gpt-4o
messagesarray<object>聊天消息数组;每项包含 rolecontentcontent 可为文本或图片引用
temperaturenumber采样温度,0-2 之间
top_pnumber核采样概率阈值,0-1
streamboolean是否流式返回
max_tokensnumber最大生成 tokens 数(示例默认 300)
nnumber生成候选完成数
presence_penaltynumber新主题惩罚系数 (-2.0 ~ 2.0)
frequency_penaltynumber重复惩罚系数 (-2.0 ~ 2.0)
logit_biasobject指定 token 的 logits 偏置
userstring终端用户标识
stopstring or array停止词

关于 messages 中的 content

  • 文本消息示例:{ "type": "text", "text": "这是什么?" }
  • 图片引用示例:{ "type": "image_url", "image_url": { "url": "https://example.com/img.jpg" } }。 支持 data: 开头的 base64 URL 或网络 URL。

curl 示例

bash
curl -X POST "https://api.gpt.ge/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xxxx" \
  -d '{
    "model": "gpt-4o",
    "messages": [
      {"role":"user","content":[{"type":"text","text":"这是什么?"}]},
      {"role":"user","content":[{"type":"image_url","image_url":{"url":"data:image/jpeg;base64,...(base64省略)..."}}]}
    ],
    "max_tokens": 300,
    "temperature": 0.5
  }'

JavaScript (fetch) 示例

javascript
fetch('https://api.gpt.ge/v1/chat/completions', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer sk-xxxx'
  },
  body: JSON.stringify({
    model: 'gpt-4o',
    messages: [
      { role: 'user', content: [{ type: 'text', text: '这是什么?' }] },
      { role: 'user', content: [{ type: 'image_url', image_url: { url: 'https://example.com/img.jpg' } }] }
    ],
    max_tokens: 300,
    temperature: 0.5
  })
}).then(r => r.json()).then(console.log)

Python 示例(requests)

python
import requests

payload = {
  'model': 'gpt-4o',
  'messages': [
    {'role': 'user', 'content': [{'type': 'text', 'text': '这是什么?'}]},
    {'role': 'user', 'content': [{'type': 'image_url', 'image_url': {'url': 'https://example.com/img.jpg'}}]}
  ],
  'max_tokens': 300,
  'temperature': 0.5
}

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": "chatcmpl-A7ETdn5hnbTjpw9dtRifjMFZYcdFW",
  "object": "chat.completion",
  "created": 1726287309,
  "model": "gpt-4o-2024-05-13",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "这是一张卡通风格的老人头像图像。这个角色有着白色的头发和胡须,脸上带着灿烂的笑容,穿着蓝色的衣服。",
        "refusal": null
      },
      "logprobs": null,
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 265,
    "completion_tokens": 46,
    "total_tokens": 311,
    "completion_tokens_details": { "reasoning_tokens": 0 }
  },
  "system_fingerprint": "fp_992d1ea92d"
}