Skip to content

Repository files navigation

MindPDF - AI 辅助论文阅读系统

基于大语言模型的智能论文阅读和辅助理解系统。

项目概述

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加速)

快速开始

1. 克隆项目

git clone https://github.com/Dangerous520/MindPDF.git
cd MindPDF

2. 配置数据库

# 创建数据库并启用pgvector扩展
# 详见 docs/DATABASE_SETUP.md

3. 启动前端

cd mindpdf_web.client
npm install
npm run dev
# 前端运行在 http://localhost:5173

4. 启动 .NET 后端

cd MindPDF_Web.Server
dotnet restore
dotnet run
# 后端运行在 http://localhost:5000

5. 启动 Python AI 服务

cd 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

环境变量配置

Python服务 (.env)

# 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

.NET后端 (appsettings.json)

{
  "ConnectionStrings": {
    "DefaultConnection": "Host=localhost;Port=5432;Database=mindpdf_db;Username=your_user;Password=your_password"
  }
}

API 文档

启动服务后访问:

模型文件说明

由于模型文件较大(数GB),未包含在Git仓库中。首次运行需要下载:

模型 用途 下载方式
BGE-M3 文本嵌入 python download_models.py
Faster-Whisper 语音识别 自动下载
LayoutReader 版面分析 随magic-pdf安装

论文文档

本项目包含完整的毕业论文:

许可证

MIT License

联系方式

如有问题,请提交 Issue。

About

基于大语言模型的AI论文阅读系统 - 全栈项目

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages