# RAG Server — 多媒体知识库 SaaS 平台 ## 概述 RagServer 是一个独立的多媒体 RAG (检索增强生成) SaaS Web 应用。支持文本、图片、音频、视频文件的拖拽上传,自动向量化入库,人脸识别,声纹识别,知识图谱构建,以及统一的混合检索。 ## 架构 ``` ┌─────────────────────────────────────────────────────┐ │ RagServer (:9190) │ │ ┌──────────┐ ┌──────────┐ ┌──────────────────┐ │ │ │ RBAC 鉴权 │ │ 订阅容量 │ │ 拖拽上传 UI │ │ │ │ 多租户隔离 │ │ quota 管控│ │ 知识库/文档 CRUD │ │ │ └──────────┘ └──────────┘ └──────────────────┘ │ │ │ │ │ ┌──────────┴──────────┐ │ │ │ rag-pipeline 引擎 │ │ │ │ ingest / search │ │ │ └──────────┬──────────┘ │ └─────────────────────────┼───────────────────────────┘ │ ┌─────────┬───────────┼───────────┬─────────┐ ▼ ▼ ▼ ▼ ▼ ┌───────┐ ┌───────┐ ┌─────────┐ ┌───────┐ ┌──────────┐ │ CLIP │ │ VDB │ │ Graph │ │Rerank │ │ Face │ │ 9086 │ │ 8886 │ │ 9092 │ │ 9090 │ │ 9091 │ └───────┘ └───────┘ └─────────┘ └───────┘ └──────────┘ ``` ## 数据库 - 数据库名: `rag` - 用户: `test` / 密码: `test123` - 字符集: `utf8mb4` ## 模块结构 | 模块 | 说明 | 仓库 | |------|------|------| | ragserver | 主 Web 应用 | yumoqing/ragserver | | rag-pipeline | RAG 管线引擎 | yumoqing/rag-pipeline | | clip_embedding | 多模态向量化 (CLIP ViT-H-14) | yumoqing/clip_embedding | | vdb | 向量数据库 (Milvus Lite) | yumoqing/vdb | | bge-reranker | 文本重排 (BGE Reranker v2-m3) | yumoqing/bge-reranker | | face-service | 人脸识别 (InsightFace) | yumoqing/face-service | | graph-service | 图数据库 (NetworkX) | yumoqing/graph-service | | ner-service | 命名实体识别 (GLiNER) | yumoqing/ner-service | | speaker-id | 声纹识别 (ECAPA-TDNN) | yumoqing/speaker-id | ## 部署 ```bash # 测试服务器 ssh apitest@tokentest.opencomputing.cn cd ~/ragserver git pull && bash build.sh && ./stop.sh && ./start.sh ``` ## 数据模型 - `knowledge_bases` — 知识库 - `documents` — 文档 (文本/图片/音频/视频) - `document_chunks` — 文档分片 - `subscriptions` — 租户订阅 (磁盘容量/文档数/API调用量) - `engine_configs` — 引擎配置 (支持租户级覆盖) - `usage_logs` — 用量日志