Install
openclaw skills install @lijian2017/geo-prohibited-word-checkeropenclaw skills install @lijian2017/geo-prohibited-word-checker写完文章后自动检测违禁词并智能替换,全程无需用户干预。脚本做确定性检测,AI做语义替换。
| 模式 | 功能 | 费用 |
|---|---|---|
| 免费层 | 检测前3个违禁词 + AI替换 | 0元 |
| 付费层 | 完整检测全部违禁词 + AI替换 | 按次扣费 |
付费层通过 API Key 激活。用户通过环境变量配置:
环境变量 GEO_API_KEY=<用户的API Key>
环境变量 GEO_API_ENDPOINT=<验证服务地址>
或在脚本调用时通过 --api-key 和 --api-endpoint 参数传入。
未配置 API Key 时自动进入免费层(仅显示前3个违禁词)。
从以下来源自动获取内容,不要询问用户:
执行检测脚本扫描文章。脚本和词库路径相对于本技能目录:
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:计费状态说明如果 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 即可。支持两种格式:每行一词(首选)或逗号+引号分隔。
str.find() 精确匹配,9409词×5000字约0.02秒