按模型家族选择调用路由
星模XModel 对外提供统一 API 网关,但不是所有模型都使用 Chat Completions。Chat、图像、语音、Embedding、Rerank、Realtime 都有各自的公开路由;写代码前先按模型页的 endpoint kind 选择调用方式。
Python
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://modelxing.com/v1"
)
resp = client.chat.completions.create(
model="qwen/qwen3-max",
messages=[{"role": "user", "content": "Hello from 星模XModel"}]
)
print(resp.choices[0].message.content)Node
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.NEXTMODEL_API_KEY,
baseURL: "https://modelxing.com/v1",
});
const response = await client.chat.completions.create({
model: "qwen/qwen3-max",
messages: [{ role: "user", content: "Hello from 星模XModel" }],
});
console.log(response.choices[0].message.content);curl
curl https://modelxing.com/v1/chat/completions \
-H "Authorization: Bearer $NEXTMODEL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen/qwen3-max",
"messages": [{"role": "user", "content": "Hello from 星模XModel"}]
}'按家族查看调用形态
公开示例必须使用对应模型家族的路由。视频生成、图生视频、语音驱动视频模型当前没有公开网关路由;如果出现在目录里,只能用于选型和规划,不能渲染 Chat 示例。
Chat
from openai import OpenAI
client = OpenAI(api_key="YOUR_API_KEY", base_url="https://modelxing.com/v1")
resp = client.chat.completions.create(
model="qwen/qwen3-max",
messages=[{"role": "user", "content": "Hello from XModel"}],
)
print(resp.choices[0].message.content)图像生成
from openai import OpenAI
client = OpenAI(api_key="YOUR_API_KEY", base_url="https://modelxing.com/v1")
resp = client.images.generate(
model="qwen-image-max",
prompt="A minimal blue circle icon on a white background",
size="1024x1024",
n=1,
)
print(resp)语音合成
import time
import requests
resp = requests.post(
"https://modelxing.com/v1/audio/speech",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={"model": "qwen3-tts-instruct-flash", "voice": "Cherry", "input": "Hello from XModel", "response_format": "wav"},
)
if resp.status_code == 200:
# Short text — audio returned directly
with open("output.wav", "wb") as f:
f.write(resp.content)
else:
# Long text — job submitted (202), poll until done
job_id = resp.json()["id"]
while True:
poll = requests.get(
f"https://modelxing.com/v1/audio/speech/jobs/{job_id}",
headers={"Authorization": "Bearer YOUR_API_KEY"},
).json()
if poll["status"] == "succeeded":
print("Audio ready:", poll["audio"]["url"])
break
elif poll["status"] == "failed":
print("Job failed:", poll["error"])
break
time.sleep(3)语音识别
curl https://modelxing.com/v1/audio/transcriptions \
-H "Authorization: Bearer $NEXTMODEL_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"paraformer-v2","file_url":"https://example.com/audio.wav"}'Embedding
from openai import OpenAI
client = OpenAI(api_key="YOUR_API_KEY", base_url="https://modelxing.com/v1")
resp = client.embeddings.create(
model="text-embedding-v4",
input=["Hello from XModel"],
)
print(resp.data[0].embedding[:8])Rerank
curl https://modelxing.com/v1/rerank \
-H "Authorization: Bearer $NEXTMODEL_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"qwen3-vl-rerank","query":"best GPU for inference","documents":["A fast GPU document","A storage document"],"top_n":2}'Realtime
curl https://modelxing.com/v1/realtime \
-H "Authorization: Bearer $NEXTMODEL_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"qwen3.5-omni-plus-realtime","modalities":["text"]}'| chat_text / omni_http_chat | /v1/chat/completions |
| image_generation / wan_image_generation_async | /v1/images/generations |
| image_edit / wan_image_edit_async / image_translate_async | /v1/images/edits |
| tts_http | /v1/audio/speech |
| asr_openai_audio / asr_filetrans_async / fun_asr_filetrans_async | /v1/audio/transcriptions |
| embedding_text_native / embedding_multimodal_native | /v1/embeddings |
| rerank_native | /v1/rerank |
| websocket_realtime / websocket_asr_realtime | /v1/realtime |
| video_generation_async / image_to_video_async / speech_to_video_async | 暂未开放公开调用 |
迁移时改什么
家族支持 OpenAI SDK 方法时,可以保留 SDK 并替换服务地址和密钥;Rerank、Realtime 会话、语音资产等原生公开路由需要直接请求对应路径。提供方密钥、路由和计费配置由平台管理。
| base_url | https://modelxing.com/v1 |
| chat endpoint | /chat/completions |
| 非 Chat 路由 | /images/*、/audio/*、/embeddings、/rerank、/realtime |
| auth | Authorization: Bearer $NEXTMODEL_API_KEY |
| model | 使用模型目录中的 ID,例如 qwen/qwen3-max |