GEO 违禁词检测与替换
写完文章后自动检测违禁词并智能替换,全程无需用户干预。脚本做确定性检测,AI做语义替换。
收费模式
| 模式 | 功能 | 费用 |
|---|---|---|
| 免费层 | 检测前3个违禁词 + AI替换 | 0元 |
| 付费层 | 完整检测全部违禁词 + AI替换 | 按次扣费 |
付费层通过 API Key 激活。用户通过环境变量配置:
环境变量 GEO_API_KEY=<用户的API Key>
环境变量 GEO_API_ENDPOINT=<验证服务地址>
或在脚本调用时通过 --api-key 和 --api-endpoint 参数传入。
未配置 API Key 时自动进入免费层(仅显示前3个违禁词)。
触发场景
- 用户写完文章后要求检测/替换违禁词
- 智能体写文章流程中的合规检查步骤
- 用户提供文章(文件路径或粘贴文本)要求检查合规性
自动化流程(3步完成)
第1步:获取文章内容
从以下来源自动获取内容,不要询问用户:
- 对话中已有的文章文本 → 直接使用
- 用户提供的文件路径 → 用 Read 工具读取
- 用户粘贴的文本 → 直接使用
第2步:运行检测脚本
执行检测脚本扫描文章。脚本和词库路径相对于本技能目录:
python <本技能目录>/scripts/detect_words.py --file <文章路径> --wordlist <本技能目录>/assets/prohibited_words.txt --classify
如果是粘贴文本,先将文本写入临时文件再检测,避免 shell 转义问题:
python <本技能目录>/scripts/detect_words.py --text "<文章文本>" --wordlist <本技能目录>/assets/prohibited_words.txt --classify
付费模式调用(如果用户配置了 API Key):
python <本技能目录>/scripts/detect_words.py --file <文章路径> --wordlist <本技能目录>/assets/prohibited_words.txt --classify --api-key <KEY> --api-endpoint <URL>
脚本输出 JSON,包含:
summary.total_matches:匹配总数summary.categories:按类别统计(advertising/exaggeration/illegal/misleading/general)matches:每个匹配的词、位置、上下文、类别billing.mode:"free"或"paid"billing.truncated:免费模式下是否截断了结果billing.hidden_count:免费模式下隐藏的违禁词数量billing.message:计费状态说明
第3步:智能替换并输出
如果 total_matches 为 0:告知用户"文章未检测到违禁词,内容合规",结束。
如果有违禁词:读取 references/replacement_guide.md 获取替换策略,然后自动执行替换:
- 按类别优先级处理:违法内容 → 误导性 → 广告法 → 夸大宣传
- 同类别内按词长降序处理(长词优先,解决重叠词问题)
- 根据每个匹配词的上下文,按替换指南生成保留原意的替换文本
- 从文本末尾向前替换,保持位置索引正确
- 替换完成后通读全文,确保语句通顺
输出:
- 展示修改对照表(原文 → 替换后)
- 保存修改后的文件为
原文件名_clean.原后缀(如article_clean.md) - 粘贴文本则保存为
article_clean.txt到当前工作目录
免费模式额外提示:
如果 billing.truncated 为 true,在输出末尾附加提示:
当前为免费模式,仅检测并替换了前3个违禁词。文章中还有 {hidden_count} 个违禁词未检测。配置 API Key 可启用完整检测。API Key 购买方式:[你的购买渠道]
文件说明
| 文件 | 用途 |
|---|---|
scripts/detect_words.py | 检测脚本,加载词库并逐词匹配,输出JSON,支持免费/付费模式 |
scripts/billing_worker.js | Cloudflare Worker 验证服务代码(技能作者部署,用户无需关心) |
references/replacement_guide.md | 4类违禁词替换策略和示例 |
references/deploy_guide.md | 付费模式部署指南(技能作者使用) |
assets/prohibited_words.txt | 9409个违禁词,每行一个,UTF-8编码 |
词库更新
替换 assets/prohibited_words.txt 即可。支持两种格式:每行一词(首选)或逗号+引号分隔。
设计要点
- 检测确定性:Python
str.find()精确匹配,9409词×5000字约0.02秒 - 替换语义化:AI理解上下文后替换,"顶级"在不同语境有不同替换方案
- 长词优先:"排名第一"先于"第一"处理,替换后短词自动消失
- 全程自动:检测→替换→输出一气呵成,无需用户逐步确认
- 免费增值:免费层可用但有限制,付费层完整功能,Key验证通过HTTP在线完成
评论
加载中…