# 雀巢文档 **Repository Path**: brandy-empty-bottle/nestle-document ## Basic Information - **Project Name**: 雀巢文档 - **Description**: NestDocs 是一款基于 RAG(检索增强生成)技术的 下一代智能文档平台。它将传统的 CMS 内容管理与最前沿的 AI 能力深度融合,致力于解决企业或个人知识库“存而不查、查而不准”的痛点。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-02-11 - **Last Updated**: 2026-03-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # NestDocs (雀巢文档) —— AI 智能知识库 NestDocs 是一款基于 **RAG(检索增强生成)** 技术的 **下一代智能文档系统**。它将传统的 CMS 内容管理与最前沿的 AI 能力深度融合,致力于解决企业或个人知识库“存而不查、查而不准”的痛点。通过集成 **DeepSeek** 大模型与 **Milvus** 向量检索,NestDocs 能够实现 **毫秒级的私有知识问答**、**流式 AI 创作辅助** 以及 **多模态图文生成**,将静态的文档库升级为可交互、可对话的智能知识中台。 ## 核心亮点 (Key Highlights) - **双引擎 AI 驱动**: 集成 **DeepSeek V3** 与 **OpenAI**,结合 RAG 技术与 Milvus 向量数据库,实现基于私有文档的精准问答,杜绝大模型幻觉。 - **极速全栈体验**: 前端采用 **React 19** + **Vite** + **Tailwind CSS 4**,配合 **Zustand** 状态管理;后端基于 **NestJS 11** + **Prisma**,打造高性能企业级应用。 - **多模态创作**: 内置 **DALL-E 3** 绘图能力,支持文生图,一键为文档生成高质量配图。 - **全链路流式响应**: 实现 Server-Sent Events (SSE) 流式传输,配合前端打字机效果,提供丝滑的 AI 对话体验。 - **企业级安全**: 完善的 **JWT 双 Token** 认证体系(Access + Refresh Token),配合 RBAC 权限控制与数据加密,保障知识库安全。 ## 技术栈概览 ### 前端 (Frontend) - **核心框架**: React 19 (Vite 构建) - **UI 组件库**: shadcn/ui (基于 Tailwind CSS 4) - **状态管理**: Zustand (Store 分离模式) - **路由管理**: React Router v7 - **AI 交互**: Vercel AI SDK (`useChat`, `useCompletion`) - **性能优化**: - `react-activation` 实现 KeepAlive 页面缓存 - `IntersectionObserver` 实现无限滚动 (Infinite Scroll) - 图片懒加载与自动压缩 ### 后端 (Backend) - **框架**: NestJS 11 (模块化架构) - **数据库 ORM**: Prisma (PostgreSQL) - **向量数据库**: Milvus (高性能向量检索) - **身份验证**: Passport + JWT (双 Token 机制) - **AI 引擎**: LangChain + DeepSeek / OpenAI - **图像处理**: Sharp (自动压缩、裁切、格式转换) ## 核心功能实现逻辑 ### 1. RAG 知识库语义搜索 (Retrieval-Augmented Generation) 不同于传统的关键词匹配,NestDocs 实现了深度的语义理解: - **向量化 (Embedding)**: 文档发布时,自动调用 OpenAI/DeepSeek Embedding 接口将文本转换为高维向量。 - **混合检索**: 结合全文检索与向量检索 (Milvus),利用余弦相似度算法匹配最相关的文档片段。 - **上下文增强**: 将检索到的私有文档作为 Context(上下文)动态注入 Prompt,引导 LLM 生成准确、基于事实的回答。 ### 2. AI 智能助手 & 多模态交互 - **流式对话**: 利用 NestJS 的 `StreamableFile` 与前端 `useChat` Hook,实现低延迟的流式响应。 - **AI 头像生成**: 集成 **DALL-E 3** 接口,支持根据用户昵称自动生成个性化、风格独特的头像,提升用户体验。 ### 3. JWT 双 Token 无感刷新 为平衡安全性与用户体验,采用标准的 OAuth2 风格双令牌机制: - `access_token` (短效): 用于 API 请求鉴权,过期即失效。 - `refresh_token` (长效): 用于在后台静默置换新的 `access_token`,用户无需频繁登录。 - **守卫 (Guards)**: 自定义 NestJS Guard 全局拦截,确保未授权访问被即时阻断。 ### 4. 高性能文档流 - **虚拟滚动**: 针对海量文档列表,利用 `IntersectionObserver` 监听哨兵节点实现触底自动加载。 - **图片优化**: 集成 Sharp 库,上传图片自动压缩为 WebP/JPEG 格式并生成多尺寸缩略图,大幅提升首屏加载速度。 ## 快速开始 ### 1. 克隆并安装依赖 **后端** ```bash cd backend/docs pnpm install ``` **前端** ```bash cd frontend/docs pnpm install ``` ### 2. 环境变量配置 在 `backend/docs` 目录下创建 `.env`: ```env DATABASE_URL="postgresql://user:password@localhost:5432/nestdocs" JWT_SECRET="your_secret_key" OPENAI_API_KEY="your_openai_key" MILVUS_ADDRESS="localhost:19530" ``` ### 3. 数据库初始化 ```bash npx prisma init npx prisma migrate dev --name init npx prisma generate ``` ### 4. 启动开发环境 **后端启动** ```bash npm run start:dev ``` **前端启动** ```bash npm run dev ``` ## 项目结构 ``` nestdocs/ ├── frontend/ # React + Vite + shadcn │ ├── src/components/ # 包含 BackToTop, InfiniteScroll 等通用组件 │ ├── src/store/ # UI 与数据分离的状态管理 │ └── src/hooks/ # useDebounce, useChat 等自定义 Hook └── backend/ # NestJS + Prisma ├── src/auth/ # JWT 鉴权模块 ├── src/posts/ # 文档 CRUD 业务 ├── src/ai/ # Embedding 与 Stream 逻辑 └── prisma/ # Schema 设计与 Migrate 记录 ```