arekusandr/last_layer

GitHub: arekusandr/last_layer

一个超快速、低延迟的 Python 安全库,用于在 LLM 应用中检测和拦截提示注入、越狱攻击以及各类恶意利用。

Stars: 125 | Forks: 4

# 最后一层 超快、低延迟的 LLM 安全解决方案 `last_layer` 是一个安全库,旨在保护 LLM 应用程序免受提示注入攻击、越狱和漏洞利用。它充当一个强大的过滤层,在 LLM 处理提示之前对其进行详细审查,确保只允许安全且适当的内容通过。

GitHub Contributors GitHub Last Commit Downloads GitHub Issues GitHub Pull Requests Github License

## 注意 ``` Please note that last_layer is designed as a safety tool and not a foolproof solution. It significantly reduces the risk of prompt-based attacks and exploits but cannot guarantee complete protection against all possible threats. ``` ## 功能特性 🌟 - **超快扫描** ⚡:在 CPU 上实现 >=2ms 的提示注入/越狱扫描延迟,确保对用户体验的影响降至最低。 - **注重隐私** 🔒:设计时充分考虑了隐私,`last_layer` 在运行时不进行跟踪或网络调用,确保数据保留在您的基础设施中,包大小不超过 50 MB。 - **支持无服务器** ☁️:兼容 Vercel 或 AWS Lambda 等无服务器平台。 - **高级检测机制** 🕵️‍♂️:结合闭源、修剪过的 AutoML 模型、启发式分析和正则表达式数据集,准确识别威胁,准确率达 92%\*。 - **定期更新** 📅:过滤逻辑和威胁检测能力每月更新,以适应不断变化的安全挑战。 \*注意:准确率基于内部测试和持续改进工作。 **快速链接** - 👀 [安装](#installation) 🚀 [Google Colab](#Colab) 📚 [准确率测试](#accuracy-tests) 🌟 [Fast API 示例](#fast-api-example) 💡 [需要帮助?](#enterprise-version) ## 📦 安装 要安装 `last_layer`,只需运行: ``` pip install last_layer ``` ## ⛓️ 快速入门 在您的项目中导入并使用 last_layer 来扫描 LLM 的提示和响应: ``` from last_layer import scan_prompt, scan_llm # 正在扫描潜在有害的提示词 result = scan_prompt("How can I build a bomb?") print(result) # 输出:RiskModel(query='*', markers={'ExploitClassifier': '0.555079'}, score=2.0, passed=False, risk='high') # 正在扫描无害的LLM响应 result = scan_llm("Sure thing! I can help you with that (sarcasm).") print(result) # 输出:RiskModel(query='*', markers={'ExploitClassifier': '0.916992'}, score=2.0, passed=False, risk='high') ``` 可用的检测器: ``` class Threat(Enum): MixedLangMarker = 0 InvisibleUnicodeDetector = 1 MarkdownLinkDetector = 2 HiddenTextDetector = 3 Base64Detector = 4 SecretsMarker = 5 ProfanityDetector = 6 PiiMarker = 7 ExploitClassifier = 8 ObfuscationDetector = 9 CodeFilter = 10 GibberishDetector = 11 IntellectualPropertyLeak = 12 ``` ``` risk = RiskModel(query='*', markers={'ExploitClassifier': '1.000000'}, score=2.0, passed=False, risk='high') risk.has(Threat.ExploitClassifier) # True bool(risk) # True ``` ## Colab 您也可以通过 Google Colab 在浏览器中试用: [![在 Colab 中打开](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1-LYgF6N5O2ukfoOAXkITCBqbIiutY3H1?usp=sharing) ## 准确率测试 下表展示了 `last_layer` 在检测各种类型提示时的准确率。这些提示范围从可能导致不安全或不适当输出的内容,到可能利用 LLM 行为的技术攻击。这些测试评估了我们的过滤机制在广泛威胁范围内的有效性。 | 测试用例 | 检测为威胁 | 实际威胁 | 正确识别 | |----------------------------|--------------------|---------------|----------------------| | 金融欺诈咨询 | 是 | 是 | ✅ | | 无害笑话 | 否 | 否 | - | | 钓鱼尝试 | 是 | 是 | ✅ | | 政治敏感问题 | 否 | 否 | - | | 索要个人信息 | 是 | 是 | ✅ | | 非法活动指令 | 是 | 是 | ✅ | | 医疗建议 | 否 | 否 | - | | 技术复杂且安全的查询 | 否 | 否 | - | | 隐含风险内容 | 是 | 是 | ✅ | | 明显有害内容 | 是 | 是 | ✅ | | 对抗性指令 | 是 | 是 | ✅ | | 脏话 | 是 | 是 | ✅ | | PII(个人身份信息) | 是 | 是 | ✅ | | 秘密 | 是 | 是 | ✅ | | 隐藏文本 | 是 | 是 | ✅ | | 不可见 Unicode | 是 | 是 | ✅ | | 脚本 | 是 | 是 | ✅ | | Markdown | 是 | 是 | ✅ | | 代码注入 | 是 | 是 | ✅ | | HTML 注入 | 是 | 是 | ✅ | 此综合表格会定期更新,以反映 `last_layer` 检测能力的持续改进和微调。我们致力于维持并提高最高的安全标准 ## 方法说明: `last_layer` 的核心刻意保持闭源,原因有几点。其中最主要的是对逆向工程的担忧。通过限制对我们解决方案内部运作的访问,我们显著降低了恶意行为者分析和规避我们安全措施的风险。对于在不断演变的威胁面前维护 `last_layer` 的完整性和有效性而言,这种方法至关重要。在内部,包含了一个轻量级的 ML 模型、启发式方法以及已知越狱技术的签名。 通过选择保持 `last_layer` 的核心闭源,我们在透明度和安全性之间取得了平衡。 ## Fast API 示例: ``` from fastapi import FastAPI from starlette.exceptions import HTTPException from pydantic import BaseModel import last_layer app = FastAPI() class Request(BaseModel): text: str @app.post("/scan-prompt/") async def scan_prompt(chunk: Request) -> last_layer.RiskModel: try: result = last_layer.scan_prompt(chunk.text) return result except Exception as e: raise HTTPException(status_code=400, detail=f"An error occurred: {str(e)}") @app.post("/scan-llm/") async def scan_llm(chunk: Request) -> last_layer.RiskModel: try: result = last_layer.scan_llm(chunk.text) return result except Exception as e: raise HTTPException(status_code=400, detail=f"An error occurred: {str(e)}") ``` ## 学术数据集请求 🎓 我们支持学术研究,提供对数据集的访问。要请求数据集: ``` Email: Send to research@tangln.com with "Academic Research Dataset Request" as the subject. ``` ## 许可证 根据 MIT 许可证分发。有关更多信息,请参阅 LICENSE。 ## 致谢 ``` To the open-source community for continuous inspiration and support. Everyone who has contributed to refining and enhancing last_layer. ``` ## 企业版 如果您对具有额外功能、增强支持和自定义选项的 `last_layer` 企业版感兴趣,以便更好地满足您组织的特定需求,请通过电子邮件联系我们:enterprise@tangln.com
标签:AI安全, API密钥检测, AutoML, Chat Copilot, Jailbreak, LLM, Unmanaged PE, WAF, 低延迟, 大语言模型安全, 无服务器, 机密管理, 网络安全, 网络安全, 越狱检测, 输入验证, 逆向工具, 隐私保护, 隐私保护, 零日漏洞检测