图像识别
使用多模态模型识别图片内容,并返回文字描述/回答。
本接口与 Chat Completions 兼容,使用同一个 endpoint:
POST /v1/chat/completions。
Try It
POST
/v1/chat/completionshttps://api-platform.ope.ai认证
使用 Bearer Token 认证。
- Header:
Authorization: Bearer <token> - 示例:
Authorization: Bearer sk-xxxxxx
请求体(application/json)
| 字段 | 类型 | 必填 | 说明 | 默认值 / 范围 |
|---|---|---|---|---|
model | string | 是 | 模型 ID(多模态/视觉模型) | 例如:Image-Recognition |
messages | array<object> | 是 | 对话消息列表(支持图文混合 content) | - |
max_tokens | integer | 否 | 最大输出 token | - |
temperature | number | 否 | 采样温度 | 默认 1;范围 0~2 |
top_p | number | 否 | 核采样参数 | 默认 1;范围 0~1 |
top_k | integer | 否 | Top-K 采样参数 | - |
frequency_penalty | number | 否 | 频率惩罚 | 默认 0;范围 -2~2 |
messages.content(图文混合)
messages[].content 支持数组形式,常见两种 item:
- 图片:
{"type":"image_url","image_url":{"url":"data:image/jpeg;base64,<BASE64_IMAGE>"}}
- 文本:
{"type":"text","text":"这是什么?"}
image_url.url既可以是网络图片 URL,也可以是 Data URL(如data:image/jpeg;base64,...)。
请求示例
下方域名为示例:
https://api-platform.ope.ai。
- cURL
- JavaScript
- Go
- Python
- Java
- C#
curl -X POST "https://api-platform.ope.ai/v1/chat/completions" \
-H "Authorization: Bearer $OPEAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "Image-Recognition",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABA...(省略)"
}
},
{ "type": "text", "text": "这是什 么?" }
]
}
]
}'
const url = "https://api-platform.ope.ai/v1/chat/completions";
const apiKey = process.env.OPEAI_API_KEY;
const res = await fetch(url, {
method: "POST",
headers: {
Authorization: `Bearer ${apiKey}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "Image-Recognition",
max_tokens: 1024,
messages: [
{
role: "user",
content: [
{
type: "image_url",
image_url: { url: "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABA...(省略)" },
},
{ type: "text", text: "这是什么?" },
],
},
],
}),
});
console.log(res.status);
console.log(await res.text());
package main
import (
"bytes"
"io"
"net/http"
"os"
)
func main() {
url := "https://api-platform.ope.ai/v1/chat/completions"
body := []byte(`{
"model": "Image-Recognition",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": { "url": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABA...(省略)" }
},
{ "type": "text", "text": "这是什么?" }
]
}
]
}`)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(body))
req.Header.Set("Authorization", "Bearer "+os.Getenv("OPEAI_API_KEY"))
req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
b, _ := io.ReadAll(resp.Body)
println(string(b))
}
import os
import requests
resp = requests.post(
"https://api-platform.ope.ai/v1/chat/completions",
headers={
"Authorization": f"Bearer {os.environ.get('OPEAI_API_KEY')}",
"Content-Type": "application/json",
},
json={
"model": "Image-Recognition",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABA...(省略)"}},
{"type": "text", "text": "这是什么?"},
],
}
],
},
timeout=60,
)
print(resp.status_code)
print(resp.text)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
String apiKey = System.getenv("OPEAI_API_KEY");
String url = "https://api-platform.ope.ai/v1/chat/completions";
String json = """
{
"model": "Image-Recognition",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": { "url": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABA...(省略)" }
},
{ "type": "text", "text": "这是什么?" }
]
}
]
}
""";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer " + apiKey)
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(json))
.build();
HttpClient client = HttpClient.newHttpClient();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
public class Program
{
public static async Task Main()
{
var apiKey = Environment.GetEnvironmentVariable("OPEAI_API_KEY");
var url = "https://api-platform.ope.ai/v1/chat/completions";
var json = """
{
"model": "Image-Recognition",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{ "type": "image_url", "image_url": { "url": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABA...(省略)" } },
{ "type": "text", "text": "这是什么?" }
]
}
]
}
""";
using var http = new HttpClient();
http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
var content = new StringContent(json, Encoding.UTF8, "application/json");
var resp = await http.PostAsync(url, content);
Console.WriteLine((int)resp.StatusCode);
Console.WriteLine(await resp.Content.ReadAsStringAsync());
}
}
响应示例
- 200
- 400
- 429
{
"id": "string",
"object": "chat.completion",
"created": 0,
"model": "string",
"choices": [
{
"index": 0,
"message": {
"role": "system",
"content": "string",
"name": "string",
"tool_calls": [
{
"id": "string",
"type": "function",
"function": { "name": "string", "arguments": "string" }
}
],
"tool_call_id": "string",
"reasoning_content": "string"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 0,
"completion_tokens": 0,
"total_tokens": 0,
"prompt_tokens_details": {
"cached_tokens": 0,
"text_tokens": 0,
"audio_tokens": 0,
"image_tokens": 0
},
"completion_tokens_details": {
"text_tokens": 0,
"audio_tokens": 0,
"reasoning_tokens": 0
}
},
"system_fingerprint": "string"
}
{
"error": { "message": "string", "type": "string", "param": "string", "code": "string" }
}
{
"error": { "message": "string", "type": "string", "param": "string", "code": "string" }
}