结构化分批(ChunkMeta)如何约束模型只依据 ChunkText 定位:开源免费的WPS AI 软件 察元AI文档助手
结构化分批ChunkMeta如何约束模型只依据 ChunkText 定位摘要本文围绕标题所述主题结合本仓库当前源码行进行说明。仅供技术理解与内部培训不构成定密、法务或密码测评结论。文中代码块均摘自本地仓库对应路径与行号。正文0. 结论先行结论先行保密检查由内置助手触发大模型按模板输出审查意见程序再从摘要中抽取命中片段并尝试挂批注。长文档依赖分块与结构化 JSON 提示。下文每节先说明要点紧接着给出仓库中的对应源码片段。本篇标题结构化分批ChunkMeta如何约束模型只依据 ChunkText 定位1. 助手标识与默认写回方式保密检查对应内置助手 id 为 analysis.security-check。下列片段展示其在注册表中的默认动作与输入来源等字段便于与界面行为对照。// src/utils/assistantRegistry.js 第653-667行{id:analysis.security-check,label:保密检查,shortLabel:保密检查,group:analysis,modelType:chat,defaultModelCategory:chat,supportsRibbon:true,defaultDisplayLocations:[ribbon-main],allowedActions:[comment,link-comment,insert,append,none],defaultAction:link-comment,defaultOutputFormat:markdown,defaultInputSource:INPUT_SOURCE_DOCUMENT,description:基于关键词和上下文检查文档中的涉密、涉军、单位名称、密级标识和敏感业务信息风险。,2. 研判原则写入提示词模板研判原则与风险级别枚举写在 userPromptTemplate 的长模板中模型据此输出 Markdown 小节。下列片段为模板中研判原则与风险级别相关行。// src/utils/assistantRegistry.js 第704-713行研判原则1.关键词命中不等于泄密必须结合上下文判断不要机械命中即报高风险2.对常见公开词、泛化称谓、新闻公开语境、教材示例语境要谨慎降噪避免误报3.仅依据原文内容作出审慎判断不要臆测背景、来源、真实单位或法律结论4.对每项风险必须说明命中片段、风险类别、风险级别、判断依据、建议处理方式5.风险级别统一使用-高风险直接出现密级标识、具体部队/单位身份、具体部署计划、未公开内部编号、明确敏感联系人信息等-中风险出现敏感关键词且上下文指向内部事项但是否涉密仍需人工确认-低风险或待人工复核存在可疑词或敏感线索但公开性、敏感性、上下文不足暂不能直接判定6.如果文本未发现明显保密风险明确写“未发现明显保密风险”3. Ribbon 按钮如何启动该助手功能区按钮在 ribbon 的 OnAction 分支中调用 executeAssistantFromRibbon并传入 taskTitle。// src/components/ribbon.js 第3364-3370行// 脱密分组casebtnDocumentDeclassifyCheck:executeAssistantFromRibbon(analysis.security-check,{taskTitle:保密检查}).catch((e){console.error(保密检查失败:,e)alert(保密检查失败: (e?.message||e))})break4. 任务运行器中的专项提示对保密检查助手任务运行器追加一条最佳实践说明强调关键词命中须结合上下文分级。// src/utils/assistantTaskRunner.js 第310-312行if(assistantIdanalysis.security-check){return保密检查时关键词命中必须结合上下文分级判断避免武断下结论并明确哪些内容需要人工复核。}5. 结构化批次系统提示骨架长文档走结构化 JSON 批次时buildStructuredBatchInstruction 拼接 schemaVersion、模式说明与 ChunkText 约束。// src/utils/assistantStructuredPipeline.js 第90-104行exportfunctionbuildStructuredBatchInstruction(assistantId,options{}){constmodegetStructuredAssistantMode(assistantId)return[你必须只输出一个合法 JSON 对象schemaVersion 固定为 ${STRUCTURED_PIPELINE_SCHEMA_VERSION}。,不要输出 Markdown不要输出 JSON 之外的解释。,getModeSpecificInstruction(mode,options),getStructuredJsonAnchorExtraRules(assistantId,options.documentAction),你将收到一个带 ChunkMeta / LineMap / ChunkText 的结构化原文块所有定位都必须以 ChunkText 为唯一依据。,String(options.documentAction||).trim()replace?当文档动作是 replace 时只有在 originalText 可以从 ChunkText 中精确截取时才输出 replace否则改为 comment。:,统一 JSON 结构如下,{schemaVersion:,mode:,summary:,content:,operations:[{type:replace|comment|insert-after|prepend|append|none,target:absolute-range|chunk-relative-range|text-anchor|paragraph-range,start:0,end:0,originalText:,replacementText:,commentText:,reason:,suggestion:,confidence:high|medium|low,paragraphIndex:0,prefix:,suffix:,sentence:}]},若没有可执行操作operations 返回 []若没有正文结果content 返回空字符串。].filter(Boolean).join(\n)6. 从 Markdown 摘要抽取命中片段程序不直接信任自由格式而用 extractHitFragmentsFromSecurityCheckMarkdown 做多模式正则抽取供后续批注锚点。// src/utils/structuredCommentPolicy.js 第22-52行exportfunctionextractHitFragmentsFromSecurityCheckMarkdown(markdown){consttextString(markdown||)constout[]constseennewSet()constadd(raw){lettString(raw||).trim()tt.replace(/^[「“]|[」”]$/g,).replace(/\*\*/g,).trim()if(t.length2||seen.has(t))returnif(/^(无|暂无|未发现|没有|不适用)\s*$/u.test(t))returnseen.add(t)out.push(t)}letm// 模型常见变体- **命中片段** 原文加粗标签 中英文冒号 反引号constreBacktickPatterns[/\*\*命中片段[:]\*\*\s*([^\n])/g,/[-*]\s*\*\*命中片段[:]\*\*\s*([^\n])/g,/[-*]\s*\*{1,2}\s*命中片段\s*\*{1,2}\s*[:]\s*([^\n])/g,/命中片段\s*\*{0,2}\s*[:]\s*\*{0,2}\s*([^\n])/g]for(constreBacktickofreBacktickPatterns){while((mreBacktick.exec(text))!null)add(m[1])}constreLinePatterns[/[-*]\s*\*\*命中片段[:]\*\*\s*(?!)([^\n])/g,/[-*]\s*命中片段[:]\s*(?!)([^\n])/g]for(constreLineofreLinePatterns){while((mreLine.exec(text))!null)add(m[1])}returnout7. 保密检查在结构化 JSON 下的额外锚点规则getStructuredJsonAnchorExtraRules 为保密检查追加「命中片段须逐字来自 ChunkText」等说明与批注类文档动作组合使用。// src/utils/structuredCommentPolicy.js 第119-127行exportfunctiongetStructuredJsonAnchorExtraRules(assistantId,documentAction){constidString(assistantId||).trim()constactString(documentAction||).trim()constparts[]if(idANALYSIS_SECURITY_CHECK_ID){parts.push([保密检查须将完整审查结论写入 JSON 的 summary 字段summary 内仍使用模板要求的 Markdown 小节## 高风险项 等。,每条风险项必须包含「命中片段」且反引号内为 ChunkText 中的连续原文逐字照抄推荐格式- **命中片段** 原文片段加粗与否均可反引号内必须与正文一致operations 可留空 []。].join(\n))8. 与定密流程的边界README 已说明检查结论仅为辅助参考。实现上判断来自大模型与提示词不包含法定密级鉴定接口。组织对外处置仍须走正式流程。

相关新闻

如何用Claude生成word文档——AI导出鸭评测

如何用Claude生成word文档——AI导出鸭评测

如何用Claude生成word文档——AI导出鸭眼评测 痛点驱动:当AI输出遭遇格式崩坏 作为长期处理多模态数据流的技术架构师,我见过太多“高智商、低格式”的AI导出悲剧。Claude生成的Markdown、LaTeX公式、嵌套列表,一旦复制到Word,立刻…

2026/11/13 13:01:57 阅读更多 →
文心生成的表格怎么复制下来?AI导出鸭实测:4种方案横向对比

文心生成的表格怎么复制下来?AI导出鸭实测:4种方案横向对比

文心生成的表格怎么复制下来?AI导出鸭实测:4种方案横向对比文心一言输出的表格一粘贴就散架?公式变乱码?这不是你一个人的问题。本文从工程视角拆解四种复制方案,告诉你为什么“AI导出鸭”是最优解。一、痛点&#xff…

2026/11/13 15:03:16 阅读更多 →
Modbus 转 IEC 104:6 个容易被低估的工程细节

Modbus 转 IEC 104:6 个容易被低估的工程细节

光储电站接入电网调度时,绝大多数项目都要做一件事:把现场设备的 Modbus 数据,转成 IEC 104(DL/T 634.5104)上送调度厅。 听上去就是「协议转换」——把 Modbus 寄存器值塞进 IEC 104 报文。但真正在项目里跑过的工程…

2026/11/13 21:04:17 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/13 5:13:25 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/13 5:13:25 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/13 5:13:25 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/13 22:08:41 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/12 18:22:25 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/13 5:13:25 阅读更多 →

日新闻

周新闻

月新闻