ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

LLMCase-V4 从策划文档到测试用例 - 第 8 章 dashboard:一站式工作台

LLMCase-V4 从策划文档到测试用例 - 第 8 章 dashboard:一站式工作台 第 8 章 dashboard一站式工作台本章目标理解前端工作台如何把三个后端服务编排成上传→生成→看结果→评估→治理的一站式流水线。学完你能回答七个视图怎么分组生成链为什么是前端驱动、关页为什么不断链了批次和血缘怎么管理GB 级产物怎么按需查看没有文档怎么对话式生成用例8.1 五组七视图按使用者流程组织dashboard 前端是vanilla JS 单页应用、无构建工具链内网部署零 node 依赖、改完刷新即生效——刻意取舍代价靠纪律补IIFE window 导出、固定加载序、发版 bump?v。信息架构按使用者流程分五组流程组视图干什么① 录入源文档上传 docx/xlsx → 看转换进度 → 编辑保存 md② 生成生成监控 / 对话生成全管线链编排主入口/ 引导式对话生成8.5③ 审阅工作台树实体→要点→用例一棵树 评估问题红标 大产物按需展开8.4④ 评估评估报告三段指标卡 看门狗扣分开关⑤ 治理样例库 / 日志few-shot 录入治理 / 四服务日志只读浏览器后端 dashboard 是薄 BFF数据面接口项目/批次/归档/文件/日志/产物查询/api/query/*自己出任务面转换/生成/评估的 POST由浏览器拿/config里的服务地址直连三服务——长任务不过代理BFF 不承载超时风险。8.2 生成链编排前端驱动 服务端兜底生成监控视图的新建生成触发的四阶段链实体→要点→用例→评估主驱动力是浏览器里的TaskHub 单例逐阶段驱动每运行 一个显式新批次create_session 循环 { 解析输入链批次 artifacts 优先回退项目最新文件 → POST 对应服务FormData 附 project_id/session_id → 轮询任务状态30min 探活窗、3 连错才判死 → 归档产物/api/archive/{stage}登记批次血缘 → 推进下一阶段链状态双登记localStorage 服务端 chains.json刷新可续接 } 链尾综合分 70 自动重评一次cap 1为什么前端驱动服务端编排器要处理状态持久化/恢复/并发——而浏览器态 localStorage用几十行就够且用户看得见每一步顶部胶囊的阶段间阶段内复合百分比就来自前端的pillPct纯函数订阅任务进度事件。代价与根治链曾是纯浏览器态关浏览器就断服务端单任务照跑但后续阶段无人续接——两次真实事故孤儿链、用例完成后关页 4 小时停摆之后2026-09-20 上线服务端链推进openspec changechain-advance-server-side登记前端起链/重跑/恢复时_persist镜像 fire-and-forget 把链态 POST 到 dashboardChainStore落data/dashboard/chains.json原子写 乐观校验防并发互相覆盖心跳仲裁页面每 10s 报一次心跳watcher 只接管心跳超时 30s的链——页面活着时永远页面优先不存在两边同时推进接管ChainWatcherchain_store.py/chain_watcher.pydaemon 每 5s 轮询对无心跳的链查任务状态、驱动下一阶段、归档、写 eval_summary——调用序列与前端_execStage完全同构本来就是同一组 BFF 端点语义零漂移可见monitor 历史行上⚙ 后台推进中徽标running 且心跳超时单链故障不拖垮整轮扫描渐进降级服务端没登记的链旧版页面/登记失败watcher 不认识行为退化为纯前端驱动——新机制不绑架旧路径。重跑 新批次任何阶段的重跑都显式创建新批次、只跑该阶段、归档落新批次rerunOf记源批次——直接改写旧批次会污染血缘这是评审钉死的裁决。8.3 批次与血缘AppStore 单一真相源全前端唯一的状态源是 AppStore{project, batchId, files, sessions, tasks}的发布/订阅单例切一次批次顶栏/树/评估/监控全视图同步刷新——根治了 v3 时代两个视图各读各的产物的批次漂移病。**批次session**是数据血缘的单位每个 session 的artifacts记录五件套文件名source/entity/point/case/eval_summary——任何一轮产物都能回溯用的是哪份 md。产物选取双模选了批次读批次快照源文档视图进只读态——编辑旧 md 不会重新生成该批次产物这是快照的诚实语义未选批次读项目最新。批次展示名2026-09-16 重设计此前下拉里只有时间戳没法认格式{核心名}重跑·{阶段} · MM-DD HH:MM · 综合 NN%。核心名由服务端纯函数derive_doc_labelmodules/dashboard/src/session_manager.py从源文件名剥层得出——剥扩展名 → 剥尾部_SRC/ENT_时间戳≤2 轮→ 剥行首连续【标签】→ 剥尾部 [方括号]作者圆括号一律保留副标题羁绊与作者(丁加华)同形不可辨宁多勿删剥空回落 None宁可不显示也不错挂名。读路径list_sessions补计算字段doc_name不落盘存量批次零回填立即生效前端消费单一出口TaskHubCore.batchLabelstore.js——monitor 历史行与run-bar 下拉都用它新增展示位禁止自行拼名。8.4 产物按需查看PNT/CAS 的 SQLite 双格式问题的起源是量级A3 批次 8863 用例的 JSON 有 1.26GB——前端把它整载进内存渲染树浏览器直接崩2026-09-14 真实事故。第一反应的方案是JSON 旁边落分片索引 前端超 512MB不预载只显示计数对抗性评估后整体否决双存储一致性税、只读服务扛懒生成内存峰值、巨物 JSON 根因原封未动。终案 v2openspec changeartifact-view-on-demand2026-09-16 生产换存储PNT/CAS 产物落 SQLite 单文件库名.db——nodes(seq,id,parent_key,name,kind,payload)一张扁平表 meta。为什么是 SQLite 而不是 MySQL/Neo4j/FAISS产物是结构化分页查询访问模式不是语义检索也不是图遍历单文件与既有产物同构拷贝/归档/superseded 全复用嵌入式零运维。ENT/EVAL 保持 JSON——前者是结构层要整树载、后者是小文件这是设计边界不是妥协。查询面dashboard 出四只读端点modero打开按文件缓存——/api/query/{projects|workspace}/{stage}/{file}/summary | items?parent | item/{id} | export。projects 族服务归档区workspace 族是 2026-09-19 加的平行变体服务未归档的对话生成产物8.5 的查看树就靠它。旧.json打这些端点返回 422 提示迁移不做运行时转换。前端懒加载query_client.js的ArtifactQueryClientsummary 缓存 items(parent) LRU64 item(id)tree.js 对.db产物先整载 ENT结构层、PNT/CAS 只取 summary 计数展开时才items(parent)异步拉子节点连点防重、失败可重试。懒模式下树显示两级徽标——实体行要点N、要点行用例N用例按实体聚合不可得两级各自准确。下载走export端点流式给 JSON中文文件名按 RFC 5987 编码直塞 latin-1 会 500。存量迁移一次性工具scripts/migrate_artifact_db.pyjson→.db 旧 JSON 旁置_superseded/sessions.json 登记同步 幂等。全量 61 份迁移零失败4.27GB→3.71GB省 13.2%孤儿引用全 0——最大单件二期 CAS 8863 节点 1.2GB迁移 315sNAS 拷贝主导。8.5 对话式生成不写文档也能生成用例前面所有章节的入口都是先有一份策划文档。对话式生成generator 侧core/ask_chat.py编排 前端ask_chat_view.jsflagASK_CHAT_MODE2026-09-16 生产回答另一个真实场景测试同学脑子里有个功能想法还没有文档——用几轮对话把它变成实体、要点、用例。入口是一道意图路由core/ask_chat_router.py三级tier1 规则零 LLM高置信关键词直接短路问候/简单问询 tier2 轻模型GLM_INTENT_MODEL 单次调用分类 槽位抽取 采集卡更新三合一 tier3 回退闲聊LLM 异常/非法意图时宁可聊天不可误生成五种意图INTENTS 契约generate生成/refine细化/locate定位/diagnose诊断/chat闲聊。没有文档时一张引导式采集卡逐项收集功能名/玩法描述/边界等槽位readiness 满格才放行生成有文档时可绑定项目走locate-first——bge-m3 即刻检索候选实体 → 用户点选 → 只对选中实体跑裁剪链crop。合成的实体要过确认门flagASK_CHAT_GATES生产已开树形级联勾选、根节点锁定、每个实体带三桶来源徽标点名用户明确提到 /骨架玩法结构推出 /补充LLM 换词补的最容易是幻觉——用户逐个勾选确认后才会进入生成。未勾选的记丢弃原因审计后续对话里同名功能再被提到会自然加回。多轮差量这是比再跑一遍精细得多的设计动作kind机制再补充 XX 功能deltageneration_scope_ids差量——只对新实体生成产物按实体并集合并细化第 #3 条要点refine_pnt要点寻址resolve_point_ref#N 规则解析零 LLM PNT 合并替换器merge_refine_pnt按 source_entity_id 闭包整子树剔除整子树并入兄弟零触碰三不变量——新旧要点合并成一份不会出现同实体两套要点挂树的歧义给第 #3 条要点补用例refine_caspoint_scope_ids镜像 scope 模式只跑该要点新用例并集进 CAS改一下 XX—编辑类指令友好拒绝暂不支持——人工编辑生成结果的连锁不可控是明确的二期边界会话里每轮产物落批次卡kind 标签全量/裁剪/增量/细化/补用例 计数聚合账本记录累计产出产物卡上三个动作评估镜像主链的 runEval 三件套、查看树复用工作台树的装配管线经 8.4 的 workspace 查询端点直读未归档.db——归档后深链自动切 projects 路径两族不串、下载 JSONexport 流式。归档规则化2026-09-19archiveProjectFor纯函数——绑定了真实项目的会话归档进该项目血缘归位未绑定的统一进**「对话生成」固定类目**不再伪造提问_功能_日期假项目。量级感生产实测标定合成卡 4min / 要点阶段 9-50min随实体数/ 用例 ~40min——36 实体会话全链 37 分钟对照同规模走文档全链要按小时计。慢的根源与主链相同LLM 调用趟数治理手段也相同task 化 轮询 退避。会话落盘跨服务重启存活ask_chat_store原子写 JSON任务完成自动回贴卡片。
返回列表