文本模型
启元 3.6 Flash
qiyuan
雾韵社区自研的文本模型,主打快。日常对话、写作、代码补全、摘要改写,首字常在 1 秒内返回。
- 接口
- /v1/chat/completions
- 调用
- 同步 / 流式
启元 3.6 分 Flash 与 Pro 两档;万象一个 id 同时管图片与视频
雾韵社区自研的文本模型,主打快。日常对话、写作、代码补全、摘要改写,首字常在 1 秒内返回。
同一系列的高性能档。复杂推理、长链路代码、多步计算与严谨论证优先选它,速度慢一些但更稳。
雾韵社区自研的多模态生成模型,一个 id 同时管生图与生视频:图片同步返回地址,视频提交任务后轮询。原「流光」已并入。
按量计费 · 余额扣减 · 失败不计费
社区账号首次登录开放平台即到账,可直接调用全部模型。
每月 1 号后到控制台点一下领取,当月有效期内可随时使用。
| 计费项 | 单价 | 说明 |
|---|---|---|
| 启元 3.6 Flash · 输入(未命中缓存) | 0.10 元 / 百万 token | 按请求的 prompt_tokens 计 |
| 启元 3.6 Flash · 输入(命中缓存) | 0.05 元 / 百万 token | 多轮对话中重复的历史前缀自动按此价 |
| 启元 3.6 Flash · 输出 | 0.50 元 / 百万 token | 含推理 token,按 completion_tokens 计 |
| 启元 3.6 Pro · 输入(未命中缓存) | 0.60 元 / 百万 token | 长上下文与复杂推理,按 prompt_tokens 计 |
| 启元 3.6 Pro · 输入(命中缓存) | 0.10 元 / 百万 token | 同一会话重复前缀自动命中 |
| 启元 3.6 Pro · 输出 | 1.00 元 / 百万 token | 含推理 token,按 completion_tokens 计 |
| 万象 · 生图 | 0.02 元 / 张 | 按实际返回的图片数量计,同步返回 |
| 万象 · 生视频 | 0.02 元 / 秒 | 同一个 wanxiang id,提交任务时按请求时长预扣,失败不计费 |
余额不足时接口返回 402 insufficient_quota;到控制台领取当月额度后立即恢复,不需要重新申请密钥。每次调用的输入、命中、输出 token 与扣费金额都能在控制台的「最近用量」里逐条查到。
示例里的 sk-wyzx-… 换成你自己的密钥;旧的 qiyuan-2.5-flash / liuguang 仍可调用
/v1/chat/completions
curl https://api.wuyunsq.top/v1/chat/completions \
-H "Authorization: Bearer $WUYUN_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qiyuan",
"messages": [{"role": "user", "content": "用三句话介绍雾韵社区"}]
}'
from openai import OpenAI
client = OpenAI(
base_url="https://api.wuyunsq.top/v1",
api_key="sk-wyzx-...",
)
r = client.chat.completions.create(
model="qiyuan",
messages=[{"role": "user", "content": "用三句话介绍雾韵社区"}],
)
print(r.choices[0].message.content)
import OpenAI from 'openai';
const client = new OpenAI({
baseURL: 'https://api.wuyunsq.top/v1',
apiKey: process.env.WUYUN_KEY,
});
const r = await client.chat.completions.create({
model: 'qiyuan',
messages: [{ role: 'user', content: '用三句话介绍雾韵社区' }],
});
console.log(r.choices[0].message.content);
/v1/chat/completions
curl https://api.wuyunsq.top/v1/chat/completions \
-H "Authorization: Bearer $WUYUN_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qiyuan-pro",
"messages": [{"role": "user", "content": "一个水池有甲乙两个进水管,甲 6 小时注满,乙 4 小时注满,同时开需要多久?"}]
}'
from openai import OpenAI
client = OpenAI(
base_url="https://api.wuyunsq.top/v1",
api_key="sk-wyzx-...",
)
r = client.chat.completions.create(
model="qiyuan-pro",
messages=[{"role": "user", "content": "一个水池有甲乙两个进水管,甲 6 小时注满,乙 4 小时注满,同时开需要多久?"}],
)
print(r.choices[0].message.content)
import OpenAI from 'openai';
const client = new OpenAI({
baseURL: 'https://api.wuyunsq.top/v1',
apiKey: process.env.WUYUN_KEY,
});
const r = await client.chat.completions.create({
model: 'qiyuan-pro',
messages: [{ role: 'user', content: '一个水池有甲乙两个进水管,甲 6 小时注满,乙 4 小时注满,同时开需要多久?' }],
});
console.log(r.choices[0].message.content);
/v1/images/generations · /v1/video/generations
# 1. 生图:同步返回图片地址
curl https://api.wuyunsq.top/v1/images/generations \
-H "Authorization: Bearer $WUYUN_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wanxiang",
"prompt": "雾中的江南小镇,青瓦白墙,清晨,胶片质感",
"size": "1024x1024"
}'
# 2. 生视频:同一个 model,换 /video/generations,提交后轮询
curl https://api.wuyunsq.top/v1/video/generations \
-H "Authorization: Bearer $WUYUN_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"wanxiang","prompt":"雾气漫过山脊,日出,镜头缓慢推进"}'
curl https://api.wuyunsq.top/v1/video/generations/{id} \
-H "Authorization: Bearer $WUYUN_KEY"
import time, requests
H = {"Authorization": "Bearer sk-wyzx-..."}
# 生图:同步
img = requests.post(
"https://api.wuyunsq.top/v1/images/generations",
headers=H,
json={"model": "wanxiang", "prompt": "雾中的江南小镇,青瓦白墙,清晨", "size": "1024x1024"},
timeout=300,
).json()
print(img["data"][0]["url"])
# 生视频:同一个 model,异步轮询
job = requests.post(
"https://api.wuyunsq.top/v1/video/generations",
headers=H,
json={"model": "wanxiang", "prompt": "雾气漫过山脊,日出,镜头缓慢推进"},
timeout=120,
).json()
while True:
r = requests.get(f"https://api.wuyunsq.top/v1/video/generations/{job['id']}", headers=H, timeout=60).json()
if r.get("url"):
print(r["url"]); break
if r.get("status") == "failed":
raise SystemExit(r.get("error"))
time.sleep(5)
const H = {
Authorization: `Bearer ${process.env.WUYUN_KEY}`,
'Content-Type': 'application/json',
};
// 生图:同步
const img = await (await fetch('https://api.wuyunsq.top/v1/images/generations', {
method: 'POST',
headers: H,
body: JSON.stringify({ model: 'wanxiang', prompt: '雾中的江南小镇,青瓦白墙,清晨', size: '1024x1024' }),
})).json();
console.log(img.data[0].url);
// 生视频:同一个 model,异步轮询
const job = await (await fetch('https://api.wuyunsq.top/v1/video/generations', {
method: 'POST',
headers: H,
body: JSON.stringify({ model: 'wanxiang', prompt: '雾气漫过山脊,日出,镜头缓慢推进' }),
})).json();
for (;;) {
const r = await (await fetch(`https://api.wuyunsq.top/v1/video/generations/${job.id}`, { headers: H })).json();
if (r.url) { console.log(r.url); break; }
if (r.status === 'failed') throw new Error(r.error?.message || 'failed');
await new Promise((s) => setTimeout(s, 5000));
}
全部走 Authorization: Bearer
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /v1/models | 列出可用模型 |
| POST | /v1/chat/completions | 文本对话,支持 stream: true 流式返回 |
| POST | /v1/images/generations | 文生图,直接返回图片地址 |
| POST | /v1/video/generations | 文生视频,提交后返回任务 id 与 poll_url |
| GET | /v1/video/generations/{id} | 查询视频任务,完成后返回 url |
生视频是异步的:提交拿 id,之后每隔几秒查一次,status 变成 completed 时 url 即为成品地址。
用 reasoning_effort 控制模型的思考量(可选)
| 值 | 效果 |
|---|---|
none | 不思考,直出答案,最快 |
minimal / low | 轻量思考,适合简单问答 |
medium | 默认档(qiyuan-pro 不传时自动用这档),速度与深度均衡 |
high | 深度思考,适合逻辑推理 / 数学 / 复杂分析 |
max | 极深思考,最难题目也逐步枚举验证,耗时最长 |
示例:"reasoning_effort": "high"。传非法值会返回 400 并附可用值列表;不传时 Flash 直出、Pro 默认 medium。
| 频率 | 默认 120 次 / 分钟,超出返回 429 |
| 每日额度 | 按密钥配置,默认不限 |
| 余额 | 按量扣减,用尽返回 402 |
| 并发 | 流式与生图可并发,生视频建议排队提交 |
401 | 缺少或无效的 API Key |
402 | 余额不足,去控制台领额度 |
403 | 密钥已停用 |
404 | 模型名或路径不存在 |
429 | 超过频率或每日额度 |
502 | 服务繁忙,稍后重试即可 |
sk-wyzx-xxxxxxxx。https://api.wuyunsq.top/v1,模型名填 qiyuan(3.6 Flash)/ qiyuan-pro(3.6 Pro)/ wanxiang(图片与视频)。