基于大语言模型的智能论文阅读和辅助理解系统。
MindPDF 是一个智能化的学术论文阅读和辅助理解系统,通过 AI 技术帮助用户更高效地阅读、理解和分析学术论文。
- 用户系统: 手机号登录注册,个性化设置
- PDF处理: 自动提取文本、公式、图表,转换为结构化 Markdown
- 多语言翻译: 英文论文自动翻译为中文,支持双语对照阅读
- AI问答: 基于 RAG 的智能问答系统
- 个性化AI: 可自定义AI角色人设(翻译员、学术导师、批评者等)
- 语音交互: 支持语音输入和语音输出(TTS)
┌─────────────────────────────────────────────────────────────┐
│ 前端 (React + TypeScript) │
│ - 登录注册 - 论文阅读 - AI对话 - 设置管理 │
└────────────────────┬────────────────────────────────────────┘
│ HTTP/WebSocket
┌────────────────────▼────────────────────────────────────────┐
│ 后端 (ASP.NET Core 10.0) │
│ - 用户认证 - 论文管理 - 会话管理 - WebSocket │
└────────────────────┬────────────────────────────────────────┘
│
┌───────────┼───────────┐
│ │ │
┌────▼────┐ ┌──▼──────┐ ┌─▼──────────┐
│PostgreSQL│ │Python │ │向量数据库 │
│(主数据库)│ │FastAPI │ │(Chroma) │
└─────────┘ └─────────┘ └────────────┘
MindPDF_Web/
├── mindpdf_web.client/ # React 前端
│ ├── src/
│ │ ├── components/ # UI组件
│ │ │ ├── ui/ # shadcn/ui 基础组件
│ │ │ ├── CharacterSelector.tsx
│ │ │ ├── VoicePlayer.tsx
│ │ │ ├── PaperList.tsx
│ │ │ └── ...
│ │ ├── pages/ # 页面组件
│ │ │ ├── Login.tsx
│ │ │ ├── Papers.tsx
│ │ │ ├── PaperReader.tsx
│ │ │ └── PaperChat.tsx
│ │ ├── services/ # API服务
│ │ │ ├── api.ts # Axios封装
│ │ │ ├── auth.ts # 认证服务
│ │ │ ├── chat.ts # 对话服务
│ │ │ └── ...
│ │ ├── hooks/ # 自定义Hooks
│ │ └── lib/ # 工具函数
│ ├── package.json
│ └── vite.config.ts
│
├── MindPDF_Web.Server/ # ASP.NET Core 后端
│ ├── Controllers/ # API 控制器
│ │ ├── AuthController.cs
│ │ ├── ChatController.cs
│ │ └── VoiceController.cs
│ ├── Services/ # 业务服务
│ ├── Models/ # 数据模型
│ ├── Data/ # 数据访问层 (EF Core)
│ └── uploads/ # 用户上传文件 (Git忽略)
│
├── MindPDF_Python/ # Python FastAPI AI服务
│ ├── app/
│ │ ├── core/ # 配置和日志
│ │ ├── models/ # 数据模型 (Git忽略大模型文件)
│ │ ├── services/ # AI业务服务
│ │ │ ├── pdf_service.py # PDF解析
│ │ │ ├── hybrid_retrieval_service.py # 混合检索
│ │ │ ├── character_chat_service.py # 对话生成
│ │ │ └── tts_service.py # 语音合成
│ │ └── main.py # 应用入口
│ ├── venv/ # 虚拟环境 (Git忽略)
│ └── requirements.txt # Python依赖
│
└── docs/ # 项目文档
├── 论文_*.md # 毕业论文各章节
├── 答辩PPT大纲.md # 答辩PPT大纲
└── *.mermaid # 架构图
- .NET: 10.0 SDK
- Node.js: 18+
- PostgreSQL: 15+ (with pgvector扩展)
- Python: 3.10+
- CUDA: 12.4 (可选,用于GPU加速)
git clone https://github.com/Dangerous520/MindPDF.git
cd MindPDF# 创建数据库并启用pgvector扩展
# 详见 docs/DATABASE_SETUP.mdcd mindpdf_web.client
npm install
npm run dev
# 前端运行在 http://localhost:5173cd MindPDF_Web.Server
dotnet restore
dotnet run
# 后端运行在 http://localhost:5000cd MindPDF_Python
# 创建虚拟环境
python -m venv venv
venv\Scripts\activate # Windows
# source venv/bin/activate # Linux/Mac
# 安装依赖
pip install -r requirements.txt
# 下载模型 (首次运行)
python download_models.py
# 配置环境变量
copy .env.example .env
# 编辑 .env 文件,填入API密钥
# 启动服务
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000# API配置
API_HOST=0.0.0.0
API_PORT=8000
# DeepSeek API配置
DEEPSEEK_API_KEY=your_deepseek_api_key
DEEPSEEK_BASE_URL=https://api.deepseek.com
# MiniMax TTS配置
MINIMAX_GROUP_ID=your_group_id
MINIMAX_API_KEY=your_api_key
# 联网搜索API配置
TAVILY_API_KEY=your_tavily_key
# 文件存储路径
UPLOAD_BASE_PATH=../MindPDF_Web.Server/uploads
# Redis配置
REDIS_URL=redis://localhost:6379/0{
"ConnectionStrings": {
"DefaultConnection": "Host=localhost;Port=5432;Database=mindpdf_db;Username=your_user;Password=your_password"
}
}启动服务后访问:
- Python服务: http://localhost:8000/docs (Swagger UI)
- .NET后端: http://localhost:5000/swagger
由于模型文件较大(数GB),未包含在Git仓库中。首次运行需要下载:
| 模型 | 用途 | 下载方式 |
|---|---|---|
| BGE-M3 | 文本嵌入 | python download_models.py |
| Faster-Whisper | 语音识别 | 自动下载 |
| LayoutReader | 版面分析 | 随magic-pdf安装 |
本项目包含完整的毕业论文:
MIT License
如有问题,请提交 Issue。