摘要

documentDeclassifyService 定义涉密关键词助手 id、JSON 响应格式占位及本地正则敏感模式,用于在调用大模型前后做兜底。实现细节与加密存储见 crypto 篇。

关键词

脱密;正则;JSON 模式

扩展阅读与维护提示

本篇围绕「脱密流水线中的常量与本地敏感模式」组织材料。仓库内与主题最直接相关的检索词包括:脱密、正则、JSON 模式。建议在阅读正文所列片段后,用 IDE 全局搜索这些符号,沿 import 与调用栈向上追问「谁在什么时机调用」,而不是只记住单文件路径。

摘要所概括的要点为:documentDeclassifyService 定义涉密关键词助手 id、JSON 响应格式占位及本地正则敏感模式,用于在调用大模型前后做兜底。实现细节与加密存储见 crypto 篇。落地到排障时,可把现象粗分为三类交叉验证:配置是否按预期写入持久化介质;WPS COM 上下文是否可用(例如是否缺少 ActiveDocument);以及网络与证书策略是否拦截了 fetch。本篇涉及的模块通常只覆盖其中一两类,需要与相邻篇目拼成完整拼图。

教程文件名「10-anquan-baomi-tuomi-yu-piliang-chuli.md」仅用于导航与排序,不等价于源码模块名。若正文中的行号与本地分支不一致,多半因合并导致行偏移,此时应以函数名、导出名为锚重新检索;团队若维护了生成脚本,可在变更大段源码后重新运行以保持摘录大致对齐。

本文刻意避免对产品能力做营销式承诺:所述行为均以当前仓库可见实现为准。若组织策略要求离线或内网模型,应在网关、证书与代理层收口,而不是假设加载项能绕过浏览器安全模型。

若你同时阅读 docs/chayuan-llm-chain-series,可先对照其中的总体链路图理解「请求从 UI 到 chatApi」的次序,再回到本教程看数据结构、默认值与修改风险面;两者互补,不重复堆砌功能列表。

正文

1. 助手 id 与响应格式

SECRET_KEYWORD_ASSISTANT_ID 与 SECRET_KEYWORD_RESPONSE_FORMAT 将关键词抽取约束在结构化输出上。

阅读源码摘录时,请把它当作「定位入口」而非完整实现:同一函数可能在其他分支还有早退条件或 try/catch。修改默认行为前,建议用最小文档手工走一遍相关助手或对话框,并观察任务清单与日志中的字段是否与预期一致,再决定是否做数据迁移或配置重置。

// src/utils/documentDeclassifyService.js 第23-36行
export const SECRET_KEYWORD_ASSISTANT_ID = 'analysis.secret-keyword-extract'

const TOKEN_WRAPPER = ''
const CONTEXT_WINDOW = 12
const RANDOM_TOKEN_ALPHABET = 'ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz23456789'
const RANDOM_TOKEN_LENGTH = 8
const SECRET_KEYWORD_RESPONSE_FORMAT = { type: 'json_object' }
const LOCAL_SENSITIVE_PATTERNS = [
  { regex: /\b1[3-9]\d{9}\b/g, category: '联系方式', riskLevel: 'high', reason: '命中手机号模式' },
  { regex: /\b[1-9]\d{16}[0-9Xx]\b/g, category: '证件信息', riskLevel: 'high', reason: '命中身份证号模式' },
  { regex: /[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}/g, category: '联系方式', riskLevel: 'high', reason: '命中邮箱模式' },
  { regex: /\b[A-Z]{2,6}-\d{2,}\b/g, category: '编号标识', riskLevel: 'medium', reason: '命中编号模式' },
  { regex: /\b\d{6,}\b/g, category: '编号标识', riskLevel: 'medium', reason: '命中长数字编号模式' }
]

2. 本地模式示例

LOCAL_SENSITIVE_PATTERNS 在模型不可用或需快速扫描时提供一类启发式命中,注意误报与漏报边界。

阅读源码摘录时,请把它当作「定位入口」而非完整实现:同一函数可能在其他分支还有早退条件或 try/catch。修改默认行为前,建议用最小文档手工走一遍相关助手或对话框,并观察任务清单与日志中的字段是否与预期一致,再决定是否做数据迁移或配置重置。

// src/utils/documentDeclassifyService.js 第30-36行
const LOCAL_SENSITIVE_PATTERNS = [
  { regex: /\b1[3-9]\d{9}\b/g, category: '联系方式', riskLevel: 'high', reason: '命中手机号模式' },
  { regex: /\b[1-9]\d{16}[0-9Xx]\b/g, category: '证件信息', riskLevel: 'high', reason: '命中身份证号模式' },
  { regex: /[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}/g, category: '联系方式', riskLevel: 'high', reason: '命中邮箱模式' },
  { regex: /\b[A-Z]{2,6}-\d{2,}\b/g, category: '编号标识', riskLevel: 'medium', reason: '命中编号模式' },
  { regex: /\b\d{6,}\b/g, category: '编号标识', riskLevel: 'medium', reason: '命中长数字编号模式' }
]
Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐