/v1/chat/completions/v1/messages/v1/responses/v1beta/models/*/v1/models/*OpenAI o3-mini是OpenAI推出的小型推理模型,在保持与o1-mini 相同的成本与延迟水平下,提供了更高的智能表现。该模型专为复杂推理任务优化,特别适用于科学、数学与编程等领域。同时,o3-mini支持结构化输出、函数调用、Batch API等关键开发功能,为构建高效智能应用提供了强大支持。
- 输入 / 输出模态
- 文本 至 文本
- 参考输入 / 输出价格
- 输入¥7.7输出¥30.8每百万 Token
- 上下文长度
- 200K
- 收录时间
- 2025年4月15日
供应通道与价格
| 供应通道 | 输入 /M | 输出 /M | 缓存读取 /M | 上下文 | 最大输出 | 详情 |
|---|---|---|---|---|---|---|
| OpenRouter | ¥7.7 | ¥30.8 | ¥3.85 | 200K | 100K | |
| Azure | ¥7.7 | ¥30.8 | ¥3.85 | 200K | 100K |
o3-mini 的示例代码与 API 说明
Modelmesh 会帮你在不同服务提供商之间规范化处理请求和响应,为你统一接口。
Modelmesh 提供了兼容 OpenAI 的 Completion API,可连接 300 多款模型与服务提供商,既可直接调用,也可通过 OpenAI SDK 调用。此外,还提供了一些第三方 SDK。
在以下示例中,Modelmesh 专用的请求头属于可选项。若你配置了这些请求头,你的应用就能出现在 Modelmesh 的排行榜上。
支持的接口点击接口可切换下方示例
/v1/chat/completions
from openai import OpenAI
API_KEY = "$SSY_API_KEY"
client = OpenAI(
base_url="https://router.shengsuanyun.com/api/v1",
api_key=API_KEY,
)
try:
completion = client.chat.completions.create(
model="openai/o3-mini",
messages=[{"role": "user", "content": "9.11 和 9.8 哪个数更大?"}],
temperature=0.6,
top_p=0.7,
stream=True,
)
response_text = ""
for chunk in completion:
if chunk.choices and chunk.choices[0].delta.content is not None:
content = chunk.choices[0].delta.content
print(content, end="", flush=True)
response_text += content
except Exception as error:
print(f"Request failed: {error}")
import OpenAI from "openai";
const apiKey = "$SSY_API_KEY";
const openai = new OpenAI({
baseURL: "https://router.shengsuanyun.com/api/v1",
apiKey,
});
async function main() {
try {
const stream = await openai.chat.completions.create({
model: "openai/o3-mini",
messages: [{ role: "user", content: "9.11 和 9.8 哪个数更大?" }],
temperature: 0.6,
top_p: 0.7,
stream: true,
});
for await (const chunk of stream) {
const content = chunk.choices[0]?.delta?.content;
if (content) process.stdout.write(content);
}
console.log("\n[chat complete]");
} catch (error) {
const message = error instanceof Error ? error.message : String(error);
console.error("Request failed:", message);
process.exitCode = 1;
}
}
main();
#!/usr/bin/env bash
set -euo pipefail
API_KEY="$SSY_API_KEY"
BASE_URL="https://router.shengsuanyun.com/api/v1/chat/completions"
MODEL='openai/o3-mini'
curl --fail-with-body --silent --show-error --no-buffer -X POST "${BASE_URL}" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${API_KEY}" \
-d '{
"model": "'"${MODEL}"'",
"messages": [{"role": "user", "content": "9.11 和 9.8 哪个数更大?"}],
"temperature": 0.6,
"top_p": 0.7,
"stream": true
}'
printf '\n[chat complete]\n'
import requests
API_KEY = "$SSY_API_KEY"
url = "https://router.shengsuanyun.com/api/v1/messages"
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
}
payload = {
"model": "openai/o3-mini",
"messages": [{"role": "user", "content": "你好"}],
}
response = requests.post(url, headers=headers, json=payload, timeout=30)
response.raise_for_status()
print(response.json())
const apiKey = "$SSY_API_KEY";
async function main() {
const response = await fetch("https://router.shengsuanyun.com/api/v1/messages", {
method: "POST",
headers: {
Authorization: "Bearer " + apiKey,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "openai/o3-mini",
messages: [{ role: "user", content: "你好" }],
}),
});
if (!response.ok) {
const text = await response.text();
throw new Error(`Request failed with status ${response.status}: ${text}`);
}
console.log(await response.json());
}
main().catch((error) => {
const message = error instanceof Error ? error.message : String(error);
console.error("Request failed:", message);
});
#!/usr/bin/env bash
set -euo pipefail
API_KEY="$SSY_API_KEY"
BASE_URL="https://router.shengsuanyun.com/api/v1/messages"
MODEL='openai/o3-mini'
curl --fail-with-body --silent --show-error -X POST "${BASE_URL}" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${API_KEY}" \
-d '{
"model": "'"${MODEL}"'",
"messages": [{"role": "user", "content": "你好"}]
}'
from openai import OpenAI
API_KEY = "$SSY_API_KEY"
client = OpenAI(
base_url="https://router.shengsuanyun.com/api/v1",
api_key=API_KEY,
)
messages = [
{"role": "user", "content": "用100字如何描述《三国演义》。"},
]
response = client.responses.create(
model="openai/o3-mini",
input=messages,
)
print(response.output_text)
import OpenAI from "openai";
const apiKey = "$SSY_API_KEY";
const client = new OpenAI({
baseURL: "https://router.shengsuanyun.com/api/v1",
apiKey,
});
async function main() {
const messages = [
{ role: "user", content: "用100字如何描述《三国演义》。" },
];
const response = await client.responses.create({
model: "openai/o3-mini",
input: messages,
});
console.log(response.output_text);
}
main().catch((error) => {
const message = error instanceof Error ? error.message : String(error);
console.error("Request failed:", message);
});
#!/usr/bin/env bash
set -euo pipefail
API_KEY="$SSY_API_KEY"
MODEL='openai/o3-mini'
BASE_URL="https://router.shengsuanyun.com/api/v1/responses"
curl --fail-with-body --silent --show-error -X POST "${BASE_URL}" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${API_KEY}" \
-d '{
"model": "'"${MODEL}"'",
"input": [
{
"role": "user",
"content": "用100字如何描述《三国演义》。"
}
]
}' | python3 -c 'import json,sys
data=json.load(sys.stdin)
text=data.get("output_text") or "".join(
part.get("text", "")
for item in data.get("output", [])
for part in item.get("content", [])
if part.get("type") == "output_text"
)
print(text)'
import requests
API_KEY = "$SSY_API_KEY"
MODEL = "openai/o3-mini"
URL = f"https://router.shengsuanyun.com/api/v1beta/models/{MODEL}:generateContent"
messages = [
{"role": "user", "content": "9.11 和 9.8 哪个数更大?"}
]
payload = {
"contents": [
{
"role": message["role"],
"parts": [{"text": message["content"]}],
}
for message in messages
],
"generationConfig": {
"temperature": 0.6,
"topP": 0.7,
"maxOutputTokens": 1024,
},
}
headers = {
"Content-Type": "application/json",
# This endpoint uses API-key auth, not Bearer auth.
"x-goog-api-key": API_KEY,
}
# Gemini-style generateContent uses contents, so messages are mapped into contents.
response = requests.post(URL, headers=headers, json=payload, timeout=30)
response.raise_for_status()
data = response.json()
candidates = data.get("candidates") or [{}]
parts = (candidates[0].get("content") or {}).get("parts") or []
print("".join(part.get("text", "") for part in parts))
const API_KEY = "$SSY_API_KEY";
const MODEL = "openai/o3-mini";
const url = `https://router.shengsuanyun.com/api/v1beta/models/${MODEL}:generateContent`;
const messages = [
{ role: "user", content: "9.11 和 9.8 哪个数更大?" },
];
async function main() {
const response = await fetch(url, {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-goog-api-key": API_KEY,
},
body: JSON.stringify({
contents: messages.map((message) => ({
role: message.role,
parts: [{ text: message.content }],
})),
generationConfig: {
temperature: 0.6,
topP: 0.7,
maxOutputTokens: 1024,
},
}),
});
if (!response.ok) {
const text = await response.text();
throw new Error(`Request failed with status ${response.status}: ${text}`);
}
const data = await response.json();
const text = (data.candidates?.[0]?.content?.parts ?? [])
.map((part) => part.text ?? "")
.join("");
console.log(text);
}
main().catch((error) => {
const message = error instanceof Error ? error.message : String(error);
console.error("Request failed:", message);
});
#!/usr/bin/env bash
set -euo pipefail
API_KEY="$SSY_API_KEY"
MODEL='openai/o3-mini'
BASE_URL="https://router.shengsuanyun.com/api/v1beta/models/${MODEL}:generateContent"
# This endpoint uses API-key auth, not Bearer auth.
curl --fail-with-body --silent --show-error -X POST "${BASE_URL}" \
-H "Content-Type: application/json" \
-H "x-goog-api-key: ${API_KEY}" \
-d '{
"contents": [
{
"role": "user",
"parts": [{"text": "9.11 和 9.8 哪个数更大?"}]
}
],
"generationConfig": {
"temperature": 0.6,
"topP": 0.7,
"maxOutputTokens": 1024
}
}' | python3 -c 'import json,sys
data=json.load(sys.stdin)
candidates=data.get("candidates") or [{}]
parts=(candidates[0].get("content") or {}).get("parts") or []
print("".join(part.get("text", "") for part in parts))'
import requests
API_KEY = "$SSY_API_KEY"
MODEL = "openai/o3-mini"
URL = f"https://router.shengsuanyun.com/api/v1/models/{MODEL}:generateContent"
messages = [
{"role": "user", "content": "9.11 和 9.8 哪个数更大?"}
]
payload = {
"contents": [
{
"role": message["role"],
"parts": [{"text": message["content"]}],
}
for message in messages
],
"generationConfig": {
"temperature": 0.6,
"topP": 0.7,
"maxOutputTokens": 1024,
},
}
headers = {
"Content-Type": "application/json",
# This endpoint uses API-key auth, not Bearer auth.
"x-goog-api-key": API_KEY,
}
# Gemini-style generateContent uses contents, so messages are mapped into contents.
response = requests.post(URL, headers=headers, json=payload, timeout=30)
response.raise_for_status()
data = response.json()
candidates = data.get("candidates") or [{}]
parts = (candidates[0].get("content") or {}).get("parts") or []
print("".join(part.get("text", "") for part in parts))
const API_KEY = "$SSY_API_KEY";
const MODEL = "openai/o3-mini";
const url = `https://router.shengsuanyun.com/api/v1/models/${MODEL}:generateContent`;
const messages = [
{ role: "user", content: "9.11 和 9.8 哪个数更大?" },
];
async function main() {
const response = await fetch(url, {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-goog-api-key": API_KEY,
},
body: JSON.stringify({
contents: messages.map((message) => ({
role: message.role,
parts: [{ text: message.content }],
})),
generationConfig: {
temperature: 0.6,
topP: 0.7,
maxOutputTokens: 1024,
},
}),
});
if (!response.ok) {
const text = await response.text();
throw new Error(`Request failed with status ${response.status}: ${text}`);
}
const data = await response.json();
const text = (data.candidates?.[0]?.content?.parts ?? [])
.map((part) => part.text ?? "")
.join("");
console.log(text);
}
main().catch((error) => {
const message = error instanceof Error ? error.message : String(error);
console.error("Request failed:", message);
});
#!/usr/bin/env bash
set -euo pipefail
API_KEY="$SSY_API_KEY"
MODEL='openai/o3-mini'
BASE_URL="https://router.shengsuanyun.com/api/v1/models/${MODEL}:generateContent"
# This endpoint uses API-key auth, not Bearer auth.
curl --fail-with-body --silent --show-error -X POST "${BASE_URL}" \
-H "Content-Type: application/json" \
-H "x-goog-api-key: ${API_KEY}" \
-d '{
"contents": [
{
"role": "user",
"parts": [{"text": "9.11 和 9.8 哪个数更大?"}]
}
],
"generationConfig": {
"temperature": 0.6,
"topP": 0.7,
"maxOutputTokens": 1024
}
}' | python3 -c 'import json,sys
data=json.load(sys.stdin)
candidates=data.get("candidates") or [{}]
parts=(candidates[0].get("content") or {}).get("parts") or []
print("".join(part.get("text", "") for part in parts))'
- 公开应用
- 7