Thanks to visit codestin.com
Credit goes to github.com

Skip to content

nhywieza/compound-life

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

复利人生 (CompoundLife)

一个基于 AI 的智能学习系统,支持知识图谱生成、智能出卷、自动批改和每日涂鸦记录。

功能特性

核心功能

  • 知识图谱生成:输入科目名称,AI 自动生成知识树,每个知识点有 0-100 的掌握度评分
  • 智能出卷:根据知识点掌握情况智能出题,薄弱环节多练习
  • 自动批改:客观题自动批改,主观题 AI 评分,答题后自动更新知识点分数
  • AI 解答:答题后可针对每道题向 AI 提问,获取详细解答
  • 重新评分:AI 评分失败的题目支持重新评分

辅助功能

  • 每日涂鸦:日历式心情记录,支持 16 种颜色和图片上传
  • 学习进度:可视化展示各科目学习进度

技术栈

层级 技术
后端 Python 3.12 + FastAPI + SQLAlchemy (async)
前端 React 18 + TypeScript + Vite
数据库 PostgreSQL 15
对象存储 MinIO
AI 豆包 (Doubao-Seed) / 通义千问 (Qwen)
部署 Docker Compose

快速开始

方式一:Docker Compose (推荐)

# 1. 克隆项目
git clone <repo-url>
cd compoundLife

# 2. 配置环境变量
cp backend/.env.example backend/.env
# 编辑 backend/.env,填写 AI API 密钥

# 3. 创建外部数据卷(首次运行)
docker volume create learning-pg-data
docker volume create test-claude-code_minio_data

# 4. 启动所有服务
docker-compose up -d

# 5. 访问
# 前端: http://localhost
# 后端 API: http://localhost:8000/docs
# MinIO 控制台: http://localhost:9001

方式二:本地开发

后端

cd backend
pip install -r requirements.txt
cp .env.example .env
# 编辑 .env 文件

uvicorn app.main:app --reload --port 8000

前端

cd frontend
npm install
npm run dev

环境变量

必需配置

变量名 说明 示例
DATABASE_URL PostgreSQL 连接字符串 postgresql+asyncpg://root:root@localhost:5432/learning_db
AI_PROVIDER AI 提供商 doubao-seed 或 qwen
DOUBAO_SEED_API_KEY 豆包 API 密钥 -
QWEN_API_KEY 通义千问 API 密钥 -

MinIO 配置

变量名 说明 默认值
MINIO_ENDPOINT MinIO 内部地址 minio:9000
MINIO_PUBLIC_ENDPOINT MinIO 外部访问地址 localhost:9000
MINIO_ACCESS_KEY MinIO 访问密钥 minioadmin
MINIO_SECRET_KEY MinIO 密钥 minioadmin123
MINIO_BUCKET 存储桶名称 learning-files

项目结构

compoundLife/
├── backend/
│   ├── app/
│   │   ├── api/           # API 路由
│   │   ├── models/        # 数据模型
│   │   ├── schemas/       # Pydantic 模式
│   │   ├── services/      # 业务逻辑
│   │   ├── config.py      # 配置
│   │   └── main.py        # 入口
│   ├── Dockerfile
│   └── requirements.txt
├── frontend/
│   ├── src/
│   │   ├── api/           # API 客户端
│   │   ├── components/    # 组件
│   │   ├── pages/         # 页面
│   │   └── store/         # 状态管理
│   └── Dockerfile
└── docker-compose.yml

API 概览

知识图谱

  • POST /api/knowledge/generate - 生成知识图谱
  • GET /api/knowledge/{subject_id} - 获取知识图谱
  • DELETE /api/knowledge/{subject_id} - 删除知识图谱

试卷

  • POST /api/exam/generate - 生成试卷
  • GET /api/exam/{exam_id} - 获取试卷
  • POST /api/exam/{exam_id}/submit - 提交答卷并批改
  • POST /api/exam/{exam_id}/regrade - 重新评分(AI 评分失败的题目)
  • POST /api/exam/question/{question_id}/ask - 向 AI 提问

用户

  • POST /api/user/register - 用户注册
  • GET /api/user/{user_id}/progress - 获取学习进度

心情记录

  • GET /api/mood/{user_id} - 获取心情记录
  • POST /api/mood/{user_id} - 保存心情记录
  • DELETE /api/mood/{user_id}/{date} - 删除心情记录

文件上传

  • POST /api/upload - 上传文件到 MinIO

常见问题

Docker 内 DNS 解析失败

如果遇到 [Errno -5] No address associated with hostname 错误,已在 docker-compose.yml 中配置了备用 DNS 和 hosts 映射。如果问题仍存在,可尝试重启 Docker。

AI 评分显示"系统评分中,请人工复核"

这是 AI 评分失败时的回退机制。可以通过调用 /api/exam/{exam_id}/regrade 接口重新评分。

License

MIT

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published