luckytri 1.0.4 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.en.md +2 -0
- package/README.md +2 -0
- package/docs/en/CHANGELOG.md +20 -13
- package/docs/en/guide.md +7 -5
- package/docs/en/her-life.md +2 -2
- package/docs/en/webui.md +1 -1
- package/docs/zh/CHANGELOG.md +20 -13
- package/docs/zh/guide.md +7 -5
- package/docs/zh/her-life.md +2 -2
- package/docs/zh/webui.md +1 -1
- package/package.json +2 -1
- package/public/app/assets/ChatsPage-CFMVozoG.css +1 -0
- package/public/app/assets/{ChatsPage-CshdtTzV.js → ChatsPage-DCYMkJ91.js} +2 -2
- package/public/app/assets/{Empty-C7yzOBzy.js → Empty-CLyZkxR5.js} +1 -1
- package/public/app/assets/{Empty-DmUB2-Bk.css → Empty-DIobYG3x.css} +1 -1
- package/public/app/assets/{Field-BjFv4Rfn.js → Field-BpaRwLI_.js} +1 -1
- package/public/app/assets/{HeartPage-eqo6ru16.js → HeartPage-BIOMTiwr.js} +1 -1
- package/public/app/assets/HeartPage-C-2jvgzF.css +1 -0
- package/public/app/assets/{LifePage-CN8GE5NK.js → LifePage-BCgM4JkR.js} +1 -1
- package/public/app/assets/LifePage-CG1OHbRK.css +1 -0
- package/public/app/assets/MemoryPage-C_Bu4rfb.css +1 -0
- package/public/app/assets/{MemoryPage-CCpMN4Wg.js → MemoryPage-vShvRqMt.js} +1 -1
- package/public/app/assets/NaturePage-CPZlImT0.css +1 -0
- package/public/app/assets/{NaturePage-C0JqdBTR.js → NaturePage-Cy9ptr4G.js} +2 -2
- package/public/app/assets/PeoplePage-3RRUITDz.css +1 -0
- package/public/app/assets/{PeoplePage-BXGBbO4u.js → PeoplePage-CUZekB2E.js} +1 -1
- package/public/app/assets/{PluginsPage-Dksp5AV5.js → PluginsPage-1RM4rmJP.js} +1 -1
- package/public/app/assets/{SystemPage-BenIyTvk.css → SystemPage-BI2CB5Ig.css} +1 -1
- package/public/app/assets/{SystemPage-Cd7aa8eE.js → SystemPage-BeT5TmIV.js} +1 -1
- package/public/app/assets/TimePage-C-guwPk2.css +1 -0
- package/public/app/assets/{TimePage-Bs_zImb4.js → TimePage-taTmPMM8.js} +2 -2
- package/public/app/assets/{index-BHZcHUMh.css → index-DY5AM0Hz.css} +1 -1
- package/public/app/assets/{index-CyRtYxP3.js → index-DdYwC5ZU.js} +3 -3
- package/public/app/assets/{knowledge-BJOIyuJo.js → knowledge-DJmfu2KN.js} +1 -1
- package/public/app/assets/{media-Bwtx8blz.js → media-BEtnE0Gv.js} +1 -1
- package/public/app/assets/{mind-DtTVrW6Z.js → mind-Dtiw0-QK.js} +1 -1
- package/public/app/index.html +6 -5
- package/public/guide.en.html +11 -3
- package/public/guide.html +6 -3
- package/public/tutorial.en.md +2 -0
- package/public/tutorial.md +2 -0
- package/scripts/import-data.js +128 -128
- package/scripts/proxy-config.js +167 -167
- package/scripts/service-supervisor.js +50 -0
- package/scripts/start-server.js +71 -16
- package/scripts/update-instance.js +201 -201
- package/server/channels/adapters.js +27 -27
- package/server/channels/onebot/adapter.js +288 -288
- package/server/channels/qqbot/adapter.js +253 -253
- package/server/channels/qqbot/api.js +199 -199
- package/server/channels/qqbot/credentials.js +11 -11
- package/server/channels/qqbot/gateway.js +274 -274
- package/server/channels/qqbot/index.js +389 -389
- package/server/channels/segments.js +40 -40
- package/server/channels/session-key.js +153 -153
- package/server/channels/state.js +42 -42
- package/server/core/api.js +564 -564
- package/server/core/context-builder.js +288 -288
- package/server/core/context-compactor.js +454 -454
- package/server/core/conversation-cues.js +325 -325
- package/server/core/conversation-manager.js +87 -87
- package/server/core/feedback.js +8 -8
- package/server/core/group-style.js +72 -72
- package/server/core/initiative-context.js +66 -66
- package/server/core/input-budget.js +32 -32
- package/server/core/local-demo.js +98 -98
- package/server/core/message-manager.js +118 -118
- package/server/core/message-scheduler.js +78 -78
- package/server/core/model-json.js +190 -190
- package/server/core/model-presets.js +900 -900
- package/server/core/name-call.js +29 -29
- package/server/core/network.js +157 -157
- package/server/core/person-name.js +22 -22
- package/server/core/persona-manager.js +2 -1
- package/server/core/reply-delivery.js +404 -403
- package/server/core/reply-target-resolver.js +50 -50
- package/server/core/response-generator.js +50 -50
- package/server/core/response-validator.js +14 -2
- package/server/core/retired-prompts.js +51 -51
- package/server/core/sessions.js +109 -109
- package/server/core/speaker-names.js +92 -92
- package/server/core/topic-tracker.js +65 -65
- package/server/http.js +18 -18
- package/server/i18n/decisions.js +209 -206
- package/server/i18n/errors.js +4 -0
- package/server/i18n/index.js +144 -144
- package/server/i18n/models.js +111 -111
- package/server/knowledge/api.js +342 -342
- package/server/knowledge/embedding-profile.js +114 -114
- package/server/knowledge/index.js +13 -13
- package/server/knowledge/retrieval.js +93 -93
- package/server/knowledge/schema.js +158 -158
- package/server/knowledge/vector-index.js +90 -90
- package/server/mind/affect.js +265 -265
- package/server/mind/attention.js +200 -200
- package/server/mind/bonds.js +565 -565
- package/server/mind/clock.js +83 -83
- package/server/mind/continuity.js +562 -562
- package/server/mind/conversation-origin.js +175 -175
- package/server/mind/days.js +210 -210
- package/server/mind/evidence-read.js +45 -45
- package/server/mind/faces.js +373 -373
- package/server/mind/guard.js +60 -60
- package/server/mind/initiative.js +338 -338
- package/server/mind/life/activities.js +21 -21
- package/server/mind/life/context.js +330 -323
- package/server/mind/life/diary.js +20 -0
- package/server/mind/life/growth.js +261 -254
- package/server/mind/life/index.js +10 -2
- package/server/mind/life/presence.js +305 -305
- package/server/mind/meetings.js +1069 -1069
- package/server/mind/memory-policy.js +48 -48
- package/server/mind/memory.js +888 -888
- package/server/mind/nature.js +358 -358
- package/server/mind/novelty.js +19 -19
- package/server/mind/periods.js +118 -118
- package/server/mind/reading.js +120 -120
- package/server/mind/relationship-context.js +71 -0
- package/server/mind/relationships.js +390 -279
- package/server/mind/salience.js +201 -201
- package/server/mind/schema.js +567 -567
- package/server/mind/self.js +484 -484
- package/server/mind/thoughts.js +274 -274
- package/server/mind/time/agenda.js +242 -242
- package/server/mind/time/api.js +200 -200
- package/server/mind/time/attention.js +34 -34
- package/server/mind/time/delivery-links.js +130 -130
- package/server/mind/time/model-material.js +77 -77
- package/server/mind/time/presentation.js +51 -51
- package/server/mind/time/schedule.js +83 -83
- package/server/mind/time/schema.js +84 -84
- package/server/mind/time/search.js +383 -383
- package/server/mind/time/sharing.js +472 -472
- package/server/mind/time/task-links.js +311 -311
- package/server/mind/time/works.js +432 -432
- package/server/mind/traits.js +191 -191
- package/server/mind/view.js +9 -1
- package/server/runtime/installation.js +116 -116
- package/server/runtime/update-execution.js +2 -1
- package/server/runtime/update-manager.js +140 -140
- package/server/storage/data-package.js +298 -298
- package/server/storage/data-transfer-api.js +50 -50
- package/server/storage/data-transfer-worker.js +18 -18
- package/server/storage/data-transfer.js +416 -416
- package/server/studio/display-names.js +139 -139
- package/server/studio/management.js +102 -102
- package/server/studio/updates.js +144 -144
- package/server/version.js +10 -10
- package/public/app/assets/ChatsPage-DfyPCS9N.css +0 -1
- package/public/app/assets/HeartPage-Bft9wZp5.css +0 -1
- package/public/app/assets/LifePage-BUi5euBF.css +0 -1
- package/public/app/assets/MemoryPage-cZvXfkXb.css +0 -1
- package/public/app/assets/NaturePage-CHkpb5NK.css +0 -1
- package/public/app/assets/PeoplePage-BTU0H1pM.css +0 -1
- package/public/app/assets/TimePage-BOms_n4I.css +0 -1
|
@@ -1,900 +1,900 @@
|
|
|
1
|
-
// Checked against vendor API docs on 2026-09-23.
|
|
2
|
-
// maxOutputTokens is the published output ceiling and maxInputTokens is what
|
|
3
|
-
// the window leaves after it, so every preset passes validateModel as is.
|
|
4
|
-
|
|
5
|
-
function limits(contextWindow, maxOutputTokens) {
|
|
6
|
-
return {
|
|
7
|
-
contextWindow,
|
|
8
|
-
maxOutputTokens,
|
|
9
|
-
maxInputTokens: contextWindow - maxOutputTokens,
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
// OpenAI and Bedrock bill the whole GPT request at the long-context rate once
|
|
14
|
-
// input passes 272K tokens. The standard tier stops input there and keeps the
|
|
15
|
-
// full 128K output.
|
|
16
|
-
function gptWindows() {
|
|
17
|
-
const standard = {
|
|
18
|
-
contextWindow: 272000 + 128000,
|
|
19
|
-
maxInputTokens: 272000,
|
|
20
|
-
maxOutputTokens: 128000,
|
|
21
|
-
};
|
|
22
|
-
return {
|
|
23
|
-
...standard,
|
|
24
|
-
contextWindows: [
|
|
25
|
-
{ label: "标准(输入 ≤272K)", ...standard },
|
|
26
|
-
{ label: "百万(1.05M)", ...limits(1050000, 128000) },
|
|
27
|
-
],
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
const shared = {
|
|
32
|
-
embedding: false,
|
|
33
|
-
embeddingModel: "",
|
|
34
|
-
timeoutMs: 120000,
|
|
35
|
-
system: true,
|
|
36
|
-
json: true,
|
|
37
|
-
tools: true,
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
const OPENAI = "https://api.openai.com/v1";
|
|
41
|
-
const BEDROCK = "https://bedrock-runtime.us-east-1.amazonaws.com/openai/v1";
|
|
42
|
-
const OPENROUTER = "https://openrouter.ai/api/v1";
|
|
43
|
-
const OPENCODE_GO = "https://opencode.ai/zen/go/v1";
|
|
44
|
-
const OPENCODE_ZEN = "https://opencode.ai/zen/v1";
|
|
45
|
-
const VOLCENGINE_CODING_PLAN =
|
|
46
|
-
"https://ark.cn-beijing.volces.com/api/coding/v3";
|
|
47
|
-
const GPT_EFFORTS = ["none", "low", "medium", "high", "xhigh", "max"];
|
|
48
|
-
const ASTRA_EFFORTS = ["low", "medium", "high", "xhigh", "max"];
|
|
49
|
-
|
|
50
|
-
function gpt(fields) {
|
|
51
|
-
return {
|
|
52
|
-
...gptWindows(),
|
|
53
|
-
...shared,
|
|
54
|
-
vision: true,
|
|
55
|
-
thinkingStyle: "openai",
|
|
56
|
-
tokenField: "max_completion_tokens",
|
|
57
|
-
reasoningEfforts: GPT_EFFORTS,
|
|
58
|
-
reasoningEffort: "medium",
|
|
59
|
-
temperature: 1,
|
|
60
|
-
topP: 1,
|
|
61
|
-
...fields,
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
function openRouterGpt(fields) {
|
|
66
|
-
const profile = gpt({
|
|
67
|
-
...fields,
|
|
68
|
-
provider: "openrouter",
|
|
69
|
-
baseUrl: OPENROUTER,
|
|
70
|
-
contextWindow: 1050000,
|
|
71
|
-
maxInputTokens: 922000,
|
|
72
|
-
maxOutputTokens: 128000,
|
|
73
|
-
});
|
|
74
|
-
delete profile.contextWindows;
|
|
75
|
-
return profile;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
function openCodeModel({
|
|
79
|
-
channel,
|
|
80
|
-
model,
|
|
81
|
-
label,
|
|
82
|
-
protocol = "chat",
|
|
83
|
-
summary,
|
|
84
|
-
vision = false,
|
|
85
|
-
reasoningEfforts,
|
|
86
|
-
reasoningEffort = "none",
|
|
87
|
-
limits: modelLimits = limits(128000, 8192),
|
|
88
|
-
temperature = 0.85,
|
|
89
|
-
topP = 1,
|
|
90
|
-
}) {
|
|
91
|
-
const isGo = channel === "go";
|
|
92
|
-
const anthropic = protocol === "anthropic";
|
|
93
|
-
return {
|
|
94
|
-
id: `opencode-${channel}-${model}`,
|
|
95
|
-
vendor: isGo ? "OpenCode Go" : "OpenCode Zen",
|
|
96
|
-
label,
|
|
97
|
-
summary,
|
|
98
|
-
provider: isGo ? "opencode-go" : "opencode-zen",
|
|
99
|
-
baseUrl: isGo ? OPENCODE_GO : OPENCODE_ZEN,
|
|
100
|
-
model,
|
|
101
|
-
apiProtocol: protocol,
|
|
102
|
-
...modelLimits,
|
|
103
|
-
...shared,
|
|
104
|
-
vision,
|
|
105
|
-
thinkingStyle: anthropic ? "anthropic" : "openai",
|
|
106
|
-
tokenField:
|
|
107
|
-
protocol === "responses" ? "max_completion_tokens" : "max_tokens",
|
|
108
|
-
reasoningEfforts:
|
|
109
|
-
reasoningEfforts ||
|
|
110
|
-
(anthropic
|
|
111
|
-
? ["none", "low", "medium", "high"]
|
|
112
|
-
: ["none", "low", "medium", "high"]),
|
|
113
|
-
reasoningEffort,
|
|
114
|
-
temperature,
|
|
115
|
-
topP,
|
|
116
|
-
timeoutMs: 120000,
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
const OPENCODE_GO_MODELS = [
|
|
121
|
-
["grok-4.7", "Grok 4.7", "responses"],
|
|
122
|
-
["gpt-5.6-luna", "GPT-5.6 Luna", "responses", true],
|
|
123
|
-
["deepseek-v4-pro", "DeepSeek V4 Pro", "chat"],
|
|
124
|
-
["glm-5.3-flash", "GLM-5.3 Flash", "chat", true],
|
|
125
|
-
["kimi-k3", "Kimi K3", "chat"],
|
|
126
|
-
["minimax-m3", "MiniMax M3", "anthropic"],
|
|
127
|
-
["qwen3.8-max", "Qwen3.8 Max", "anthropic", true],
|
|
128
|
-
].map(([model, label, protocol, vision]) =>
|
|
129
|
-
openCodeModel({
|
|
130
|
-
channel: "go",
|
|
131
|
-
model,
|
|
132
|
-
label,
|
|
133
|
-
protocol,
|
|
134
|
-
vision: !!vision,
|
|
135
|
-
summary: `OpenCode Go · ${model} · ${protocol === "responses" ? "Responses" : protocol === "anthropic" ? "Messages" : "Chat Completions"} 接口。默认上下文和输出预算为保守起始值,可按账户实际模型上限调整。`,
|
|
136
|
-
}),
|
|
137
|
-
);
|
|
138
|
-
|
|
139
|
-
// Volcengine's Coding Plan catalog is intentionally separate from its normal
|
|
140
|
-
// inference API: only the /api/coding/v3 endpoint consumes Coding Plan quota.
|
|
141
|
-
function codingPlanModel({
|
|
142
|
-
model,
|
|
143
|
-
label,
|
|
144
|
-
context,
|
|
145
|
-
output,
|
|
146
|
-
vision = false,
|
|
147
|
-
summary = "",
|
|
148
|
-
}) {
|
|
149
|
-
// Kimi K2.8 Preview advertises a 1M output ceiling. Reserve a practical
|
|
150
|
-
// 64K response budget here so the nearly 1M input window remains usable by
|
|
151
|
-
// LuckyTri; model-stage output limits are smaller for ordinary conversations.
|
|
152
|
-
const maxOutputTokens = Math.min(
|
|
153
|
-
output,
|
|
154
|
-
model === "kimi-k2.8-preview" ? 65536 : output,
|
|
155
|
-
);
|
|
156
|
-
const contextWindow = context;
|
|
157
|
-
return {
|
|
158
|
-
id: `volcengine-coding-plan-${model}`,
|
|
159
|
-
vendor: "火山方舟 Coding Plan",
|
|
160
|
-
label,
|
|
161
|
-
summary:
|
|
162
|
-
summary ||
|
|
163
|
-
`Coding Plan 专属 Responses 接口 · 上下文 ${context.toLocaleString("en-US")} · 官方最大输出 ${output.toLocaleString("en-US")}${vision ? " · 支持图片理解" : " · 文本模型"}。默认中等推理;Kimi K2.8 Preview 在 LuckyTri 中预留 64K 输出预算以保留长上下文。`,
|
|
164
|
-
provider: "volcengine-coding-plan",
|
|
165
|
-
baseUrl: VOLCENGINE_CODING_PLAN,
|
|
166
|
-
model,
|
|
167
|
-
apiProtocol: "responses",
|
|
168
|
-
...limits(contextWindow, maxOutputTokens),
|
|
169
|
-
...shared,
|
|
170
|
-
vision,
|
|
171
|
-
thinkingStyle: "volcengine",
|
|
172
|
-
tokenField: "max_completion_tokens",
|
|
173
|
-
reasoningEfforts: ["none", "minimal", "low", "medium", "high"],
|
|
174
|
-
reasoningEffort: "medium",
|
|
175
|
-
// Reasoning models may reject sampling parameters. The Responses API uses
|
|
176
|
-
// reasoning.effort; the "none" choice maps to minimal reasoning.
|
|
177
|
-
omitSampling: true,
|
|
178
|
-
temperature: 1,
|
|
179
|
-
topP: 1,
|
|
180
|
-
timeoutMs: 120000,
|
|
181
|
-
};
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
const VOLCENGINE_CODING_PLAN_MODELS = [
|
|
185
|
-
codingPlanModel({
|
|
186
|
-
model: "ark-code-latest",
|
|
187
|
-
label: "方舟自动路由(ark-code-latest)",
|
|
188
|
-
context: 256000,
|
|
189
|
-
output: 32768,
|
|
190
|
-
vision: true,
|
|
191
|
-
summary:
|
|
192
|
-
"控制台管理的动态模型入口;实际使用哪一个模型由 Coding Plan 控制台选择,切换通常数分钟后生效。支持图片理解。",
|
|
193
|
-
}),
|
|
194
|
-
codingPlanModel({
|
|
195
|
-
model: "doubao-seed-evolving",
|
|
196
|
-
label: "Doubao Seed Evolving",
|
|
197
|
-
context: 1024000,
|
|
198
|
-
output: 262144,
|
|
199
|
-
vision: true,
|
|
200
|
-
}),
|
|
201
|
-
codingPlanModel({
|
|
202
|
-
model: "doubao-seed-2.1-pro",
|
|
203
|
-
label: "Doubao Seed 2.1 Pro",
|
|
204
|
-
context: 1024000,
|
|
205
|
-
output: 262144,
|
|
206
|
-
vision: true,
|
|
207
|
-
}),
|
|
208
|
-
codingPlanModel({
|
|
209
|
-
model: "doubao-seed-2.1-lite",
|
|
210
|
-
label: "Doubao Seed 2.1 Lite",
|
|
211
|
-
context: 1024000,
|
|
212
|
-
output: 256000,
|
|
213
|
-
vision: true,
|
|
214
|
-
}),
|
|
215
|
-
codingPlanModel({
|
|
216
|
-
model: "doubao-seed-2.0-mini",
|
|
217
|
-
label: "Doubao Seed 2.0 Mini",
|
|
218
|
-
context: 256000,
|
|
219
|
-
output: 128000,
|
|
220
|
-
vision: true,
|
|
221
|
-
}),
|
|
222
|
-
codingPlanModel({
|
|
223
|
-
model: "minimax-m3",
|
|
224
|
-
label: "MiniMax M3",
|
|
225
|
-
context: 1024000,
|
|
226
|
-
output: 131072,
|
|
227
|
-
vision: true,
|
|
228
|
-
}),
|
|
229
|
-
codingPlanModel({
|
|
230
|
-
model: "glm-5.3",
|
|
231
|
-
label: "GLM 5.3",
|
|
232
|
-
context: 1024000,
|
|
233
|
-
output: 131072,
|
|
234
|
-
}),
|
|
235
|
-
codingPlanModel({
|
|
236
|
-
model: "glm-latest",
|
|
237
|
-
label: "GLM 最新别名(glm-latest)",
|
|
238
|
-
context: 1024000,
|
|
239
|
-
output: 131072,
|
|
240
|
-
}),
|
|
241
|
-
codingPlanModel({
|
|
242
|
-
model: "glm-5.3-flash",
|
|
243
|
-
label: "GLM 5.3 Flash",
|
|
244
|
-
context: 1024000,
|
|
245
|
-
output: 131072,
|
|
246
|
-
vision: true,
|
|
247
|
-
}),
|
|
248
|
-
codingPlanModel({
|
|
249
|
-
model: "deepseek-v4.1-flash",
|
|
250
|
-
label: "DeepSeek V4.1 Flash",
|
|
251
|
-
context: 1024000,
|
|
252
|
-
output: 393216,
|
|
253
|
-
vision: true,
|
|
254
|
-
}),
|
|
255
|
-
codingPlanModel({
|
|
256
|
-
model: "deepseek-v4-flash",
|
|
257
|
-
label: "DeepSeek V4 Flash",
|
|
258
|
-
context: 1024000,
|
|
259
|
-
output: 393216,
|
|
260
|
-
}),
|
|
261
|
-
codingPlanModel({
|
|
262
|
-
model: "deepseek-v4-pro",
|
|
263
|
-
label: "DeepSeek V4 Pro",
|
|
264
|
-
context: 1024000,
|
|
265
|
-
output: 393216,
|
|
266
|
-
}),
|
|
267
|
-
codingPlanModel({
|
|
268
|
-
model: "kimi-k2.7-code",
|
|
269
|
-
label: "Kimi K2.7 Code",
|
|
270
|
-
context: 256000,
|
|
271
|
-
output: 32768,
|
|
272
|
-
vision: true,
|
|
273
|
-
}),
|
|
274
|
-
codingPlanModel({
|
|
275
|
-
model: "kimi-k2.8-preview",
|
|
276
|
-
label: "Kimi K2.8 Preview",
|
|
277
|
-
context: 1024000,
|
|
278
|
-
output: 1024000,
|
|
279
|
-
vision: true,
|
|
280
|
-
}),
|
|
281
|
-
codingPlanModel({
|
|
282
|
-
model: "kimi-k3",
|
|
283
|
-
label: "Kimi K3",
|
|
284
|
-
context: 1024000,
|
|
285
|
-
output: 131072,
|
|
286
|
-
vision: true,
|
|
287
|
-
}),
|
|
288
|
-
];
|
|
289
|
-
|
|
290
|
-
export const EFFORT_LABELS = {
|
|
291
|
-
none: "关闭",
|
|
292
|
-
minimal: "极低",
|
|
293
|
-
low: "低",
|
|
294
|
-
medium: "中",
|
|
295
|
-
high: "高",
|
|
296
|
-
xhigh: "极高",
|
|
297
|
-
max: "最深",
|
|
298
|
-
};
|
|
299
|
-
|
|
300
|
-
export const MODEL_CATALOG = [
|
|
301
|
-
...VOLCENGINE_CODING_PLAN_MODELS,
|
|
302
|
-
{
|
|
303
|
-
id: "deepseek-flash",
|
|
304
|
-
vendor: "DeepSeek",
|
|
305
|
-
label: "DeepSeek V4.1 Flash",
|
|
306
|
-
summary:
|
|
307
|
-
"当前主力。思考默认开启(high),可关闭;支持看图。1M 内同一价格,没有分档。",
|
|
308
|
-
provider: "deepseek",
|
|
309
|
-
baseUrl: "https://api.deepseek.com",
|
|
310
|
-
model: "deepseek-flash",
|
|
311
|
-
...limits(1000000, 393216),
|
|
312
|
-
...shared,
|
|
313
|
-
vision: true,
|
|
314
|
-
thinkingStyle: "deepseek",
|
|
315
|
-
tokenField: "max_tokens",
|
|
316
|
-
reasoningEfforts: ["none", "low", "high", "max"],
|
|
317
|
-
reasoningEffort: "high",
|
|
318
|
-
temperature: 1,
|
|
319
|
-
topP: 1,
|
|
320
|
-
},
|
|
321
|
-
{
|
|
322
|
-
id: "deepseek-v4-pro",
|
|
323
|
-
vendor: "DeepSeek",
|
|
324
|
-
label: "DeepSeek V4 Pro",
|
|
325
|
-
summary:
|
|
326
|
-
"V4-Pro-0813。思考默认开启(high),可关闭;仅文本。1M 内同一价格,没有分档。",
|
|
327
|
-
provider: "deepseek",
|
|
328
|
-
baseUrl: "https://api.deepseek.com",
|
|
329
|
-
model: "deepseek-v4-pro",
|
|
330
|
-
...limits(1000000, 393216),
|
|
331
|
-
...shared,
|
|
332
|
-
vision: false,
|
|
333
|
-
thinkingStyle: "deepseek",
|
|
334
|
-
tokenField: "max_tokens",
|
|
335
|
-
reasoningEfforts: ["none", "low", "high", "max"],
|
|
336
|
-
reasoningEffort: "high",
|
|
337
|
-
temperature: 1,
|
|
338
|
-
topP: 1,
|
|
339
|
-
},
|
|
340
|
-
{
|
|
341
|
-
id: "mimo-v2.6-pro",
|
|
342
|
-
vendor: "小米 MiMo",
|
|
343
|
-
label: "MiMo V2.6 Pro",
|
|
344
|
-
summary:
|
|
345
|
-
"旗舰。思考默认开启,可关闭;支持图片、视频、音频输入。1M 内同一价格,没有分档。",
|
|
346
|
-
provider: "mimo",
|
|
347
|
-
baseUrl: "https://api.xiaomimimo.com/v1",
|
|
348
|
-
model: "mimo-v2.6-pro",
|
|
349
|
-
...limits(1048576, 131072),
|
|
350
|
-
...shared,
|
|
351
|
-
vision: true,
|
|
352
|
-
thinkingStyle: "mimo",
|
|
353
|
-
tokenField: "max_completion_tokens",
|
|
354
|
-
reasoningEfforts: ["none", "high"],
|
|
355
|
-
reasoningEffort: "high",
|
|
356
|
-
temperature: 1,
|
|
357
|
-
topP: 0.95,
|
|
358
|
-
},
|
|
359
|
-
{
|
|
360
|
-
id: "mimo-v2.6-flash",
|
|
361
|
-
vendor: "小米 MiMo",
|
|
362
|
-
label: "MiMo V2.6 Flash",
|
|
363
|
-
summary:
|
|
364
|
-
"高频调用。思考默认开启,可关闭;支持图片、视频、音频输入。1M 内同一价格,没有分档。",
|
|
365
|
-
provider: "mimo",
|
|
366
|
-
baseUrl: "https://api.xiaomimimo.com/v1",
|
|
367
|
-
model: "mimo-v2.6-flash",
|
|
368
|
-
...limits(1048576, 131072),
|
|
369
|
-
...shared,
|
|
370
|
-
vision: true,
|
|
371
|
-
thinkingStyle: "mimo",
|
|
372
|
-
tokenField: "max_completion_tokens",
|
|
373
|
-
reasoningEfforts: ["none", "high"],
|
|
374
|
-
reasoningEffort: "high",
|
|
375
|
-
temperature: 1,
|
|
376
|
-
topP: 0.95,
|
|
377
|
-
},
|
|
378
|
-
{
|
|
379
|
-
id: "glm-5.3",
|
|
380
|
-
vendor: "智谱 GLM",
|
|
381
|
-
label: "GLM-5.3",
|
|
382
|
-
summary: "旗舰。思考不能关闭,默认 max;仅文本。1M 内同一价格,没有分档。",
|
|
383
|
-
provider: "glm",
|
|
384
|
-
baseUrl: "https://open.bigmodel.cn/api/paas/v4",
|
|
385
|
-
model: "glm-5.3",
|
|
386
|
-
...limits(1000000, 131072),
|
|
387
|
-
...shared,
|
|
388
|
-
vision: false,
|
|
389
|
-
thinkingStyle: "glm",
|
|
390
|
-
tokenField: "max_tokens",
|
|
391
|
-
reasoningEfforts: ["low", "high", "max"],
|
|
392
|
-
reasoningEffort: "max",
|
|
393
|
-
temperature: 1,
|
|
394
|
-
topP: 0.95,
|
|
395
|
-
},
|
|
396
|
-
{
|
|
397
|
-
id: "glm-5.3-flash",
|
|
398
|
-
vendor: "智谱 GLM",
|
|
399
|
-
label: "GLM-5.3 Flash",
|
|
400
|
-
summary:
|
|
401
|
-
"原生多模态。思考不能关闭,默认 max;支持图片、视频。1M 内同一价格,没有分档。",
|
|
402
|
-
provider: "glm",
|
|
403
|
-
baseUrl: "https://open.bigmodel.cn/api/paas/v4",
|
|
404
|
-
model: "glm-5.3-flash",
|
|
405
|
-
...limits(1000000, 131072),
|
|
406
|
-
...shared,
|
|
407
|
-
vision: true,
|
|
408
|
-
thinkingStyle: "glm",
|
|
409
|
-
tokenField: "max_tokens",
|
|
410
|
-
reasoningEfforts: ["low", "high", "max"],
|
|
411
|
-
reasoningEffort: "max",
|
|
412
|
-
temperature: 1,
|
|
413
|
-
topP: 0.95,
|
|
414
|
-
},
|
|
415
|
-
{
|
|
416
|
-
id: "kimi-k3",
|
|
417
|
-
vendor: "Kimi",
|
|
418
|
-
label: "Kimi K3",
|
|
419
|
-
summary:
|
|
420
|
-
"旗舰。思考不能关闭,默认 max;支持看图。1M 内同一价格;输出和输入共用窗口,官方默认输出 128K。",
|
|
421
|
-
provider: "kimi",
|
|
422
|
-
baseUrl: "https://api.moonshot.cn/v1",
|
|
423
|
-
model: "kimi-k3",
|
|
424
|
-
...limits(1048576, 131072),
|
|
425
|
-
...shared,
|
|
426
|
-
vision: true,
|
|
427
|
-
thinkingStyle: "kimi-effort",
|
|
428
|
-
tokenField: "max_completion_tokens",
|
|
429
|
-
omitSampling: true,
|
|
430
|
-
reasoningEfforts: ["low", "high", "max"],
|
|
431
|
-
reasoningEffort: "max",
|
|
432
|
-
temperature: 1,
|
|
433
|
-
topP: 0.95,
|
|
434
|
-
},
|
|
435
|
-
{
|
|
436
|
-
id: "kimi-k2.6",
|
|
437
|
-
vendor: "Kimi",
|
|
438
|
-
label: "Kimi K2.6",
|
|
439
|
-
summary:
|
|
440
|
-
"通用模型。思考默认开启,可关闭;支持看图。输出和输入共用 256K 窗口,官方默认输出 32K。",
|
|
441
|
-
provider: "kimi",
|
|
442
|
-
baseUrl: "https://api.moonshot.cn/v1",
|
|
443
|
-
model: "kimi-k2.6",
|
|
444
|
-
...limits(262144, 32768),
|
|
445
|
-
...shared,
|
|
446
|
-
vision: true,
|
|
447
|
-
thinkingStyle: "kimi-toggle",
|
|
448
|
-
tokenField: "max_completion_tokens",
|
|
449
|
-
omitSampling: true,
|
|
450
|
-
reasoningEfforts: ["none", "high"],
|
|
451
|
-
reasoningEffort: "high",
|
|
452
|
-
temperature: 1,
|
|
453
|
-
topP: 0.95,
|
|
454
|
-
},
|
|
455
|
-
gpt({
|
|
456
|
-
id: "gpt-6-astra",
|
|
457
|
-
vendor: "OpenAI",
|
|
458
|
-
label: "GPT-6 Astra",
|
|
459
|
-
summary:
|
|
460
|
-
"最强旗舰。思考不能关闭,官方未写默认档,预填 medium;支持看图。输入超过 272K 整单按长上下文计价。",
|
|
461
|
-
provider: "openai",
|
|
462
|
-
baseUrl: OPENAI,
|
|
463
|
-
model: "gpt-6-astra",
|
|
464
|
-
reasoningEfforts: ASTRA_EFFORTS,
|
|
465
|
-
}),
|
|
466
|
-
gpt({
|
|
467
|
-
id: "gpt-6-sol",
|
|
468
|
-
vendor: "OpenAI",
|
|
469
|
-
label: "GPT-6 Sol",
|
|
470
|
-
summary:
|
|
471
|
-
"复杂编码与智能体。思考默认 medium,可关闭;支持看图。输入超过 272K 整单按长上下文计价。",
|
|
472
|
-
provider: "openai",
|
|
473
|
-
baseUrl: OPENAI,
|
|
474
|
-
model: "gpt-6-sol",
|
|
475
|
-
}),
|
|
476
|
-
gpt({
|
|
477
|
-
id: "gpt-6-luna",
|
|
478
|
-
vendor: "OpenAI",
|
|
479
|
-
label: "GPT-6 Luna",
|
|
480
|
-
summary:
|
|
481
|
-
"高频轻量。思考默认 medium,可关闭;支持看图。输入超过 272K 整单按长上下文计价。",
|
|
482
|
-
provider: "openai",
|
|
483
|
-
baseUrl: OPENAI,
|
|
484
|
-
model: "gpt-6-luna",
|
|
485
|
-
}),
|
|
486
|
-
openRouterGpt({
|
|
487
|
-
id: "openrouter-gpt-6-astra",
|
|
488
|
-
vendor: "OpenRouter",
|
|
489
|
-
label: "GPT-6 Astra",
|
|
490
|
-
summary:
|
|
491
|
-
"OpenRouter 路由 · openai/gpt-6-astra。1.05M 上下文、128K 最大输出;支持图片、结构化输出和工具调用。",
|
|
492
|
-
model: "openai/gpt-6-astra",
|
|
493
|
-
reasoningEfforts: ASTRA_EFFORTS,
|
|
494
|
-
}),
|
|
495
|
-
openRouterGpt({
|
|
496
|
-
id: "openrouter-gpt-6-sol",
|
|
497
|
-
vendor: "OpenRouter",
|
|
498
|
-
label: "GPT-6 Sol",
|
|
499
|
-
summary:
|
|
500
|
-
"OpenRouter 路由 · openai/gpt-6-sol。1.05M 上下文、128K 最大输出;支持图片、结构化输出和工具调用。",
|
|
501
|
-
model: "openai/gpt-6-sol",
|
|
502
|
-
}),
|
|
503
|
-
openRouterGpt({
|
|
504
|
-
id: "openrouter-gpt-6-luna",
|
|
505
|
-
vendor: "OpenRouter",
|
|
506
|
-
label: "GPT-6 Luna",
|
|
507
|
-
summary:
|
|
508
|
-
"OpenRouter 路由 · openai/gpt-6-luna。1.05M 上下文、128K 最大输出;支持图片、结构化输出和工具调用。",
|
|
509
|
-
model: "openai/gpt-6-luna",
|
|
510
|
-
}),
|
|
511
|
-
{
|
|
512
|
-
id: "openrouter-glm-5.3-flash",
|
|
513
|
-
vendor: "OpenRouter",
|
|
514
|
-
label: "GLM-5.3 Flash",
|
|
515
|
-
summary:
|
|
516
|
-
"OpenRouter 路由 · z-ai/glm-5.3-flash。1,310,720 上下文、131,072 最大输出;支持图片、结构化输出和工具调用。",
|
|
517
|
-
provider: "openrouter",
|
|
518
|
-
baseUrl: OPENROUTER,
|
|
519
|
-
model: "z-ai/glm-5.3-flash",
|
|
520
|
-
...limits(1310720, 131072),
|
|
521
|
-
...shared,
|
|
522
|
-
vision: true,
|
|
523
|
-
thinkingStyle: "openai",
|
|
524
|
-
tokenField: "max_tokens",
|
|
525
|
-
reasoningEfforts: ["low", "high", "max"],
|
|
526
|
-
reasoningEffort: "max",
|
|
527
|
-
temperature: 1,
|
|
528
|
-
topP: 0.95,
|
|
529
|
-
},
|
|
530
|
-
gpt({
|
|
531
|
-
id: "gpt-5.6-sol",
|
|
532
|
-
vendor: "OpenAI",
|
|
533
|
-
label: "GPT-5.6 Sol",
|
|
534
|
-
summary:
|
|
535
|
-
"上一代旗舰,别名 gpt-5.6。思考默认 medium,可关闭;支持看图。输入超过 272K 整单按长上下文计价。",
|
|
536
|
-
provider: "openai",
|
|
537
|
-
baseUrl: OPENAI,
|
|
538
|
-
model: "gpt-5.6-sol",
|
|
539
|
-
}),
|
|
540
|
-
gpt({
|
|
541
|
-
id: "gpt-5.6-terra",
|
|
542
|
-
vendor: "OpenAI",
|
|
543
|
-
label: "GPT-5.6 Terra",
|
|
544
|
-
summary:
|
|
545
|
-
"上一代均衡款。思考默认 medium,可关闭;支持看图。输入超过 272K 整单按长上下文计价。",
|
|
546
|
-
provider: "openai",
|
|
547
|
-
baseUrl: OPENAI,
|
|
548
|
-
model: "gpt-5.6-terra",
|
|
549
|
-
}),
|
|
550
|
-
gpt({
|
|
551
|
-
id: "gpt-5.6-luna",
|
|
552
|
-
vendor: "OpenAI",
|
|
553
|
-
label: "GPT-5.6 Luna",
|
|
554
|
-
summary:
|
|
555
|
-
"上一代高性价比。思考默认 medium,可关闭;支持看图。输入超过 272K 整单按长上下文计价。",
|
|
556
|
-
provider: "openai",
|
|
557
|
-
baseUrl: OPENAI,
|
|
558
|
-
model: "gpt-5.6-luna",
|
|
559
|
-
}),
|
|
560
|
-
{
|
|
561
|
-
id: "qwen3.8-max",
|
|
562
|
-
vendor: "通义千问",
|
|
563
|
-
label: "Qwen3.8 Max",
|
|
564
|
-
summary:
|
|
565
|
-
"旗舰,快照 qwen3.8-max-0902。思考默认开启(xhigh),可关闭;支持图片、视频。1M 内同一价格,没有分档。",
|
|
566
|
-
provider: "qwen",
|
|
567
|
-
baseUrl: "https://dashscope.aliyuncs.com/compatible-mode/v1",
|
|
568
|
-
model: "qwen3.8-max",
|
|
569
|
-
...limits(1000000, 131072),
|
|
570
|
-
...shared,
|
|
571
|
-
vision: true,
|
|
572
|
-
thinkingStyle: "qwen-effort",
|
|
573
|
-
tokenField: "max_completion_tokens",
|
|
574
|
-
omitSampling: true,
|
|
575
|
-
reasoningEfforts: ["none", "low", "medium", "xhigh"],
|
|
576
|
-
reasoningEffort: "xhigh",
|
|
577
|
-
temperature: 0.6,
|
|
578
|
-
topP: 0.95,
|
|
579
|
-
},
|
|
580
|
-
{
|
|
581
|
-
id: "qwen3.8-flash",
|
|
582
|
-
vendor: "通义千问",
|
|
583
|
-
label: "Qwen3.8 Flash",
|
|
584
|
-
summary:
|
|
585
|
-
"轻量。思考默认开启(xhigh),可关闭;支持图片、视频。1M 内同一价格,没有分档。",
|
|
586
|
-
provider: "qwen",
|
|
587
|
-
baseUrl: "https://dashscope.aliyuncs.com/compatible-mode/v1",
|
|
588
|
-
model: "qwen3.8-flash",
|
|
589
|
-
...limits(1000000, 131072),
|
|
590
|
-
...shared,
|
|
591
|
-
vision: true,
|
|
592
|
-
thinkingStyle: "qwen-effort",
|
|
593
|
-
tokenField: "max_completion_tokens",
|
|
594
|
-
omitSampling: true,
|
|
595
|
-
reasoningEfforts: ["none", "low", "medium", "xhigh"],
|
|
596
|
-
reasoningEffort: "xhigh",
|
|
597
|
-
temperature: 0.6,
|
|
598
|
-
topP: 0.95,
|
|
599
|
-
},
|
|
600
|
-
gpt({
|
|
601
|
-
id: "bedrock-gpt-6-astra",
|
|
602
|
-
vendor: "亚马逊 Bedrock",
|
|
603
|
-
label: "GPT-6 Astra",
|
|
604
|
-
summary:
|
|
605
|
-
"美国跨区推理。思考不能关闭,预填 medium;支持看图。runtime 不支持结构化输出,已关闭 JSON 输出。输入超过 272K 整单按长上下文计价。",
|
|
606
|
-
provider: "bedrock",
|
|
607
|
-
baseUrl: BEDROCK,
|
|
608
|
-
model: "us.openai.gpt-6-astra",
|
|
609
|
-
json: false,
|
|
610
|
-
reasoningEfforts: ASTRA_EFFORTS,
|
|
611
|
-
}),
|
|
612
|
-
gpt({
|
|
613
|
-
id: "bedrock-gpt-6-sol",
|
|
614
|
-
vendor: "亚马逊 Bedrock",
|
|
615
|
-
label: "GPT-6 Sol",
|
|
616
|
-
summary:
|
|
617
|
-
"AWS 模型卡尚未发布,模型 ID 取自 OpenAI 的 Bedrock 指南,JSON 输出先关闭。思考默认 medium,可关闭;支持看图。输入超过 272K 整单按长上下文计价。",
|
|
618
|
-
provider: "bedrock",
|
|
619
|
-
baseUrl: BEDROCK,
|
|
620
|
-
model: "us.openai.gpt-6-sol",
|
|
621
|
-
json: false,
|
|
622
|
-
}),
|
|
623
|
-
gpt({
|
|
624
|
-
id: "bedrock-gpt-6-luna",
|
|
625
|
-
vendor: "亚马逊 Bedrock",
|
|
626
|
-
label: "GPT-6 Luna",
|
|
627
|
-
summary:
|
|
628
|
-
"AWS 模型卡尚未发布,模型 ID 取自 OpenAI 的 Bedrock 指南,JSON 输出先关闭。思考默认 medium,可关闭;支持看图。输入超过 272K 整单按长上下文计价。",
|
|
629
|
-
provider: "bedrock",
|
|
630
|
-
baseUrl: BEDROCK,
|
|
631
|
-
model: "us.openai.gpt-6-luna",
|
|
632
|
-
json: false,
|
|
633
|
-
}),
|
|
634
|
-
...OPENCODE_GO_MODELS,
|
|
635
|
-
gpt({
|
|
636
|
-
id: "opencode-zen-gpt-6-astra",
|
|
637
|
-
vendor: "OpenCode Zen",
|
|
638
|
-
label: "GPT-6 Astra",
|
|
639
|
-
summary: "OpenCode Zen · GPT-6 系列旗舰 · Responses 接口。",
|
|
640
|
-
provider: "opencode-zen",
|
|
641
|
-
baseUrl: OPENCODE_ZEN,
|
|
642
|
-
model: "gpt-6-astra",
|
|
643
|
-
apiProtocol: "responses",
|
|
644
|
-
reasoningEfforts: ASTRA_EFFORTS,
|
|
645
|
-
}),
|
|
646
|
-
gpt({
|
|
647
|
-
id: "opencode-zen-gpt-6-sol",
|
|
648
|
-
vendor: "OpenCode Zen",
|
|
649
|
-
label: "GPT-6 Sol",
|
|
650
|
-
summary: "OpenCode Zen · GPT-6 均衡款 · Responses 接口。",
|
|
651
|
-
provider: "opencode-zen",
|
|
652
|
-
baseUrl: OPENCODE_ZEN,
|
|
653
|
-
model: "gpt-6-sol",
|
|
654
|
-
apiProtocol: "responses",
|
|
655
|
-
}),
|
|
656
|
-
gpt({
|
|
657
|
-
id: "opencode-zen-gpt-6-luna",
|
|
658
|
-
vendor: "OpenCode Zen",
|
|
659
|
-
label: "GPT-6 Luna",
|
|
660
|
-
summary: "OpenCode Zen · GPT-6 轻量款 · Responses 接口。",
|
|
661
|
-
provider: "opencode-zen",
|
|
662
|
-
baseUrl: OPENCODE_ZEN,
|
|
663
|
-
model: "gpt-6-luna",
|
|
664
|
-
apiProtocol: "responses",
|
|
665
|
-
}),
|
|
666
|
-
openCodeModel({
|
|
667
|
-
channel: "zen",
|
|
668
|
-
model: "deepseek-v4.1-flash",
|
|
669
|
-
label: "DeepSeek V4.1 Flash",
|
|
670
|
-
limits: limits(1000000, 393216),
|
|
671
|
-
reasoningEfforts: ["none", "low", "high", "max"],
|
|
672
|
-
reasoningEffort: "high",
|
|
673
|
-
summary: "OpenCode Zen · 快速推理 · Chat Completions 接口。",
|
|
674
|
-
}),
|
|
675
|
-
openCodeModel({
|
|
676
|
-
channel: "zen",
|
|
677
|
-
model: "deepseek-v4-pro",
|
|
678
|
-
label: "DeepSeek V4 Pro",
|
|
679
|
-
limits: limits(1000000, 393216),
|
|
680
|
-
reasoningEfforts: ["none", "low", "high", "max"],
|
|
681
|
-
reasoningEffort: "high",
|
|
682
|
-
summary: "OpenCode Zen · DeepSeek V4 旗舰 · Chat Completions 接口。",
|
|
683
|
-
}),
|
|
684
|
-
openCodeModel({
|
|
685
|
-
channel: "zen",
|
|
686
|
-
model: "deepseek-v4-flash",
|
|
687
|
-
label: "DeepSeek V4 Flash",
|
|
688
|
-
limits: limits(1000000, 393216),
|
|
689
|
-
reasoningEfforts: ["none", "low", "high", "max"],
|
|
690
|
-
reasoningEffort: "high",
|
|
691
|
-
summary: "OpenCode Zen · 轻量高速 · Chat Completions 接口。",
|
|
692
|
-
}),
|
|
693
|
-
openCodeModel({
|
|
694
|
-
channel: "zen",
|
|
695
|
-
model: "glm-5.3-flash",
|
|
696
|
-
label: "GLM-5.3 Flash",
|
|
697
|
-
vision: true,
|
|
698
|
-
limits: limits(1000000, 131072),
|
|
699
|
-
reasoningEfforts: ["none", "low", "high", "max"],
|
|
700
|
-
reasoningEffort: "high",
|
|
701
|
-
summary: "OpenCode Zen · 智谱轻量多模态 · Chat Completions 接口。",
|
|
702
|
-
}),
|
|
703
|
-
openCodeModel({
|
|
704
|
-
channel: "zen",
|
|
705
|
-
model: "glm-5.3",
|
|
706
|
-
label: "GLM-5.3",
|
|
707
|
-
limits: limits(1000000, 131072),
|
|
708
|
-
reasoningEfforts: ["none", "low", "high", "max"],
|
|
709
|
-
reasoningEffort: "high",
|
|
710
|
-
summary: "OpenCode Zen · 智谱旗舰 · Chat Completions 接口。",
|
|
711
|
-
}),
|
|
712
|
-
openCodeModel({
|
|
713
|
-
channel: "zen",
|
|
714
|
-
model: "kimi-k3",
|
|
715
|
-
label: "Kimi K3",
|
|
716
|
-
vision: true,
|
|
717
|
-
limits: limits(1048576, 131072),
|
|
718
|
-
reasoningEfforts: ["none", "low", "high", "max"],
|
|
719
|
-
reasoningEffort: "high",
|
|
720
|
-
summary: "OpenCode Zen · Kimi 旗舰 · Chat Completions 接口。",
|
|
721
|
-
}),
|
|
722
|
-
// Qwen3.8 Max is only served through Go; Zen offers Qwen3.8 Flash.
|
|
723
|
-
openCodeModel({
|
|
724
|
-
channel: "zen",
|
|
725
|
-
model: "qwen3.8-flash",
|
|
726
|
-
label: "Qwen3.8 Flash",
|
|
727
|
-
protocol: "anthropic",
|
|
728
|
-
vision: true,
|
|
729
|
-
limits: limits(1000000, 131072),
|
|
730
|
-
summary: "OpenCode Zen · 通义千问轻量多模态 · Anthropic Messages 接口。",
|
|
731
|
-
}),
|
|
732
|
-
openCodeModel({
|
|
733
|
-
channel: "zen",
|
|
734
|
-
model: "minimax-m3",
|
|
735
|
-
label: "MiniMax M3",
|
|
736
|
-
limits: limits(128000, 8192),
|
|
737
|
-
reasoningEfforts: ["none", "low", "medium", "high"],
|
|
738
|
-
summary: "OpenCode Zen · MiniMax 主力模型 · Chat Completions 接口。",
|
|
739
|
-
}),
|
|
740
|
-
openCodeModel({
|
|
741
|
-
channel: "zen",
|
|
742
|
-
model: "space-bunny-free",
|
|
743
|
-
label: "Space Bunny Free",
|
|
744
|
-
limits: {
|
|
745
|
-
contextWindow: 1000000,
|
|
746
|
-
maxInputTokens: 128000,
|
|
747
|
-
maxOutputTokens: 8192,
|
|
748
|
-
},
|
|
749
|
-
vision: true,
|
|
750
|
-
reasoningEfforts: [
|
|
751
|
-
"none",
|
|
752
|
-
"minimal",
|
|
753
|
-
"low",
|
|
754
|
-
"medium",
|
|
755
|
-
"high",
|
|
756
|
-
"xhigh",
|
|
757
|
-
"max",
|
|
758
|
-
],
|
|
759
|
-
reasoningEffort: "low",
|
|
760
|
-
summary:
|
|
761
|
-
"OpenCode Zen · 当前限时免费 · Chat Completions 接口。参考 OpenRouter Space Bunny Alpha 规格:1M 上下文、最高 524K 输出,支持图像/视频、推理、工具和 JSON;其匿名第三方提供方可能保留提示和回答。LuckyTri 默认输入 128K、输出 8K、低推理;当前图片链路可用,视频链路未支持。Zen 路由能力与数据政策可能不同。",
|
|
762
|
-
}),
|
|
763
|
-
{
|
|
764
|
-
id: "custom",
|
|
765
|
-
vendor: "自定义",
|
|
766
|
-
label: "自定义兼容接口",
|
|
767
|
-
summary: "OpenAI 兼容接口。上下文先按 128K 填,思考档可按供应商再改。",
|
|
768
|
-
provider: "custom",
|
|
769
|
-
baseUrl: "",
|
|
770
|
-
model: "",
|
|
771
|
-
...limits(128000, 8192),
|
|
772
|
-
embedding: false,
|
|
773
|
-
embeddingModel: "",
|
|
774
|
-
timeoutMs: 90000,
|
|
775
|
-
system: true,
|
|
776
|
-
json: true,
|
|
777
|
-
tools: false,
|
|
778
|
-
vision: false,
|
|
779
|
-
thinkingStyle: "openai",
|
|
780
|
-
tokenField: "max_tokens",
|
|
781
|
-
reasoningEfforts: [
|
|
782
|
-
"none",
|
|
783
|
-
"minimal",
|
|
784
|
-
"low",
|
|
785
|
-
"medium",
|
|
786
|
-
"high",
|
|
787
|
-
"xhigh",
|
|
788
|
-
"max",
|
|
789
|
-
],
|
|
790
|
-
reasoningEffort: "none",
|
|
791
|
-
temperature: 0.85,
|
|
792
|
-
topP: 1,
|
|
793
|
-
},
|
|
794
|
-
{
|
|
795
|
-
id: "openrouter",
|
|
796
|
-
vendor: "OpenRouter",
|
|
797
|
-
label: "OpenRouter · 自选模型",
|
|
798
|
-
summary:
|
|
799
|
-
"已填好 OpenRouter API 地址。请自行填写模型 ID、API Key,并按所选模型设置上下文、输出和能力参数。",
|
|
800
|
-
provider: "openrouter",
|
|
801
|
-
baseUrl: OPENROUTER,
|
|
802
|
-
model: "",
|
|
803
|
-
...limits(128000, 8192),
|
|
804
|
-
embedding: false,
|
|
805
|
-
embeddingModel: "",
|
|
806
|
-
timeoutMs: 90000,
|
|
807
|
-
system: true,
|
|
808
|
-
json: true,
|
|
809
|
-
tools: false,
|
|
810
|
-
vision: false,
|
|
811
|
-
thinkingStyle: "openai",
|
|
812
|
-
tokenField: "max_tokens",
|
|
813
|
-
reasoningEfforts: [
|
|
814
|
-
"none",
|
|
815
|
-
"minimal",
|
|
816
|
-
"low",
|
|
817
|
-
"medium",
|
|
818
|
-
"high",
|
|
819
|
-
"xhigh",
|
|
820
|
-
"max",
|
|
821
|
-
],
|
|
822
|
-
reasoningEffort: "none",
|
|
823
|
-
temperature: 0.85,
|
|
824
|
-
topP: 1,
|
|
825
|
-
},
|
|
826
|
-
];
|
|
827
|
-
|
|
828
|
-
export const MODEL_PRESETS = {
|
|
829
|
-
custom: { label: "自定义兼容接口", baseUrl: "", model: "" },
|
|
830
|
-
deepseek: {
|
|
831
|
-
label: "DeepSeek",
|
|
832
|
-
baseUrl: "https://api.deepseek.com",
|
|
833
|
-
model: "deepseek-flash",
|
|
834
|
-
},
|
|
835
|
-
openai: {
|
|
836
|
-
label: "OpenAI",
|
|
837
|
-
baseUrl: OPENAI,
|
|
838
|
-
model: "gpt-6-astra",
|
|
839
|
-
},
|
|
840
|
-
bedrock: {
|
|
841
|
-
label: "亚马逊 Bedrock",
|
|
842
|
-
baseUrl: BEDROCK,
|
|
843
|
-
model: "us.openai.gpt-6-astra",
|
|
844
|
-
},
|
|
845
|
-
qwen: {
|
|
846
|
-
label: "通义千问",
|
|
847
|
-
baseUrl: "https://dashscope.aliyuncs.com/compatible-mode/v1",
|
|
848
|
-
model: "qwen3.8-max",
|
|
849
|
-
},
|
|
850
|
-
moonshot: {
|
|
851
|
-
label: "Kimi",
|
|
852
|
-
baseUrl: "https://api.moonshot.cn/v1",
|
|
853
|
-
model: "kimi-k3",
|
|
854
|
-
},
|
|
855
|
-
kimi: {
|
|
856
|
-
label: "Kimi",
|
|
857
|
-
baseUrl: "https://api.moonshot.cn/v1",
|
|
858
|
-
model: "kimi-k3",
|
|
859
|
-
},
|
|
860
|
-
zhipu: {
|
|
861
|
-
label: "智谱 GLM",
|
|
862
|
-
baseUrl: "https://open.bigmodel.cn/api/paas/v4",
|
|
863
|
-
model: "glm-5.3",
|
|
864
|
-
},
|
|
865
|
-
glm: {
|
|
866
|
-
label: "智谱 GLM",
|
|
867
|
-
baseUrl: "https://open.bigmodel.cn/api/paas/v4",
|
|
868
|
-
model: "glm-5.3",
|
|
869
|
-
},
|
|
870
|
-
mimo: {
|
|
871
|
-
label: "小米 MiMo",
|
|
872
|
-
baseUrl: "https://api.xiaomimimo.com/v1",
|
|
873
|
-
model: "mimo-v2.6-pro",
|
|
874
|
-
},
|
|
875
|
-
siliconflow: {
|
|
876
|
-
label: "SiliconFlow",
|
|
877
|
-
baseUrl: "https://api.siliconflow.cn/v1",
|
|
878
|
-
model: "",
|
|
879
|
-
},
|
|
880
|
-
openrouter: {
|
|
881
|
-
label: "OpenRouter",
|
|
882
|
-
baseUrl: OPENROUTER,
|
|
883
|
-
model: "",
|
|
884
|
-
},
|
|
885
|
-
"volcengine-coding-plan": {
|
|
886
|
-
label: "火山方舟 Coding Plan",
|
|
887
|
-
baseUrl: VOLCENGINE_CODING_PLAN,
|
|
888
|
-
model: "ark-code-latest",
|
|
889
|
-
},
|
|
890
|
-
};
|
|
891
|
-
|
|
892
|
-
export const REASONING_EFFORTS = [
|
|
893
|
-
{ id: "none", label: "关闭" },
|
|
894
|
-
{ id: "minimal", label: "极低" },
|
|
895
|
-
{ id: "low", label: "低" },
|
|
896
|
-
{ id: "medium", label: "中" },
|
|
897
|
-
{ id: "high", label: "高" },
|
|
898
|
-
{ id: "xhigh", label: "极高" },
|
|
899
|
-
{ id: "max", label: "最深" },
|
|
900
|
-
];
|
|
1
|
+
// Checked against vendor API docs on 2026-09-23.
|
|
2
|
+
// maxOutputTokens is the published output ceiling and maxInputTokens is what
|
|
3
|
+
// the window leaves after it, so every preset passes validateModel as is.
|
|
4
|
+
|
|
5
|
+
function limits(contextWindow, maxOutputTokens) {
|
|
6
|
+
return {
|
|
7
|
+
contextWindow,
|
|
8
|
+
maxOutputTokens,
|
|
9
|
+
maxInputTokens: contextWindow - maxOutputTokens,
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// OpenAI and Bedrock bill the whole GPT request at the long-context rate once
|
|
14
|
+
// input passes 272K tokens. The standard tier stops input there and keeps the
|
|
15
|
+
// full 128K output.
|
|
16
|
+
function gptWindows() {
|
|
17
|
+
const standard = {
|
|
18
|
+
contextWindow: 272000 + 128000,
|
|
19
|
+
maxInputTokens: 272000,
|
|
20
|
+
maxOutputTokens: 128000,
|
|
21
|
+
};
|
|
22
|
+
return {
|
|
23
|
+
...standard,
|
|
24
|
+
contextWindows: [
|
|
25
|
+
{ label: "标准(输入 ≤272K)", ...standard },
|
|
26
|
+
{ label: "百万(1.05M)", ...limits(1050000, 128000) },
|
|
27
|
+
],
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const shared = {
|
|
32
|
+
embedding: false,
|
|
33
|
+
embeddingModel: "",
|
|
34
|
+
timeoutMs: 120000,
|
|
35
|
+
system: true,
|
|
36
|
+
json: true,
|
|
37
|
+
tools: true,
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
const OPENAI = "https://api.openai.com/v1";
|
|
41
|
+
const BEDROCK = "https://bedrock-runtime.us-east-1.amazonaws.com/openai/v1";
|
|
42
|
+
const OPENROUTER = "https://openrouter.ai/api/v1";
|
|
43
|
+
const OPENCODE_GO = "https://opencode.ai/zen/go/v1";
|
|
44
|
+
const OPENCODE_ZEN = "https://opencode.ai/zen/v1";
|
|
45
|
+
const VOLCENGINE_CODING_PLAN =
|
|
46
|
+
"https://ark.cn-beijing.volces.com/api/coding/v3";
|
|
47
|
+
const GPT_EFFORTS = ["none", "low", "medium", "high", "xhigh", "max"];
|
|
48
|
+
const ASTRA_EFFORTS = ["low", "medium", "high", "xhigh", "max"];
|
|
49
|
+
|
|
50
|
+
function gpt(fields) {
|
|
51
|
+
return {
|
|
52
|
+
...gptWindows(),
|
|
53
|
+
...shared,
|
|
54
|
+
vision: true,
|
|
55
|
+
thinkingStyle: "openai",
|
|
56
|
+
tokenField: "max_completion_tokens",
|
|
57
|
+
reasoningEfforts: GPT_EFFORTS,
|
|
58
|
+
reasoningEffort: "medium",
|
|
59
|
+
temperature: 1,
|
|
60
|
+
topP: 1,
|
|
61
|
+
...fields,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
function openRouterGpt(fields) {
|
|
66
|
+
const profile = gpt({
|
|
67
|
+
...fields,
|
|
68
|
+
provider: "openrouter",
|
|
69
|
+
baseUrl: OPENROUTER,
|
|
70
|
+
contextWindow: 1050000,
|
|
71
|
+
maxInputTokens: 922000,
|
|
72
|
+
maxOutputTokens: 128000,
|
|
73
|
+
});
|
|
74
|
+
delete profile.contextWindows;
|
|
75
|
+
return profile;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
function openCodeModel({
|
|
79
|
+
channel,
|
|
80
|
+
model,
|
|
81
|
+
label,
|
|
82
|
+
protocol = "chat",
|
|
83
|
+
summary,
|
|
84
|
+
vision = false,
|
|
85
|
+
reasoningEfforts,
|
|
86
|
+
reasoningEffort = "none",
|
|
87
|
+
limits: modelLimits = limits(128000, 8192),
|
|
88
|
+
temperature = 0.85,
|
|
89
|
+
topP = 1,
|
|
90
|
+
}) {
|
|
91
|
+
const isGo = channel === "go";
|
|
92
|
+
const anthropic = protocol === "anthropic";
|
|
93
|
+
return {
|
|
94
|
+
id: `opencode-${channel}-${model}`,
|
|
95
|
+
vendor: isGo ? "OpenCode Go" : "OpenCode Zen",
|
|
96
|
+
label,
|
|
97
|
+
summary,
|
|
98
|
+
provider: isGo ? "opencode-go" : "opencode-zen",
|
|
99
|
+
baseUrl: isGo ? OPENCODE_GO : OPENCODE_ZEN,
|
|
100
|
+
model,
|
|
101
|
+
apiProtocol: protocol,
|
|
102
|
+
...modelLimits,
|
|
103
|
+
...shared,
|
|
104
|
+
vision,
|
|
105
|
+
thinkingStyle: anthropic ? "anthropic" : "openai",
|
|
106
|
+
tokenField:
|
|
107
|
+
protocol === "responses" ? "max_completion_tokens" : "max_tokens",
|
|
108
|
+
reasoningEfforts:
|
|
109
|
+
reasoningEfforts ||
|
|
110
|
+
(anthropic
|
|
111
|
+
? ["none", "low", "medium", "high"]
|
|
112
|
+
: ["none", "low", "medium", "high"]),
|
|
113
|
+
reasoningEffort,
|
|
114
|
+
temperature,
|
|
115
|
+
topP,
|
|
116
|
+
timeoutMs: 120000,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
const OPENCODE_GO_MODELS = [
|
|
121
|
+
["grok-4.7", "Grok 4.7", "responses"],
|
|
122
|
+
["gpt-5.6-luna", "GPT-5.6 Luna", "responses", true],
|
|
123
|
+
["deepseek-v4-pro", "DeepSeek V4 Pro", "chat"],
|
|
124
|
+
["glm-5.3-flash", "GLM-5.3 Flash", "chat", true],
|
|
125
|
+
["kimi-k3", "Kimi K3", "chat"],
|
|
126
|
+
["minimax-m3", "MiniMax M3", "anthropic"],
|
|
127
|
+
["qwen3.8-max", "Qwen3.8 Max", "anthropic", true],
|
|
128
|
+
].map(([model, label, protocol, vision]) =>
|
|
129
|
+
openCodeModel({
|
|
130
|
+
channel: "go",
|
|
131
|
+
model,
|
|
132
|
+
label,
|
|
133
|
+
protocol,
|
|
134
|
+
vision: !!vision,
|
|
135
|
+
summary: `OpenCode Go · ${model} · ${protocol === "responses" ? "Responses" : protocol === "anthropic" ? "Messages" : "Chat Completions"} 接口。默认上下文和输出预算为保守起始值,可按账户实际模型上限调整。`,
|
|
136
|
+
}),
|
|
137
|
+
);
|
|
138
|
+
|
|
139
|
+
// Volcengine's Coding Plan catalog is intentionally separate from its normal
|
|
140
|
+
// inference API: only the /api/coding/v3 endpoint consumes Coding Plan quota.
|
|
141
|
+
function codingPlanModel({
|
|
142
|
+
model,
|
|
143
|
+
label,
|
|
144
|
+
context,
|
|
145
|
+
output,
|
|
146
|
+
vision = false,
|
|
147
|
+
summary = "",
|
|
148
|
+
}) {
|
|
149
|
+
// Kimi K2.8 Preview advertises a 1M output ceiling. Reserve a practical
|
|
150
|
+
// 64K response budget here so the nearly 1M input window remains usable by
|
|
151
|
+
// LuckyTri; model-stage output limits are smaller for ordinary conversations.
|
|
152
|
+
const maxOutputTokens = Math.min(
|
|
153
|
+
output,
|
|
154
|
+
model === "kimi-k2.8-preview" ? 65536 : output,
|
|
155
|
+
);
|
|
156
|
+
const contextWindow = context;
|
|
157
|
+
return {
|
|
158
|
+
id: `volcengine-coding-plan-${model}`,
|
|
159
|
+
vendor: "火山方舟 Coding Plan",
|
|
160
|
+
label,
|
|
161
|
+
summary:
|
|
162
|
+
summary ||
|
|
163
|
+
`Coding Plan 专属 Responses 接口 · 上下文 ${context.toLocaleString("en-US")} · 官方最大输出 ${output.toLocaleString("en-US")}${vision ? " · 支持图片理解" : " · 文本模型"}。默认中等推理;Kimi K2.8 Preview 在 LuckyTri 中预留 64K 输出预算以保留长上下文。`,
|
|
164
|
+
provider: "volcengine-coding-plan",
|
|
165
|
+
baseUrl: VOLCENGINE_CODING_PLAN,
|
|
166
|
+
model,
|
|
167
|
+
apiProtocol: "responses",
|
|
168
|
+
...limits(contextWindow, maxOutputTokens),
|
|
169
|
+
...shared,
|
|
170
|
+
vision,
|
|
171
|
+
thinkingStyle: "volcengine",
|
|
172
|
+
tokenField: "max_completion_tokens",
|
|
173
|
+
reasoningEfforts: ["none", "minimal", "low", "medium", "high"],
|
|
174
|
+
reasoningEffort: "medium",
|
|
175
|
+
// Reasoning models may reject sampling parameters. The Responses API uses
|
|
176
|
+
// reasoning.effort; the "none" choice maps to minimal reasoning.
|
|
177
|
+
omitSampling: true,
|
|
178
|
+
temperature: 1,
|
|
179
|
+
topP: 1,
|
|
180
|
+
timeoutMs: 120000,
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
const VOLCENGINE_CODING_PLAN_MODELS = [
|
|
185
|
+
codingPlanModel({
|
|
186
|
+
model: "ark-code-latest",
|
|
187
|
+
label: "方舟自动路由(ark-code-latest)",
|
|
188
|
+
context: 256000,
|
|
189
|
+
output: 32768,
|
|
190
|
+
vision: true,
|
|
191
|
+
summary:
|
|
192
|
+
"控制台管理的动态模型入口;实际使用哪一个模型由 Coding Plan 控制台选择,切换通常数分钟后生效。支持图片理解。",
|
|
193
|
+
}),
|
|
194
|
+
codingPlanModel({
|
|
195
|
+
model: "doubao-seed-evolving",
|
|
196
|
+
label: "Doubao Seed Evolving",
|
|
197
|
+
context: 1024000,
|
|
198
|
+
output: 262144,
|
|
199
|
+
vision: true,
|
|
200
|
+
}),
|
|
201
|
+
codingPlanModel({
|
|
202
|
+
model: "doubao-seed-2.1-pro",
|
|
203
|
+
label: "Doubao Seed 2.1 Pro",
|
|
204
|
+
context: 1024000,
|
|
205
|
+
output: 262144,
|
|
206
|
+
vision: true,
|
|
207
|
+
}),
|
|
208
|
+
codingPlanModel({
|
|
209
|
+
model: "doubao-seed-2.1-lite",
|
|
210
|
+
label: "Doubao Seed 2.1 Lite",
|
|
211
|
+
context: 1024000,
|
|
212
|
+
output: 256000,
|
|
213
|
+
vision: true,
|
|
214
|
+
}),
|
|
215
|
+
codingPlanModel({
|
|
216
|
+
model: "doubao-seed-2.0-mini",
|
|
217
|
+
label: "Doubao Seed 2.0 Mini",
|
|
218
|
+
context: 256000,
|
|
219
|
+
output: 128000,
|
|
220
|
+
vision: true,
|
|
221
|
+
}),
|
|
222
|
+
codingPlanModel({
|
|
223
|
+
model: "minimax-m3",
|
|
224
|
+
label: "MiniMax M3",
|
|
225
|
+
context: 1024000,
|
|
226
|
+
output: 131072,
|
|
227
|
+
vision: true,
|
|
228
|
+
}),
|
|
229
|
+
codingPlanModel({
|
|
230
|
+
model: "glm-5.3",
|
|
231
|
+
label: "GLM 5.3",
|
|
232
|
+
context: 1024000,
|
|
233
|
+
output: 131072,
|
|
234
|
+
}),
|
|
235
|
+
codingPlanModel({
|
|
236
|
+
model: "glm-latest",
|
|
237
|
+
label: "GLM 最新别名(glm-latest)",
|
|
238
|
+
context: 1024000,
|
|
239
|
+
output: 131072,
|
|
240
|
+
}),
|
|
241
|
+
codingPlanModel({
|
|
242
|
+
model: "glm-5.3-flash",
|
|
243
|
+
label: "GLM 5.3 Flash",
|
|
244
|
+
context: 1024000,
|
|
245
|
+
output: 131072,
|
|
246
|
+
vision: true,
|
|
247
|
+
}),
|
|
248
|
+
codingPlanModel({
|
|
249
|
+
model: "deepseek-v4.1-flash",
|
|
250
|
+
label: "DeepSeek V4.1 Flash",
|
|
251
|
+
context: 1024000,
|
|
252
|
+
output: 393216,
|
|
253
|
+
vision: true,
|
|
254
|
+
}),
|
|
255
|
+
codingPlanModel({
|
|
256
|
+
model: "deepseek-v4-flash",
|
|
257
|
+
label: "DeepSeek V4 Flash",
|
|
258
|
+
context: 1024000,
|
|
259
|
+
output: 393216,
|
|
260
|
+
}),
|
|
261
|
+
codingPlanModel({
|
|
262
|
+
model: "deepseek-v4-pro",
|
|
263
|
+
label: "DeepSeek V4 Pro",
|
|
264
|
+
context: 1024000,
|
|
265
|
+
output: 393216,
|
|
266
|
+
}),
|
|
267
|
+
codingPlanModel({
|
|
268
|
+
model: "kimi-k2.7-code",
|
|
269
|
+
label: "Kimi K2.7 Code",
|
|
270
|
+
context: 256000,
|
|
271
|
+
output: 32768,
|
|
272
|
+
vision: true,
|
|
273
|
+
}),
|
|
274
|
+
codingPlanModel({
|
|
275
|
+
model: "kimi-k2.8-preview",
|
|
276
|
+
label: "Kimi K2.8 Preview",
|
|
277
|
+
context: 1024000,
|
|
278
|
+
output: 1024000,
|
|
279
|
+
vision: true,
|
|
280
|
+
}),
|
|
281
|
+
codingPlanModel({
|
|
282
|
+
model: "kimi-k3",
|
|
283
|
+
label: "Kimi K3",
|
|
284
|
+
context: 1024000,
|
|
285
|
+
output: 131072,
|
|
286
|
+
vision: true,
|
|
287
|
+
}),
|
|
288
|
+
];
|
|
289
|
+
|
|
290
|
+
export const EFFORT_LABELS = {
|
|
291
|
+
none: "关闭",
|
|
292
|
+
minimal: "极低",
|
|
293
|
+
low: "低",
|
|
294
|
+
medium: "中",
|
|
295
|
+
high: "高",
|
|
296
|
+
xhigh: "极高",
|
|
297
|
+
max: "最深",
|
|
298
|
+
};
|
|
299
|
+
|
|
300
|
+
export const MODEL_CATALOG = [
|
|
301
|
+
...VOLCENGINE_CODING_PLAN_MODELS,
|
|
302
|
+
{
|
|
303
|
+
id: "deepseek-flash",
|
|
304
|
+
vendor: "DeepSeek",
|
|
305
|
+
label: "DeepSeek V4.1 Flash",
|
|
306
|
+
summary:
|
|
307
|
+
"当前主力。思考默认开启(high),可关闭;支持看图。1M 内同一价格,没有分档。",
|
|
308
|
+
provider: "deepseek",
|
|
309
|
+
baseUrl: "https://api.deepseek.com",
|
|
310
|
+
model: "deepseek-flash",
|
|
311
|
+
...limits(1000000, 393216),
|
|
312
|
+
...shared,
|
|
313
|
+
vision: true,
|
|
314
|
+
thinkingStyle: "deepseek",
|
|
315
|
+
tokenField: "max_tokens",
|
|
316
|
+
reasoningEfforts: ["none", "low", "high", "max"],
|
|
317
|
+
reasoningEffort: "high",
|
|
318
|
+
temperature: 1,
|
|
319
|
+
topP: 1,
|
|
320
|
+
},
|
|
321
|
+
{
|
|
322
|
+
id: "deepseek-v4-pro",
|
|
323
|
+
vendor: "DeepSeek",
|
|
324
|
+
label: "DeepSeek V4 Pro",
|
|
325
|
+
summary:
|
|
326
|
+
"V4-Pro-0813。思考默认开启(high),可关闭;仅文本。1M 内同一价格,没有分档。",
|
|
327
|
+
provider: "deepseek",
|
|
328
|
+
baseUrl: "https://api.deepseek.com",
|
|
329
|
+
model: "deepseek-v4-pro",
|
|
330
|
+
...limits(1000000, 393216),
|
|
331
|
+
...shared,
|
|
332
|
+
vision: false,
|
|
333
|
+
thinkingStyle: "deepseek",
|
|
334
|
+
tokenField: "max_tokens",
|
|
335
|
+
reasoningEfforts: ["none", "low", "high", "max"],
|
|
336
|
+
reasoningEffort: "high",
|
|
337
|
+
temperature: 1,
|
|
338
|
+
topP: 1,
|
|
339
|
+
},
|
|
340
|
+
{
|
|
341
|
+
id: "mimo-v2.6-pro",
|
|
342
|
+
vendor: "小米 MiMo",
|
|
343
|
+
label: "MiMo V2.6 Pro",
|
|
344
|
+
summary:
|
|
345
|
+
"旗舰。思考默认开启,可关闭;支持图片、视频、音频输入。1M 内同一价格,没有分档。",
|
|
346
|
+
provider: "mimo",
|
|
347
|
+
baseUrl: "https://api.xiaomimimo.com/v1",
|
|
348
|
+
model: "mimo-v2.6-pro",
|
|
349
|
+
...limits(1048576, 131072),
|
|
350
|
+
...shared,
|
|
351
|
+
vision: true,
|
|
352
|
+
thinkingStyle: "mimo",
|
|
353
|
+
tokenField: "max_completion_tokens",
|
|
354
|
+
reasoningEfforts: ["none", "high"],
|
|
355
|
+
reasoningEffort: "high",
|
|
356
|
+
temperature: 1,
|
|
357
|
+
topP: 0.95,
|
|
358
|
+
},
|
|
359
|
+
{
|
|
360
|
+
id: "mimo-v2.6-flash",
|
|
361
|
+
vendor: "小米 MiMo",
|
|
362
|
+
label: "MiMo V2.6 Flash",
|
|
363
|
+
summary:
|
|
364
|
+
"高频调用。思考默认开启,可关闭;支持图片、视频、音频输入。1M 内同一价格,没有分档。",
|
|
365
|
+
provider: "mimo",
|
|
366
|
+
baseUrl: "https://api.xiaomimimo.com/v1",
|
|
367
|
+
model: "mimo-v2.6-flash",
|
|
368
|
+
...limits(1048576, 131072),
|
|
369
|
+
...shared,
|
|
370
|
+
vision: true,
|
|
371
|
+
thinkingStyle: "mimo",
|
|
372
|
+
tokenField: "max_completion_tokens",
|
|
373
|
+
reasoningEfforts: ["none", "high"],
|
|
374
|
+
reasoningEffort: "high",
|
|
375
|
+
temperature: 1,
|
|
376
|
+
topP: 0.95,
|
|
377
|
+
},
|
|
378
|
+
{
|
|
379
|
+
id: "glm-5.3",
|
|
380
|
+
vendor: "智谱 GLM",
|
|
381
|
+
label: "GLM-5.3",
|
|
382
|
+
summary: "旗舰。思考不能关闭,默认 max;仅文本。1M 内同一价格,没有分档。",
|
|
383
|
+
provider: "glm",
|
|
384
|
+
baseUrl: "https://open.bigmodel.cn/api/paas/v4",
|
|
385
|
+
model: "glm-5.3",
|
|
386
|
+
...limits(1000000, 131072),
|
|
387
|
+
...shared,
|
|
388
|
+
vision: false,
|
|
389
|
+
thinkingStyle: "glm",
|
|
390
|
+
tokenField: "max_tokens",
|
|
391
|
+
reasoningEfforts: ["low", "high", "max"],
|
|
392
|
+
reasoningEffort: "max",
|
|
393
|
+
temperature: 1,
|
|
394
|
+
topP: 0.95,
|
|
395
|
+
},
|
|
396
|
+
{
|
|
397
|
+
id: "glm-5.3-flash",
|
|
398
|
+
vendor: "智谱 GLM",
|
|
399
|
+
label: "GLM-5.3 Flash",
|
|
400
|
+
summary:
|
|
401
|
+
"原生多模态。思考不能关闭,默认 max;支持图片、视频。1M 内同一价格,没有分档。",
|
|
402
|
+
provider: "glm",
|
|
403
|
+
baseUrl: "https://open.bigmodel.cn/api/paas/v4",
|
|
404
|
+
model: "glm-5.3-flash",
|
|
405
|
+
...limits(1000000, 131072),
|
|
406
|
+
...shared,
|
|
407
|
+
vision: true,
|
|
408
|
+
thinkingStyle: "glm",
|
|
409
|
+
tokenField: "max_tokens",
|
|
410
|
+
reasoningEfforts: ["low", "high", "max"],
|
|
411
|
+
reasoningEffort: "max",
|
|
412
|
+
temperature: 1,
|
|
413
|
+
topP: 0.95,
|
|
414
|
+
},
|
|
415
|
+
{
|
|
416
|
+
id: "kimi-k3",
|
|
417
|
+
vendor: "Kimi",
|
|
418
|
+
label: "Kimi K3",
|
|
419
|
+
summary:
|
|
420
|
+
"旗舰。思考不能关闭,默认 max;支持看图。1M 内同一价格;输出和输入共用窗口,官方默认输出 128K。",
|
|
421
|
+
provider: "kimi",
|
|
422
|
+
baseUrl: "https://api.moonshot.cn/v1",
|
|
423
|
+
model: "kimi-k3",
|
|
424
|
+
...limits(1048576, 131072),
|
|
425
|
+
...shared,
|
|
426
|
+
vision: true,
|
|
427
|
+
thinkingStyle: "kimi-effort",
|
|
428
|
+
tokenField: "max_completion_tokens",
|
|
429
|
+
omitSampling: true,
|
|
430
|
+
reasoningEfforts: ["low", "high", "max"],
|
|
431
|
+
reasoningEffort: "max",
|
|
432
|
+
temperature: 1,
|
|
433
|
+
topP: 0.95,
|
|
434
|
+
},
|
|
435
|
+
{
|
|
436
|
+
id: "kimi-k2.6",
|
|
437
|
+
vendor: "Kimi",
|
|
438
|
+
label: "Kimi K2.6",
|
|
439
|
+
summary:
|
|
440
|
+
"通用模型。思考默认开启,可关闭;支持看图。输出和输入共用 256K 窗口,官方默认输出 32K。",
|
|
441
|
+
provider: "kimi",
|
|
442
|
+
baseUrl: "https://api.moonshot.cn/v1",
|
|
443
|
+
model: "kimi-k2.6",
|
|
444
|
+
...limits(262144, 32768),
|
|
445
|
+
...shared,
|
|
446
|
+
vision: true,
|
|
447
|
+
thinkingStyle: "kimi-toggle",
|
|
448
|
+
tokenField: "max_completion_tokens",
|
|
449
|
+
omitSampling: true,
|
|
450
|
+
reasoningEfforts: ["none", "high"],
|
|
451
|
+
reasoningEffort: "high",
|
|
452
|
+
temperature: 1,
|
|
453
|
+
topP: 0.95,
|
|
454
|
+
},
|
|
455
|
+
gpt({
|
|
456
|
+
id: "gpt-6-astra",
|
|
457
|
+
vendor: "OpenAI",
|
|
458
|
+
label: "GPT-6 Astra",
|
|
459
|
+
summary:
|
|
460
|
+
"最强旗舰。思考不能关闭,官方未写默认档,预填 medium;支持看图。输入超过 272K 整单按长上下文计价。",
|
|
461
|
+
provider: "openai",
|
|
462
|
+
baseUrl: OPENAI,
|
|
463
|
+
model: "gpt-6-astra",
|
|
464
|
+
reasoningEfforts: ASTRA_EFFORTS,
|
|
465
|
+
}),
|
|
466
|
+
gpt({
|
|
467
|
+
id: "gpt-6-sol",
|
|
468
|
+
vendor: "OpenAI",
|
|
469
|
+
label: "GPT-6 Sol",
|
|
470
|
+
summary:
|
|
471
|
+
"复杂编码与智能体。思考默认 medium,可关闭;支持看图。输入超过 272K 整单按长上下文计价。",
|
|
472
|
+
provider: "openai",
|
|
473
|
+
baseUrl: OPENAI,
|
|
474
|
+
model: "gpt-6-sol",
|
|
475
|
+
}),
|
|
476
|
+
gpt({
|
|
477
|
+
id: "gpt-6-luna",
|
|
478
|
+
vendor: "OpenAI",
|
|
479
|
+
label: "GPT-6 Luna",
|
|
480
|
+
summary:
|
|
481
|
+
"高频轻量。思考默认 medium,可关闭;支持看图。输入超过 272K 整单按长上下文计价。",
|
|
482
|
+
provider: "openai",
|
|
483
|
+
baseUrl: OPENAI,
|
|
484
|
+
model: "gpt-6-luna",
|
|
485
|
+
}),
|
|
486
|
+
openRouterGpt({
|
|
487
|
+
id: "openrouter-gpt-6-astra",
|
|
488
|
+
vendor: "OpenRouter",
|
|
489
|
+
label: "GPT-6 Astra",
|
|
490
|
+
summary:
|
|
491
|
+
"OpenRouter 路由 · openai/gpt-6-astra。1.05M 上下文、128K 最大输出;支持图片、结构化输出和工具调用。",
|
|
492
|
+
model: "openai/gpt-6-astra",
|
|
493
|
+
reasoningEfforts: ASTRA_EFFORTS,
|
|
494
|
+
}),
|
|
495
|
+
openRouterGpt({
|
|
496
|
+
id: "openrouter-gpt-6-sol",
|
|
497
|
+
vendor: "OpenRouter",
|
|
498
|
+
label: "GPT-6 Sol",
|
|
499
|
+
summary:
|
|
500
|
+
"OpenRouter 路由 · openai/gpt-6-sol。1.05M 上下文、128K 最大输出;支持图片、结构化输出和工具调用。",
|
|
501
|
+
model: "openai/gpt-6-sol",
|
|
502
|
+
}),
|
|
503
|
+
openRouterGpt({
|
|
504
|
+
id: "openrouter-gpt-6-luna",
|
|
505
|
+
vendor: "OpenRouter",
|
|
506
|
+
label: "GPT-6 Luna",
|
|
507
|
+
summary:
|
|
508
|
+
"OpenRouter 路由 · openai/gpt-6-luna。1.05M 上下文、128K 最大输出;支持图片、结构化输出和工具调用。",
|
|
509
|
+
model: "openai/gpt-6-luna",
|
|
510
|
+
}),
|
|
511
|
+
{
|
|
512
|
+
id: "openrouter-glm-5.3-flash",
|
|
513
|
+
vendor: "OpenRouter",
|
|
514
|
+
label: "GLM-5.3 Flash",
|
|
515
|
+
summary:
|
|
516
|
+
"OpenRouter 路由 · z-ai/glm-5.3-flash。1,310,720 上下文、131,072 最大输出;支持图片、结构化输出和工具调用。",
|
|
517
|
+
provider: "openrouter",
|
|
518
|
+
baseUrl: OPENROUTER,
|
|
519
|
+
model: "z-ai/glm-5.3-flash",
|
|
520
|
+
...limits(1310720, 131072),
|
|
521
|
+
...shared,
|
|
522
|
+
vision: true,
|
|
523
|
+
thinkingStyle: "openai",
|
|
524
|
+
tokenField: "max_tokens",
|
|
525
|
+
reasoningEfforts: ["low", "high", "max"],
|
|
526
|
+
reasoningEffort: "max",
|
|
527
|
+
temperature: 1,
|
|
528
|
+
topP: 0.95,
|
|
529
|
+
},
|
|
530
|
+
gpt({
|
|
531
|
+
id: "gpt-5.6-sol",
|
|
532
|
+
vendor: "OpenAI",
|
|
533
|
+
label: "GPT-5.6 Sol",
|
|
534
|
+
summary:
|
|
535
|
+
"上一代旗舰,别名 gpt-5.6。思考默认 medium,可关闭;支持看图。输入超过 272K 整单按长上下文计价。",
|
|
536
|
+
provider: "openai",
|
|
537
|
+
baseUrl: OPENAI,
|
|
538
|
+
model: "gpt-5.6-sol",
|
|
539
|
+
}),
|
|
540
|
+
gpt({
|
|
541
|
+
id: "gpt-5.6-terra",
|
|
542
|
+
vendor: "OpenAI",
|
|
543
|
+
label: "GPT-5.6 Terra",
|
|
544
|
+
summary:
|
|
545
|
+
"上一代均衡款。思考默认 medium,可关闭;支持看图。输入超过 272K 整单按长上下文计价。",
|
|
546
|
+
provider: "openai",
|
|
547
|
+
baseUrl: OPENAI,
|
|
548
|
+
model: "gpt-5.6-terra",
|
|
549
|
+
}),
|
|
550
|
+
gpt({
|
|
551
|
+
id: "gpt-5.6-luna",
|
|
552
|
+
vendor: "OpenAI",
|
|
553
|
+
label: "GPT-5.6 Luna",
|
|
554
|
+
summary:
|
|
555
|
+
"上一代高性价比。思考默认 medium,可关闭;支持看图。输入超过 272K 整单按长上下文计价。",
|
|
556
|
+
provider: "openai",
|
|
557
|
+
baseUrl: OPENAI,
|
|
558
|
+
model: "gpt-5.6-luna",
|
|
559
|
+
}),
|
|
560
|
+
{
|
|
561
|
+
id: "qwen3.8-max",
|
|
562
|
+
vendor: "通义千问",
|
|
563
|
+
label: "Qwen3.8 Max",
|
|
564
|
+
summary:
|
|
565
|
+
"旗舰,快照 qwen3.8-max-0902。思考默认开启(xhigh),可关闭;支持图片、视频。1M 内同一价格,没有分档。",
|
|
566
|
+
provider: "qwen",
|
|
567
|
+
baseUrl: "https://dashscope.aliyuncs.com/compatible-mode/v1",
|
|
568
|
+
model: "qwen3.8-max",
|
|
569
|
+
...limits(1000000, 131072),
|
|
570
|
+
...shared,
|
|
571
|
+
vision: true,
|
|
572
|
+
thinkingStyle: "qwen-effort",
|
|
573
|
+
tokenField: "max_completion_tokens",
|
|
574
|
+
omitSampling: true,
|
|
575
|
+
reasoningEfforts: ["none", "low", "medium", "xhigh"],
|
|
576
|
+
reasoningEffort: "xhigh",
|
|
577
|
+
temperature: 0.6,
|
|
578
|
+
topP: 0.95,
|
|
579
|
+
},
|
|
580
|
+
{
|
|
581
|
+
id: "qwen3.8-flash",
|
|
582
|
+
vendor: "通义千问",
|
|
583
|
+
label: "Qwen3.8 Flash",
|
|
584
|
+
summary:
|
|
585
|
+
"轻量。思考默认开启(xhigh),可关闭;支持图片、视频。1M 内同一价格,没有分档。",
|
|
586
|
+
provider: "qwen",
|
|
587
|
+
baseUrl: "https://dashscope.aliyuncs.com/compatible-mode/v1",
|
|
588
|
+
model: "qwen3.8-flash",
|
|
589
|
+
...limits(1000000, 131072),
|
|
590
|
+
...shared,
|
|
591
|
+
vision: true,
|
|
592
|
+
thinkingStyle: "qwen-effort",
|
|
593
|
+
tokenField: "max_completion_tokens",
|
|
594
|
+
omitSampling: true,
|
|
595
|
+
reasoningEfforts: ["none", "low", "medium", "xhigh"],
|
|
596
|
+
reasoningEffort: "xhigh",
|
|
597
|
+
temperature: 0.6,
|
|
598
|
+
topP: 0.95,
|
|
599
|
+
},
|
|
600
|
+
gpt({
|
|
601
|
+
id: "bedrock-gpt-6-astra",
|
|
602
|
+
vendor: "亚马逊 Bedrock",
|
|
603
|
+
label: "GPT-6 Astra",
|
|
604
|
+
summary:
|
|
605
|
+
"美国跨区推理。思考不能关闭,预填 medium;支持看图。runtime 不支持结构化输出,已关闭 JSON 输出。输入超过 272K 整单按长上下文计价。",
|
|
606
|
+
provider: "bedrock",
|
|
607
|
+
baseUrl: BEDROCK,
|
|
608
|
+
model: "us.openai.gpt-6-astra",
|
|
609
|
+
json: false,
|
|
610
|
+
reasoningEfforts: ASTRA_EFFORTS,
|
|
611
|
+
}),
|
|
612
|
+
gpt({
|
|
613
|
+
id: "bedrock-gpt-6-sol",
|
|
614
|
+
vendor: "亚马逊 Bedrock",
|
|
615
|
+
label: "GPT-6 Sol",
|
|
616
|
+
summary:
|
|
617
|
+
"AWS 模型卡尚未发布,模型 ID 取自 OpenAI 的 Bedrock 指南,JSON 输出先关闭。思考默认 medium,可关闭;支持看图。输入超过 272K 整单按长上下文计价。",
|
|
618
|
+
provider: "bedrock",
|
|
619
|
+
baseUrl: BEDROCK,
|
|
620
|
+
model: "us.openai.gpt-6-sol",
|
|
621
|
+
json: false,
|
|
622
|
+
}),
|
|
623
|
+
gpt({
|
|
624
|
+
id: "bedrock-gpt-6-luna",
|
|
625
|
+
vendor: "亚马逊 Bedrock",
|
|
626
|
+
label: "GPT-6 Luna",
|
|
627
|
+
summary:
|
|
628
|
+
"AWS 模型卡尚未发布,模型 ID 取自 OpenAI 的 Bedrock 指南,JSON 输出先关闭。思考默认 medium,可关闭;支持看图。输入超过 272K 整单按长上下文计价。",
|
|
629
|
+
provider: "bedrock",
|
|
630
|
+
baseUrl: BEDROCK,
|
|
631
|
+
model: "us.openai.gpt-6-luna",
|
|
632
|
+
json: false,
|
|
633
|
+
}),
|
|
634
|
+
...OPENCODE_GO_MODELS,
|
|
635
|
+
gpt({
|
|
636
|
+
id: "opencode-zen-gpt-6-astra",
|
|
637
|
+
vendor: "OpenCode Zen",
|
|
638
|
+
label: "GPT-6 Astra",
|
|
639
|
+
summary: "OpenCode Zen · GPT-6 系列旗舰 · Responses 接口。",
|
|
640
|
+
provider: "opencode-zen",
|
|
641
|
+
baseUrl: OPENCODE_ZEN,
|
|
642
|
+
model: "gpt-6-astra",
|
|
643
|
+
apiProtocol: "responses",
|
|
644
|
+
reasoningEfforts: ASTRA_EFFORTS,
|
|
645
|
+
}),
|
|
646
|
+
gpt({
|
|
647
|
+
id: "opencode-zen-gpt-6-sol",
|
|
648
|
+
vendor: "OpenCode Zen",
|
|
649
|
+
label: "GPT-6 Sol",
|
|
650
|
+
summary: "OpenCode Zen · GPT-6 均衡款 · Responses 接口。",
|
|
651
|
+
provider: "opencode-zen",
|
|
652
|
+
baseUrl: OPENCODE_ZEN,
|
|
653
|
+
model: "gpt-6-sol",
|
|
654
|
+
apiProtocol: "responses",
|
|
655
|
+
}),
|
|
656
|
+
gpt({
|
|
657
|
+
id: "opencode-zen-gpt-6-luna",
|
|
658
|
+
vendor: "OpenCode Zen",
|
|
659
|
+
label: "GPT-6 Luna",
|
|
660
|
+
summary: "OpenCode Zen · GPT-6 轻量款 · Responses 接口。",
|
|
661
|
+
provider: "opencode-zen",
|
|
662
|
+
baseUrl: OPENCODE_ZEN,
|
|
663
|
+
model: "gpt-6-luna",
|
|
664
|
+
apiProtocol: "responses",
|
|
665
|
+
}),
|
|
666
|
+
openCodeModel({
|
|
667
|
+
channel: "zen",
|
|
668
|
+
model: "deepseek-v4.1-flash",
|
|
669
|
+
label: "DeepSeek V4.1 Flash",
|
|
670
|
+
limits: limits(1000000, 393216),
|
|
671
|
+
reasoningEfforts: ["none", "low", "high", "max"],
|
|
672
|
+
reasoningEffort: "high",
|
|
673
|
+
summary: "OpenCode Zen · 快速推理 · Chat Completions 接口。",
|
|
674
|
+
}),
|
|
675
|
+
openCodeModel({
|
|
676
|
+
channel: "zen",
|
|
677
|
+
model: "deepseek-v4-pro",
|
|
678
|
+
label: "DeepSeek V4 Pro",
|
|
679
|
+
limits: limits(1000000, 393216),
|
|
680
|
+
reasoningEfforts: ["none", "low", "high", "max"],
|
|
681
|
+
reasoningEffort: "high",
|
|
682
|
+
summary: "OpenCode Zen · DeepSeek V4 旗舰 · Chat Completions 接口。",
|
|
683
|
+
}),
|
|
684
|
+
openCodeModel({
|
|
685
|
+
channel: "zen",
|
|
686
|
+
model: "deepseek-v4-flash",
|
|
687
|
+
label: "DeepSeek V4 Flash",
|
|
688
|
+
limits: limits(1000000, 393216),
|
|
689
|
+
reasoningEfforts: ["none", "low", "high", "max"],
|
|
690
|
+
reasoningEffort: "high",
|
|
691
|
+
summary: "OpenCode Zen · 轻量高速 · Chat Completions 接口。",
|
|
692
|
+
}),
|
|
693
|
+
openCodeModel({
|
|
694
|
+
channel: "zen",
|
|
695
|
+
model: "glm-5.3-flash",
|
|
696
|
+
label: "GLM-5.3 Flash",
|
|
697
|
+
vision: true,
|
|
698
|
+
limits: limits(1000000, 131072),
|
|
699
|
+
reasoningEfforts: ["none", "low", "high", "max"],
|
|
700
|
+
reasoningEffort: "high",
|
|
701
|
+
summary: "OpenCode Zen · 智谱轻量多模态 · Chat Completions 接口。",
|
|
702
|
+
}),
|
|
703
|
+
openCodeModel({
|
|
704
|
+
channel: "zen",
|
|
705
|
+
model: "glm-5.3",
|
|
706
|
+
label: "GLM-5.3",
|
|
707
|
+
limits: limits(1000000, 131072),
|
|
708
|
+
reasoningEfforts: ["none", "low", "high", "max"],
|
|
709
|
+
reasoningEffort: "high",
|
|
710
|
+
summary: "OpenCode Zen · 智谱旗舰 · Chat Completions 接口。",
|
|
711
|
+
}),
|
|
712
|
+
openCodeModel({
|
|
713
|
+
channel: "zen",
|
|
714
|
+
model: "kimi-k3",
|
|
715
|
+
label: "Kimi K3",
|
|
716
|
+
vision: true,
|
|
717
|
+
limits: limits(1048576, 131072),
|
|
718
|
+
reasoningEfforts: ["none", "low", "high", "max"],
|
|
719
|
+
reasoningEffort: "high",
|
|
720
|
+
summary: "OpenCode Zen · Kimi 旗舰 · Chat Completions 接口。",
|
|
721
|
+
}),
|
|
722
|
+
// Qwen3.8 Max is only served through Go; Zen offers Qwen3.8 Flash.
|
|
723
|
+
openCodeModel({
|
|
724
|
+
channel: "zen",
|
|
725
|
+
model: "qwen3.8-flash",
|
|
726
|
+
label: "Qwen3.8 Flash",
|
|
727
|
+
protocol: "anthropic",
|
|
728
|
+
vision: true,
|
|
729
|
+
limits: limits(1000000, 131072),
|
|
730
|
+
summary: "OpenCode Zen · 通义千问轻量多模态 · Anthropic Messages 接口。",
|
|
731
|
+
}),
|
|
732
|
+
openCodeModel({
|
|
733
|
+
channel: "zen",
|
|
734
|
+
model: "minimax-m3",
|
|
735
|
+
label: "MiniMax M3",
|
|
736
|
+
limits: limits(128000, 8192),
|
|
737
|
+
reasoningEfforts: ["none", "low", "medium", "high"],
|
|
738
|
+
summary: "OpenCode Zen · MiniMax 主力模型 · Chat Completions 接口。",
|
|
739
|
+
}),
|
|
740
|
+
openCodeModel({
|
|
741
|
+
channel: "zen",
|
|
742
|
+
model: "space-bunny-free",
|
|
743
|
+
label: "Space Bunny Free",
|
|
744
|
+
limits: {
|
|
745
|
+
contextWindow: 1000000,
|
|
746
|
+
maxInputTokens: 128000,
|
|
747
|
+
maxOutputTokens: 8192,
|
|
748
|
+
},
|
|
749
|
+
vision: true,
|
|
750
|
+
reasoningEfforts: [
|
|
751
|
+
"none",
|
|
752
|
+
"minimal",
|
|
753
|
+
"low",
|
|
754
|
+
"medium",
|
|
755
|
+
"high",
|
|
756
|
+
"xhigh",
|
|
757
|
+
"max",
|
|
758
|
+
],
|
|
759
|
+
reasoningEffort: "low",
|
|
760
|
+
summary:
|
|
761
|
+
"OpenCode Zen · 当前限时免费 · Chat Completions 接口。参考 OpenRouter Space Bunny Alpha 规格:1M 上下文、最高 524K 输出,支持图像/视频、推理、工具和 JSON;其匿名第三方提供方可能保留提示和回答。LuckyTri 默认输入 128K、输出 8K、低推理;当前图片链路可用,视频链路未支持。Zen 路由能力与数据政策可能不同。",
|
|
762
|
+
}),
|
|
763
|
+
{
|
|
764
|
+
id: "custom",
|
|
765
|
+
vendor: "自定义",
|
|
766
|
+
label: "自定义兼容接口",
|
|
767
|
+
summary: "OpenAI 兼容接口。上下文先按 128K 填,思考档可按供应商再改。",
|
|
768
|
+
provider: "custom",
|
|
769
|
+
baseUrl: "",
|
|
770
|
+
model: "",
|
|
771
|
+
...limits(128000, 8192),
|
|
772
|
+
embedding: false,
|
|
773
|
+
embeddingModel: "",
|
|
774
|
+
timeoutMs: 90000,
|
|
775
|
+
system: true,
|
|
776
|
+
json: true,
|
|
777
|
+
tools: false,
|
|
778
|
+
vision: false,
|
|
779
|
+
thinkingStyle: "openai",
|
|
780
|
+
tokenField: "max_tokens",
|
|
781
|
+
reasoningEfforts: [
|
|
782
|
+
"none",
|
|
783
|
+
"minimal",
|
|
784
|
+
"low",
|
|
785
|
+
"medium",
|
|
786
|
+
"high",
|
|
787
|
+
"xhigh",
|
|
788
|
+
"max",
|
|
789
|
+
],
|
|
790
|
+
reasoningEffort: "none",
|
|
791
|
+
temperature: 0.85,
|
|
792
|
+
topP: 1,
|
|
793
|
+
},
|
|
794
|
+
{
|
|
795
|
+
id: "openrouter",
|
|
796
|
+
vendor: "OpenRouter",
|
|
797
|
+
label: "OpenRouter · 自选模型",
|
|
798
|
+
summary:
|
|
799
|
+
"已填好 OpenRouter API 地址。请自行填写模型 ID、API Key,并按所选模型设置上下文、输出和能力参数。",
|
|
800
|
+
provider: "openrouter",
|
|
801
|
+
baseUrl: OPENROUTER,
|
|
802
|
+
model: "",
|
|
803
|
+
...limits(128000, 8192),
|
|
804
|
+
embedding: false,
|
|
805
|
+
embeddingModel: "",
|
|
806
|
+
timeoutMs: 90000,
|
|
807
|
+
system: true,
|
|
808
|
+
json: true,
|
|
809
|
+
tools: false,
|
|
810
|
+
vision: false,
|
|
811
|
+
thinkingStyle: "openai",
|
|
812
|
+
tokenField: "max_tokens",
|
|
813
|
+
reasoningEfforts: [
|
|
814
|
+
"none",
|
|
815
|
+
"minimal",
|
|
816
|
+
"low",
|
|
817
|
+
"medium",
|
|
818
|
+
"high",
|
|
819
|
+
"xhigh",
|
|
820
|
+
"max",
|
|
821
|
+
],
|
|
822
|
+
reasoningEffort: "none",
|
|
823
|
+
temperature: 0.85,
|
|
824
|
+
topP: 1,
|
|
825
|
+
},
|
|
826
|
+
];
|
|
827
|
+
|
|
828
|
+
export const MODEL_PRESETS = {
|
|
829
|
+
custom: { label: "自定义兼容接口", baseUrl: "", model: "" },
|
|
830
|
+
deepseek: {
|
|
831
|
+
label: "DeepSeek",
|
|
832
|
+
baseUrl: "https://api.deepseek.com",
|
|
833
|
+
model: "deepseek-flash",
|
|
834
|
+
},
|
|
835
|
+
openai: {
|
|
836
|
+
label: "OpenAI",
|
|
837
|
+
baseUrl: OPENAI,
|
|
838
|
+
model: "gpt-6-astra",
|
|
839
|
+
},
|
|
840
|
+
bedrock: {
|
|
841
|
+
label: "亚马逊 Bedrock",
|
|
842
|
+
baseUrl: BEDROCK,
|
|
843
|
+
model: "us.openai.gpt-6-astra",
|
|
844
|
+
},
|
|
845
|
+
qwen: {
|
|
846
|
+
label: "通义千问",
|
|
847
|
+
baseUrl: "https://dashscope.aliyuncs.com/compatible-mode/v1",
|
|
848
|
+
model: "qwen3.8-max",
|
|
849
|
+
},
|
|
850
|
+
moonshot: {
|
|
851
|
+
label: "Kimi",
|
|
852
|
+
baseUrl: "https://api.moonshot.cn/v1",
|
|
853
|
+
model: "kimi-k3",
|
|
854
|
+
},
|
|
855
|
+
kimi: {
|
|
856
|
+
label: "Kimi",
|
|
857
|
+
baseUrl: "https://api.moonshot.cn/v1",
|
|
858
|
+
model: "kimi-k3",
|
|
859
|
+
},
|
|
860
|
+
zhipu: {
|
|
861
|
+
label: "智谱 GLM",
|
|
862
|
+
baseUrl: "https://open.bigmodel.cn/api/paas/v4",
|
|
863
|
+
model: "glm-5.3",
|
|
864
|
+
},
|
|
865
|
+
glm: {
|
|
866
|
+
label: "智谱 GLM",
|
|
867
|
+
baseUrl: "https://open.bigmodel.cn/api/paas/v4",
|
|
868
|
+
model: "glm-5.3",
|
|
869
|
+
},
|
|
870
|
+
mimo: {
|
|
871
|
+
label: "小米 MiMo",
|
|
872
|
+
baseUrl: "https://api.xiaomimimo.com/v1",
|
|
873
|
+
model: "mimo-v2.6-pro",
|
|
874
|
+
},
|
|
875
|
+
siliconflow: {
|
|
876
|
+
label: "SiliconFlow",
|
|
877
|
+
baseUrl: "https://api.siliconflow.cn/v1",
|
|
878
|
+
model: "",
|
|
879
|
+
},
|
|
880
|
+
openrouter: {
|
|
881
|
+
label: "OpenRouter",
|
|
882
|
+
baseUrl: OPENROUTER,
|
|
883
|
+
model: "",
|
|
884
|
+
},
|
|
885
|
+
"volcengine-coding-plan": {
|
|
886
|
+
label: "火山方舟 Coding Plan",
|
|
887
|
+
baseUrl: VOLCENGINE_CODING_PLAN,
|
|
888
|
+
model: "ark-code-latest",
|
|
889
|
+
},
|
|
890
|
+
};
|
|
891
|
+
|
|
892
|
+
export const REASONING_EFFORTS = [
|
|
893
|
+
{ id: "none", label: "关闭" },
|
|
894
|
+
{ id: "minimal", label: "极低" },
|
|
895
|
+
{ id: "low", label: "低" },
|
|
896
|
+
{ id: "medium", label: "中" },
|
|
897
|
+
{ id: "high", label: "高" },
|
|
898
|
+
{ id: "xhigh", label: "极高" },
|
|
899
|
+
{ id: "max", label: "最深" },
|
|
900
|
+
];
|