一个基于 RAG(检索增强生成) 的个人 AI 知识库应用:上传文档 → 自动解析切分并向量化 → 基于知识库进行带引用溯源的智能问答,同时支持自由对话模式。
Personal AI knowledge base with document ingestion, pgvector semantic search, and RAG-based chat with inline citations.
- 📚 知识库管理:多知识库分组,支持增删改、软删除与回收站恢复
- 📄 文档处理:上传文档 → 异步解析 → 分块 → 向量化入库(进度可视)
- 🔍 RAG 问答:基于向量检索的知识问答,回答附带引用角标,可溯源到原文片段
- 💬 双模式对话:
RAG 模式(限定知识库)与自由模式(通用对话),模式绑定会话 - 🕸️ 知识图谱:基于 Neo4j 的实体关系可视化(实验特性)
- 📊 工作台:统计概览、文档解析状态分布、最近动态与最近会话
- 🔐 账户体系:邮箱注册 / 登录,JWT 会话,数据按用户隔离
| 层 | 技术 |
|---|---|
| 框架 | Next.js 16 (App Router) · React 19 · TypeScript |
| AI | Vercel AI SDK v7 · DeepSeek(对话)· DashScope(Embedding) |
| 数据 | PostgreSQL + pgvector · Prisma ORM |
| 异步任务 | Trigger.dev(文档解析 / 向量化) |
| 存储 | 阿里云 OSS(S3 兼容,STS 临时凭证上传) |
| 图谱 | Neo4j |
| UI | Tailwind CSS v4 · shadcn/ui · TanStack Query · Zustand |
上传文档 ──► OSS(存储) ──► Trigger.dev 任务
│ 解析文本 → 分块 → Embedding
▼
PostgreSQL + pgvector(DocumentChunk.embedding)
▲
用户提问 ──► 向量检索 top-k ──┘──► 拼接上下文 → DeepSeek 流式回答 + Citation 溯源
- Node.js 20+
- PostgreSQL 并启用
pgvector扩展(CREATE EXTENSION IF NOT EXISTS vector;) - 各外部服务的 Key(DeepSeek / DashScope / 阿里云 OSS / Trigger.dev),Neo4j 可选
# 1. 安装依赖(postinstall 会自动执行 prisma generate)
npm install
# 2. 配置环境变量
cp .env.example .env # 然后填入真实值
# 3. 初始化数据库结构
npx prisma migrate dev # 或 npx prisma db push
# 4. 启动开发环境(同时拉起 Next.js 与 Trigger.dev)
npm run dev打开 http://localhost:3000 ,注册账号后即可使用。
Vercel 上运行需要把本地依赖换成云端服务:
- 数据库:使用支持 pgvector 的托管 Postgres(如 Neon),并执行 migrate。
- 环境变量:在 Vercel 项目设置中配置
.env.example里的全部变量。 - 异步任务:文档解析运行在 Trigger.dev,需单独
npx trigger.dev@latest deploy到生产环境。 - 对象存储:配置阿里云 OSS(或其它 S3 兼容存储)。
说明:
prisma generate由postinstall自动触发;生成产物generated/已忽略提交。
- 本项目定位为学习 / 自部署用途,非开箱即用的商业产品。
- 每次问答会调用 LLM 与 Embedding 接口,请自行关注调用成本。
.env已被.gitignore忽略,请勿提交任何真实密钥。
MIT