Nexus-Mid 旨在构建一个企业级知识与AI中间件平台。其核心目标是打破信息孤岛,通过统一管理企业核心知识资产,并利用生成式AI技术(RAG、摘要、分类)释放数据价值,为上层业务应用提供智能化的数据服务。同时,通过严格的RBAC权限控制,确保企业数据的安全性和隔离性。
软件功能与核心功能模块
1. 知识库管理
核心的数据存储与管理中心。
文档管理:支持多种格式文档的上传、解析与存储。
层级结构:采用无限层级的文件夹树形结构组织内容。
元数据与版本控制:完整记录文档元数据,并维护版本历史,支持版本回滚与对比。
在线预览:集成文件预览器,支持直接在浏览器中查看文档内容。
2. AI 智能处理
深度集成的AI服务,提升内容可用性。
智能分类:利用LLM自动将文档归类到特定业务领域。
智能摘要:自动生成长文档的精简摘要,帮助用户快速获取关键信息。
语义标签:自动提取文档关键词和标签,增强检索精准度。
搜索增强:利用“查询扩展”技术,生成用户搜索词的同义词,提升召回率。
3. 身份与访问管理
强大的多租户权限体系。
多租户架构:基于 Tenant 模型实现严格的数据隔离。
层级角色:支持角色继承(父子角色)及权限传递。
细粒度权限:
功能权限:控制对界面模块和API操作的访问。
数据权限:控制对特定知识库或文档的访问(行级安全)。
4. 交互式对话
对话式UI:用户通过自然语言与知识库进行交互。
RAG(检索增强生成):根据用户问题检索相关文档片段(Embedding),结合LLM生成精准回答并标注引用来源。
业务流程与功能路径
数据入库流程:用户上传文件 -> 后端存入 MinIO -> DocumentParser
下载并提取文本 -> 文本分块(Chunking) -> 生成向量(Embedding) -> 存入向量数据库及关系型数据库。
AI Sidecar:并行触发 AI 分类与摘要任务,更新文档元数据。
权限校验流程:请求进入 TRPC Router -> 中间件校验 Session -> 验证 UserRole 及资源特定权限 -> 授权或拒绝。
搜索与检索流程:
用户输入“如何申请休假?” -> AI 扩展查询词 -> 混合搜索(关键词 + 向量)召回相关切片 -> LLM 生成带引用的回答。
1 整体架构与设计思路
本项目采用 现代化 Monorepo 单体架构,针对全栈类型安全和开发体验进行了优化。
前端:基于 Next.js 16 (App Router) 和 React 19 构建。利用 Server Components 提升首屏性能,Client Components 处理交互。状态管理采用 Zustand 和 React Query。
后端:作为 TRPC (TypeScript Remote Procedure Call) 服务嵌入在 Next.js API 路由中。实现了从数据库到前端UI的端到端类型安全(End-to-End Type Safety)。
数据库层:使用 Prisma ORM 进行数据访问,底层对接 PostgreSQL(核心数据)并支持向量操作。
存储层:采用 MinIO 对象存储,确保存储与应用解耦,并兼容 S3 协议,便于私有化部署。
2 技术栈概览
框架:Next.js 16 (React 19)
语言:TypeScript (Strict Mode)
样式:Tailwind CSS 4, Radix UI (组件原语), Lucide React (图标)
API 通信:TRPC (v11)
数据库:PostgreSQL, Prisma ORM
对象存储 MinIO
AI / LLM:OpenAI SDK, Google GenAI SDK, Langfuse (可观测性)
大模型调用:python
3 模块详细设计
Router 模块化:TRPC Router 被拆分为多个领域子路由(knowledgebase, role, user, dialog)以保证可扩展性。
例如:server/routers/knowledgebase/ 目录下包含 document.ts (文档操作), folder.ts (目录操作), processing.ts (处理逻辑) 等独立文件,避免单文件过大。
Service 层模式:复杂的业务逻辑(如文件解析、AI调用)封装在独立的 "Service" 类中(DocumentParserService, AIClassificationService),而不是直接写在 Router 里。
混合解析策略:采用了 "Sidecar" 模式进行解析缓存。文件解析后,生成的 _parsed.json 会与源文件一同存储在 MinIO 中,避免重复计算。