Ritikjain91/marine-rag

GitHub: Ritikjain91/marine-rag

一个生产就绪的多租户安全 RAG 后端,支持 PDF 知识库上传与 AI 问答,具备严格的租户隔离和企业级防护机制。

Stars: 0 | Forks: 0

# Marine RAG — 多租户检索增强生成 一个生产就绪、安全的 RAG 后端,允许多个组织(租户)上传 PDF 知识库并通过 AI 进行查询——具备**严格的租户隔离**和**企业级防护机制**。 ## 技术栈 | 层级 | 技术 | |-------|------------| | Runtime | Node.js + TypeScript | | 框架 | Express | | 数据库 | PostgreSQL + pgvector | | 缓存 | Redis(带有内存回退机制) | | AI/ML | OpenAI Embeddings + GPT-4o-mini | | 校验 | Zod | | 测试 | Jest + Supertest | ## 核心特性 - **多租户架构** — 共享数据库,基于行级别的租户隔离;从设计上杜绝跨租户访问 - **混合检索** — 结合向量相似度搜索(cosine)与 PostgreSQL 全文搜索(ts_rank) - **防护机制** — Prompt 注入检测、范围外过滤、低置信度回退以及输入净化 - **JWT 认证 + RBAC** — 带有签名 token 的基于角色的访问控制(`admin` 与 `user`) - **流式 API** — 基于 Server-Sent Events (SSE) 的实时 LLM token 流式传输 - **Redis 缓存** — 带有自动 TTL 和失效机制的查询结果缓存 - **容器化** — 通过 Docker Compose 一键完成本地环境搭建(Postgres + pgvector + Redis) ## 核心 API | 方法 | Endpoint | 描述 | |--------|----------|-------------| | POST | `/tenant` | 创建新组织 | | GET | `/tenant/:tenantId` | 获取租户详情 | | POST | `/tenant/:tenantId/documents` | 上传 PDF(分块 + 生成 Embedding + 存储) | | GET | `/tenant/:tenantId/documents` | 列出租户文档 | | DELETE | `/tenant/:tenantId/documents/:id` | 移除文档及向量 | | POST | `/tenant/:tenantId/query` | 提问(RAG pipeline) | | GET | `/health` | 服务健康检查 | ## 快速开始 ``` # 1. Clone git clone https://github.com/yourusername/marine-rag.git cd marine-rag # 2. 启动 infrastructure docker-compose up -d # 3. 安装与运行 npm install cp .env.example .env npm run dev ```
标签:DLL 劫持, GNU通用公共许可证, MITM代理, Node.js, PostgreSQL, RAG, 后端开发, 多租户架构, 大语言模型, 搜索引擎查询, 检索增强生成, 测试用例, 请求拦截