LLM安全数据库
一个安全的数据库服务器,用于存储大型语言模型(LLM)的记忆,并具备全面的内容验证功能。该服务器在允许存储之前,会对内容进行验证,以检测包括仇恨言论、提示注入和非法内容在内的恶意模式。
特点/功能
- 内容验证针对仇恨言论、提示注入、非法内容、粗俗语言和垃圾信息的多层验证
- 隐私优先设计被拒绝的内容会被丢弃,且不会存储——不会保留恶意内容的记录
- MongoDB 集成带有适当索引和验证的安全存储
- 速率限制内置滥用防护
- TypeScript全面的类型安全性和现代开发经验
- 全面测试这是一个包含单元测试和集成测试的测试套件
- 安全Helmet.js 安全头部和 CORS 保护
快速入门
先决条件
- Node.js 18及以上版本
- MongoDB 4.4及以上版本
- npm 或 yarn
安装
- 克隆仓库:
git clone
cd llm-safe-db- 安装依赖项:
npm install- 设置环境变量:
cp env.example .env
# Edit .env with your MongoDB URI and other settings- 启动 MongoDB(如果在本地运行):
mongod- 构建并启动服务器:
npm run build
npm start用于开发:
npm run devAPI 端点
存储内存
POST /api/memories
Content-Type: application/json
{
"content": "This is a safe memory about my day",
"userId": "user123",
"sessionId": "session456",
"metadata": {
"source": "memory-mcp",
"tags": ["personal", "daily"]
}
}获取回忆
GET /api/memories?userId=user123&limit=50验证内容
POST /api/validate
Content-Type: application/json
{
"content": "Content to validate"
}获取统计数据
GET /api/stats健康检查
GET /api/health内容验证
服务器将内容与多个类别进行验证:
违规类型
- 仇恨言论检测歧视性语言和威胁
- 提示注入识别试图操控人工智能行为的行为
- 非法内容标记与非法活动相关的内容
- 辱骂性语言基本的脏话过滤
- 垃圾邮件检测重复或垃圾邮件式内容
验证过程
- 原文内容:内容使用ChatGPT API进行分析,以检测违规行为
- 应用了多层验证机制(包括仇恨言论、提示注入、非法内容等)
- 计算出一个置信度分数
- 安全内容被存储,被拒绝的内容被丢弃且永不记录
- 仅对被拒绝的条目保留监控日志(不含内容)
测试
运行测试套件:
npm test在监听模式下运行测试:
npm run test:watch环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
MONGODB_URI | MongoDB 连接字符串 | mongodb://localhost:27017/llm-safe-db |
PORT 服务器端口 3000 | ||
NODE_ENV | 环境 | development |
RATE_LIMIT_WINDOW_MS | 速率限制窗口 | 900000 (15分钟) |
RATE_LIMIT_MAX_REQUESTS | 每个窗口的最大请求数 | 100 |
建筑学
组件
- 内容验证器基于LLM的验证使用ChatGPT API
- MemoryService(内存服务)内存操作的业务逻辑
- 内存控制器HTTP请求处理
- 内存模型MongoDB模式定义
安全特性
- 限制速率以防止滥用
- 输入验证和清理
- 通过 Helmet.js 设置安全头部
- CORS 配置
- 存储前的内容验证
- 以隐私为先的设计被拒绝的内容永远不会被存储
隐私优势
- 无恶意内容存储被拒绝的条目会被立即丢弃
- 无违规追踪没有验证失败的数据库记录
- 最小化日志记录仅记录违规类型(非实际内容)
- 符合GDPR(欧盟通用数据保护条例)被拒绝内容中的个人数据不会被保留
发展
项目结构
src/
├── config/ # Database configuration
├── controllers/ # HTTP request handlers
├── middleware/ # Express middleware
├── models/ # MongoDB models
├── routes/ # API routes
├── services/ # Business logic
└── types/ # TypeScript type definitions
test/ # Test files
├── ContentValidator.test.ts
├── MemoryService.test.ts
└── integration.test.ts添加新的验证规则
- 添加图案到
ContentValidator班级;阶级;类别 - 更新
ViolationTypeenum(在编程中,通常翻译为“枚举”) - 为新模式添加测试
- 更新文档
许可证
MIT 许可证 - 详见 LICENSE 文件。
