聊天接口(图片分析)
简洁描述:接受图像与文本混合输入的聊天接口,适用于需要图像理解或图文问答的模型。模型必须支持图片分析(如
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 参数说明
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| model | string | 是 | 模型名称,必须支持图片分析,例如 gpt-4o |
| messages | array<object> | 是 | 聊天消息数组;每项包含 role 与 content,content 可为文本或图片引用 |
| temperature | number | 否 | 采样温度,0-2 之间 |
| top_p | number | 否 | 核采样概率阈值,0-1 |
| stream | boolean | 否 | 是否流式返回 |
| max_tokens | number | 否 | 最大生成 tokens 数(示例默认 300) |
| n | number | 否 | 生成候选完成数 |
| presence_penalty | number | 否 | 新主题惩罚系数 (-2.0 ~ 2.0) |
| frequency_penalty | number | 否 | 重复惩罚系数 (-2.0 ~ 2.0) |
| logit_bias | object | 否 | 指定 token 的 logits 偏置 |
| user | string | 否 | 终端用户标识 |
| stop | string 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"
}