LLM安全数据库

一个用于存储LLM记忆的安全数据库服务器,具有全面的内容验证功能,适用于需要安全存储和验证用户生成内容的场景。

  • by JamesANZ
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 JamesANZ/llm-safe-db

使用说明

LLM安全数据库

一个安全的数据库服务器,用于存储大型语言模型(LLM)的记忆,并具备全面的内容验证功能。该服务器在允许存储之前,会对内容进行验证,以检测包括仇恨言论、提示注入和非法内容在内的恶意模式。

特点/功能

  • 内容验证针对仇恨言论、提示注入、非法内容、粗俗语言和垃圾信息的多层验证
  • 隐私优先设计被拒绝的内容会被丢弃,且不会存储——不会保留恶意内容的记录
  • MongoDB 集成带有适当索引和验证的安全存储
  • 速率限制内置滥用防护
  • TypeScript全面的类型安全性和现代开发经验
  • 全面测试这是一个包含单元测试和集成测试的测试套件
  • 安全Helmet.js 安全头部和 CORS 保护

快速入门

先决条件

  • Node.js 18及以上版本
  • MongoDB 4.4及以上版本
  • npm 或 yarn

安装

  1. 克隆仓库:
git clone <repository-url>
cd llm-safe-db
  1. 安装依赖项:
npm install
  1. 设置环境变量:
cp env.example .env
# Edit .env with your MongoDB URI and other settings
  1. 启动 MongoDB(如果在本地运行):
mongod
  1. 构建并启动服务器:
npm run build
npm start

用于开发:

npm run dev

API 端点

存储内存

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

内容验证

服务器将内容与多个类别进行验证:

违规类型

  • 仇恨言论检测歧视性语言和威胁
  • 提示注入识别试图操控人工智能行为的行为
  • 非法内容标记与非法活动相关的内容
  • 辱骂性语言基本的脏话过滤
  • 垃圾邮件检测重复或垃圾邮件式内容

验证过程

  1. 原文内容:内容使用ChatGPT API进行分析,以检测违规行为
  2. 应用了多层验证机制(包括仇恨言论、提示注入、非法内容等)
  3. 计算出一个置信度分数
  4. 安全内容被存储,被拒绝的内容被丢弃且永不记录
  5. 仅对被拒绝的条目保留监控日志(不含内容)

测试

运行测试套件:

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

添加新的验证规则

  1. 添加图案到 ContentValidator 班级;阶级;类别
  2. 更新 ViolationType enum(在编程中,通常翻译为“枚举”)
  3. 为新模式添加测试
  4. 更新文档

许可证

MIT 许可证 - 详见 LICENSE 文件。