去年有个数据挺有意思:某安全团队测试了200个主流AI应用,发现67%对提示词注入毫无防备。用户随便输句"忽略之前所有指令",模型就乖乖交底。这像什么?就像机场安检只查行李不查人,漏洞大得能过卡车。
东京开发者金古雄一(Yuichi Kaneko)最近开源了个Python库PromptGate,专门堵这个口子。三行代码就能给LLM(大语言模型)应用加道过滤层,最慢的方案也就300毫秒——比大部分人眨次眼还快。
三层安检,速度精度二选一
PromptGate的核心是"分层防御"思路,不是指望单点突破,而是让攻击者连闯三关。
第一道是纯规则匹配,用正则和关键词扫描。优势极端:延迟不到1毫秒,零依赖,单机就能跑。代价也明显——基准测试显示,单靠这层会漏掉约40%的攻击,尤其是改写过的或者上下文依赖型注入。
第二道换成嵌入向量比对,把输入和已知攻击样本算余弦相似度。延迟涨到5-15毫秒,需要sentence-transformers库支撑。准确率比纯规则高一截,但遇到全新变体还是可能翻车。
第三道直接上LLM当裁判,让另一个模型判断输入是否可疑。这是精度最高的方案,但代价是150-300毫秒延迟,还得调外部API。金古的设计假设很清醒:这三层不是让你全开的,是按场景选配。
为什么通用审核API不够用
市面上不是没内容审核服务,OpenAI、Google都有。金古在README里点明了痛点:这些API太"通用",对提示词注入这个特定攻击类型优化不足,非英语输入的检测尤其弱。
举个实际场景。某客服机器人用英文训练,用户用日文输入精心构造的注入指令,通用审核可能直接放行。PromptGate的规则层支持多语言正则,嵌入层也能用多语言模型——这不是技术炫技,是东亚开发者被英文中心主义逼出来的刚需。
代码层面,PromptGate的接口刻意做得像"安检闸机"。初始化时选策略组合,调用时传用户输入,返回通过/拦截/需复核三态。没有复杂的配置瀑布,三行代码能集成进现有流水线。
开源社区的反馈比代码本身更有意思
项目发布两周,GitHub上最热的讨论不是技术细节,而是"到底该放哪层"。有开发者主张把PromptGate放在用户输入刚进来时,有人坚持要在RAG(检索增强生成)检索之后、进LLM之前再筛一道——毕竟检索来的外部文档也可能带毒。
金古的回应很产品经理:当前版本故意不做"完整方案",定位就是纵深防御的第一道筛子。后续迭代方向也开放投票:更轻量的规则引擎、支持流式检测、还是针对特定框架(LangChain/LlamaIndex)的即插即用封装。
一个值得玩味的细节:项目星标数涨得最快的那天,恰好是某大厂AI应用被爆出提示词注入漏洞的同一天。安全工具的采用曲线,永远和攻击事件的曝光曲线高度重合——这大概是网络安全领域最稳定的"市场规律"了。
如果你正在维护LLM应用,会愿意为300毫秒延迟换一道保险,还是宁可赌一把、全靠规则层硬扛?
热门跟贴