feat(admin): 面板暴露 contextWindow(可见可改)+ DocumentRef 语义注释同步
- 面板读写面与 maxTokens 逐处对齐:读 DTO 增 contextWindow(omitempty)、写请求 ContextWindow *int(缺失=保留、显式 0=未声明同义、负数 400)、回写 models.json;负数红线仍由 runtimeconfig.Group.Validate 唯一裁决,网关守卫只做「更早失败 + 面板可读字段名」。前端:类型 + 表单字段(提交前 /^\d+$/ 校验)+ 分组行角标 + Notice + 目录候选用早已解析却没人用的 contextLimit 预填。文案写明「重启后生效」(推导只在进程启动时算一次)。 - 顺手修既有红线违反:ProviderFields 87→76(抽 ApiKeyAndBudgetField)、LlmProviderForm 113→74(buildRequest 提为模块级纯函数)——本次碰过的文件里已无 >80 的函数,行为/文案逐字未变。 - DocumentRef 的 chars/truncated 注释从「抽取侧」改为「本回合注入侧」(全文长度只在 document-read 的 totalChars、extractTruncated 专指撞 8 MiB 安全上限);机械校验为空 ⇒ 代码零改动。 - 主会话独立验收:隔离 worktree Go 侧 build/vet + gateway/history 两包绿;主树 npx tsc --noEmit exit 0、npm run build 成功并 copy 到 internal/webui/dist;注释机械校验为空;变异由子代理复现(写路径不认该键 ⇒ 3 红;去掉网关负数守卫 ⇒ 400 变 500)。
This commit is contained in:
1 parent
3a01b4e236
commit
47e56ca13c
11 files changed
+355
-68
No files matched your search
@@ -67,6 +67,11 @@ type AdminLlmProvider struct {
|
||||
// 在最后一个 fallback 步骤回退到 LLM_FALLBACK_MAX_TOKENS,
|
||||
// 再回退到适配器默认值)。
|
||||
MaxTokens int `json:"maxTokens,omitempty"`
|
||||
// ContextWindow 是该分组声明的**模型上下文窗口**(token)。0(= 键被省略,
|
||||
// 与 MaxTokens 同形)表示未声明:运行时按回落窗口保守推导并记一条 WARN,
|
||||
// 只有声明了真实窗口才能吃到按窗口推导的上下文预算。它是 .env 侧
|
||||
// LLM_CONTEXT_WINDOW 的对偶(per-group 播种)。
|
||||
ContextWindow int `json:"contextWindow,omitempty"`
|
||||
// Reasoning 是该组的推理开关形状(裁决 03.4.2 / 08.4.1)。始终下发
|
||||
// (kind 可能为空串),使面板能把「未声明」当成一种明确状态回填。
|
||||
Reasoning *AdminLlmReasoning `json:"reasoning"`
|
||||
|
||||
Reference in new issue
Block a user