document-chat-system
基于 RAG 技术的开源文档智能问答平台,支持 PDF/DOCX 等多格式解析与多 AI 模型路由
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
基于 RAG 技术的开源文档智能问答平台,支持 PDF/DOCX 等多格式解析与多 AI 模型路由
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
在企业的日常工作中,你是否遇到过这样的场景:刚接手一个陌生的行业报告,里面密密麻麻塞了 200 页的 PDF,光是看完目录就花了半小时;或者公司知识库里积累了上百份合同模板,想找「关于违约责任的条款」却只能在搜索框里一次次碰运气;又或者你是法务人员,需要从大量判例文书中提炼相似案件的判决逻辑——这些事情,靠人工阅读效率太低,但扔给通用 AI 助手又容易「答非所问」,因为 AI 根本没读过你的文件。
document-chat-system 正是为解决这类痛点而生的开源 RAG(检索增强生成)文档智能平台。它的核心理念简单直接:让 AI 在回答问题之前,先去读你指定的文档。用户上传一份 PDF 或 Word,系统会自动解析内容、切成段落、建立向量索引,用户随后用自然语言提问,系统从文档中检索最相关的段落,作为上下文喂给大语言模型,最终生成有据可查的答案——每个回答都附带来源引用,你可以直接回溯到原文。
这个项目的独特之处在于,它不只是一个技术 demo,而是一个接近生产就绪的完整系统。从用户认证(Clerk)、文档存储(Supabase)、向量检索(Pinecone)、到多 AI 提供商路由(OpenRouter / OpenAI / Anthropic / Google),整套链路都被精心封装,普通开发者花 15-30 分钟即可本地跑起来。
从技术栈来看,这是一个典型的 Next.js 15 + React 19 全栈应用,采用 TypeScript 严格模式开发,前后端均使用同一种语言,类型安全贯穿整个代码库。
前端层面,组件生态非常丰富。项目使用了 shadcn/ui(基于 Radix UI 的无头组件库)搭配 Tailwind CSS 构建界面,保证 UI 风格统一且高度可定制。值得注意的是,项目还引入了 Plate.js——一个专业的富文本/富媒体编辑器框架,这意味着系统不仅仅能处理纯文本 PDF,还能处理包含复杂排版、表格、代码块的文档。编辑能力在 AI 辅助场景下非常关键,因为用户可能需要对 AI 生成的摘要进行二次编辑和批注。动画方面使用了 Framer Motion,确保 UI 过渡流畅、有生命力。
后端层面,Next.js App Router 提供了 API Routes 作为轻量后端入口,但更重的处理任务(文档解析、AI 流式生成)则交给 Inngest(一个后台任务/函数即服务框架)和 Docling(IBM 开源的文档解析服务)处理。数据库层使用 Prisma ORM 连接 PostgreSQL,结构清晰、迁移方便。文件上传托管在 UploadThing(专为 Next.js 设计的文件上传服务)。
AI 管道是本项目的核心亮点。项目使用 @ai-sdk 系列 SDK(Vercel AI 的底层库)实现了多提供商路由:
@pinecone-database/pinecone 存储文档的语义向量OpenRouter 的支持尤为重要——它让开发者无需逐一对接每个 AI 提供商的 API,只用一个密钥就能在多个模型之间自由切换,甚至可以对比同一问题在不同模型上的回答质量。这对于需要做 AI 模型评测的企业用户来说是很大的便利。
数据模型方面,Prisma Schema 定义了完善的多租户结构:Organization(组织)→ User(用户)→ Document(文档)→ ChatSession(对话会话)→ ChatMessage(消息),同时还有订阅计费(Stripe)、审计日志、安全监控等企业级模块。这套模型设计说明项目的目标用户不仅仅是个人开发者,而是面向企业团队协作场景。
从部署分析来看,本项目的 Web UI 支持非常完善,提供了漂亮的 Next.js 前端界面,用户体验接近商业 SaaS 产品。本地开发流程非常友好:运行 setup.sh 自动检测 Node.js 版本、安装依赖、生成 Prisma 客户端,步骤清晰,对新手友好。
但需要注意几个部署门槛:
总体来说,这是一个面向开发者和技术型企业的 RAG 平台,而非开箱即用的终端用户产品。开发者可以基于它快速构建内部知识库、智能客服、文档搜索等应用,而普通用户则更适合直接使用封装好的商业服务。
| 维度 | 评价 |
|---|---|
| 架构设计 | 模块化良好,组件职责清晰,多租户设计考虑周全 |
| 技术选型 | 紧跟前沿(Next.js 15、React 19、AI SDK),依赖版本较新 |
| 类型安全 | TypeScript 全程严格模式,配合 Prisma 类型生成,降低运行时错误 |
| AI 集成 | 多提供商路由实现优雅,通过统一的 @ai-sdk 接口屏蔽底层差异 |
| 文档完善度 | README 非常详细,涵盖快速开始、架构说明、API 文档、使用示例 |
| 测试覆盖 | 配置了 Jest,但具体测试覆盖率和测试质量需进一步审查 |
| 生产准备 | 具备审计日志、安全监控、订阅计费等企业级功能,生产就绪度较高 |
RAG(检索增强生成)是当前企业 AI 应用落地最主流的技术范式之一。相比纯微调(Fine-tuning),RAG 的优势在于知识可更新、来源可追溯、成本更可控——企业不需要为每个新知识领域重新训练模型,只需更新向量数据库即可。document-chat-system 的出现,降低了 RAG 技术落地的门槛,让更多团队可以在本地构建自己的文档智能系统。
从 GitHub 146 stars 的数据来看,这个项目目前社区活跃度尚处于早期,但技术架构和功能完整性已经相当成熟。如果作者能持续维护并增加更多部署方式(如一键 Docker 部署),有望成为 RAG 入门项目中的标杆作品。
document-chat-system 是一个生产级别的开源 RAG 文档智能平台,适合有一定技术背景的团队快速构建 AI 驱动的文档问答系统。它用 Next.js 15 + TypeScript 构建了美观易用的 Web 界面,通过 OpenRouter + Pinecone + Supabase 打造了完整的 AI 管道,支持多文档格式解析和多 AI 模型路由。部署难度中等,适合开发者本地实验和生产项目二次开发,但对普通终端用户而言仍有一定的配置门槛。