fix: make model validation token budget configurable

This commit is contained in:
chaochaoweb3
2026-07-02 15:48:44 +08:00
parent 5bfd7b2468
commit c1e4b1c9bf
9 changed files with 106 additions and 2 deletions
+11
View File
@@ -88,6 +88,17 @@ export const SETTINGS_REGISTRY: SettingDef[] = [
label: "Max Output Tokens",
min: 1,
},
{
key: "MODEL_VALIDATION_MAX_TOKENS",
group: "generation",
type: "number",
label: "Model Validation Max Tokens",
description:
"Token budget for model test requests. Increase for reasoning models that may emit thinking tokens first.",
min: 1,
max: 64000,
default: "1000",
},
// ── Access Control ───────────────────────────────────────────────
{
+4
View File
@@ -494,6 +494,10 @@
"MAX_OUTPUT_TOKENS": {
"label": "Max Output Tokens"
},
"MODEL_VALIDATION_MAX_TOKENS": {
"label": "Model Validation Max Tokens",
"description": "Token budget for model test requests. Increase for reasoning models that may emit thinking tokens first."
},
"ACCESS_CODE_LIST": {
"label": "Access Codes",
"description": "Comma-separated list. Users must enter one to chat. Empty = open access."
+4
View File
@@ -494,6 +494,10 @@
"MAX_OUTPUT_TOKENS": {
"label": "最大出力トークン数"
},
"MODEL_VALIDATION_MAX_TOKENS": {
"label": "モデル検証の最大トークン数",
"description": "モデルテストリクエストのトークン予算。推論モデルが先に思考トークンを出す場合は増やしてください。"
},
"ACCESS_CODE_LIST": {
"label": "アクセスコード",
"description": "カンマ区切りのリスト。チャットにはいずれかの入力が必要です。空 = オープンアクセス。"
+4
View File
@@ -494,6 +494,10 @@
"MAX_OUTPUT_TOKENS": {
"label": "最大輸出 token 數"
},
"MODEL_VALIDATION_MAX_TOKENS": {
"label": "模型驗證最大 token 數",
"description": "模型測試請求的 token 預算。推理模型可能先輸出思考 token,可適當調大。"
},
"ACCESS_CODE_LIST": {
"label": "存取碼",
"description": "以逗號分隔的清單。使用者需輸入其中之一才能聊天。留空 = 開放存取。"
+4
View File
@@ -494,6 +494,10 @@
"MAX_OUTPUT_TOKENS": {
"label": "最大输出 token 数"
},
"MODEL_VALIDATION_MAX_TOKENS": {
"label": "模型验证最大 token 数",
"description": "模型测试请求的 token 预算。推理模型可能先输出思考 token,可适当调大。"
},
"ACCESS_CODE_LIST": {
"label": "访问码",
"description": "以逗号分隔的列表。用户需输入其中之一才能聊天。留空 = 开放访问。"
+28
View File
@@ -0,0 +1,28 @@
export const DEFAULT_MODEL_VALIDATION_MAX_TOKENS = 1000
export const MAX_MODEL_VALIDATION_MAX_TOKENS = 64000
export function parseModelValidationMaxTokens(value: unknown): number | null {
if (value === undefined || value === null || value === "") return null
const numeric =
typeof value === "number" ? value : Number(String(value).trim())
if (
!Number.isFinite(numeric) ||
!Number.isInteger(numeric) ||
numeric < 1
) {
return null
}
return Math.min(numeric, MAX_MODEL_VALIDATION_MAX_TOKENS)
}
export function resolveModelValidationMaxTokens(...sources: unknown[]): number {
for (const source of sources) {
const parsed = parseModelValidationMaxTokens(source)
if (parsed !== null) return parsed
}
return DEFAULT_MODEL_VALIDATION_MAX_TOKENS
}