OpenAI Compatible API Accepts the OpenAI Chat Completions request format and preserves the matching response, SSE, and error structures. Recommended for projects using the OpenAI SDK and for most new projects — existing OpenAI SDK code migrates by changing only the base URL and API key.
POST /api/v1/chat/completions
OpenAI Chat Completions
OpenAI Chat Completions 兼容入口,额外字段按模型能力透传。
🔑 Bearer API Key Use the Authorization: Bearer sk_live_... header; x-api-key is also supported.
🧩 Confirm the model call name first First filter models that support this endpoint format on the Models page, then open a model detail page to copy its call name. Your account's final availability also depends on organization permissions. Request structure The section below confirms the method, URL and authentication scheme. It is an HTTP structure snippet, not a standalone runnable example.
POST https://www.silvamux.com/api/v1/chat/completions
Authorization: Bearer $SILVAMUX_API_KEY
Content-Type: application/jsonRequest body application/json · OpenAIChatRequest · Required
Field Type Required Description max_tokensinteger No 生成的最大 token 数;达到限制时输出可能被截断。 messagesarray<Message> Yes 对话消息列表(按时间顺序,至少一条),提供完整上下文。 messages.contentstring | array<ContentPart> Yes 消息内容:纯文本字符串或多模态分段数组(图片 / 音频)。不能只包含 system 或 assistant 消息。 messages.namestring No 参与者名称(可选)。 messages.rolestring (system | user | assistant | tool) Yes 消息角色:system 设定行为与人设,user 用户输入,assistant 模型回复,tool 工具执行结果。 messages.tool_call_idstring No role=tool 时对应的工具调用 ID。 messages.tool_callsarray<ToolCall> No 模型发起的工具调用(出现在 assistant 历史消息中)。 messages.tool_calls.functionobject Yes — messages.tool_calls.function.argumentsstring Yes JSON 编码的函数参数。 messages.tool_calls.function.namestring Yes 函数名。 messages.tool_calls.idstring Yes 工具调用 ID。 messages.tool_calls.typestring (function) Yes — modelstring Yes SilvaMux 模型调用名(id 或 alias)。从模型广场模型详情页复制;账号最终可用范围还受组织权限影响。 response_formatobject No 输出格式:text(默认,普通文本)或 json_object(JSON 模式)。 response_format.typestring (text | json_object) No — stopstring | array<string> No 停止词:生成文本出现这些字符串时立即停止,最多 4 个。 streamboolean No 是否启用流式输出(SSE)。false:完整生成后一次性返回;true:实时返回生成内容,结束时以 data: [DONE] 标记(客户端不应仅依赖该标记判断完成)。;Default: false temperaturenumber No 采样温度,控制输出随机性:值越高越发散,越低越稳定。建议只调整 temperature 或 top_p 之一。 tool_choicestring (auto | none) | object No 工具选择策略:auto(默认,模型自行决定)/ none(禁用)/ 指定函数对象。 toolsarray<Tool> No 可供模型调用的函数定义列表(Function Calling)。 tools.functionobject Yes — tools.function.descriptionstring No 函数用途描述,帮助模型决定是否调用。 tools.function.namestring Yes 函数名。 tools.function.parametersobject No 函数参数的 JSON Schema。 tools.typestring (function) Yes — top_pnumber No 核采样参数,temperature 的替代方案。 userstring No 终端用户标识符,用于滥用检测。
Response 200OpenAI Chat JSON 或 SSE 响应。 application/json · OpenAIChatResponse
Field Type Description choicesarray<OpenAIChatChoice> 候选响应列表。 choices.finish_reasonstring (stop | length | tool_calls | content_filter) 结束原因:stop 自然结束;length 达到 max_tokens;tool_calls 需执行工具;content_filter 触发内容过滤。 choices.indexinteger 候选序号。 choices.messageobject 助手消息。 choices.message.contentstring 生成的文本内容;仅工具调用时可为空。 choices.message.reasoning_contentstring 思考过程内容(支持思考模式的模型返回)。 choices.message.rolestring (assistant | tool) — choices.message.tool_callsarray<ToolCall> 模型发起的工具调用。 choices.message.tool_calls.functionobject — choices.message.tool_calls.idstring 工具调用 ID。 choices.message.tool_calls.typestring (function) — createdinteger 创建时间(Unix 秒)。 idstring 请求 ID。 modelstring 实际使用的模型名。 objectstring 对象类型(如 chat.completion)。 usageUsage Token 用量统计;兼容入口可能透传厂商扩展字段。 usage.completion_tokensinteger 输出 token 数。 usage.prompt_tokensinteger 输入 token 数。 usage.total_tokensinteger 总 token 数。
defaultOpenAI 兼容错误。 application/json · OpenAIError
Field Type Description errorobject — error.codestring | integer — error.messagestring — error.typestring —
curl https://www.silvamux.com/api/v1/chat/completions \
-H "Authorization: Bearer $SILVAMUX_API_KEY " \
-H "Content-Type: application/json" \
-d '{
"model": "minimax-m2.5",
"messages": [
{"role": "system", "content": "You are a helpful assistant"},
{"role": "user", "content": "Hello"}
],
"stream": false
}'
# pip install openai
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["SILVAMUX_API_KEY"],
base_url="https://www.silvamux.com/api/v1",
)
response = client.chat.completions.create(
model="minimax-m2.5",
messages=[
{"role": "system", "content": "You are a helpful assistant"},
{"role": "user", "content": "Hello"},
],
)
print(response.choices[0].message.content)
// npm install openai
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.SILVAMUX_API_KEY,
baseURL: "https://www.silvamux.com/api/v1",
});
const response = await client.chat.completions.create({
model: "minimax-m2.5",
messages: [
{ role: "system", content: "You are a helpful assistant" },
{ role: "user", content: "Hello" },
],
});
console.log(response.choices[0].message.content);
// Standard library only
package main
import (
"bytes"
"fmt"
"io"
"net/http"
"os"
)
func main() {
payload := []byte(`{
"model": "minimax-m2.5",
"messages": [
{"role": "system", "content": "You are a helpful assistant"},
{"role": "user", "content": "Hello"}
],
"stream": false
}`)
req, err := http.NewRequest("POST", "https://www.silvamux.com/api/v1/chat/completions", bytes.NewReader(payload))
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer "+os.Getenv("SILVAMUX_API_KEY"))
req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
cURL Python JavaScript Go
Response (OpenAI format):
{
"id" : "chatcmpl-xxxx" ,
"choices" : [
{
"message" : { "role" : "assistant" , "content" : "Hello! How can I help you today?" },
"finish_reason" : "stop"
}
],
"usage" : { "prompt_tokens" : 20 , "completion_tokens" : 15 , "total_tokens" : 35 }
}
The compatible entry passes through extra fields of the corresponding protocol. See Overview for streaming and multimodal input.