# ai-code-learning **Repository Path**: dailongchao123/ai-code-learning ## Basic Information - **Project Name**: ai-code-learning - **Description**: AI编程学习平台 - 代码审查/智能出题/在线批改 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-08-28 - **Last Updated**: 2026-08-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI 编程学习平台 基于 FastAPI + 阿里云百炼(通义千问)的编程学习 Web 应用:代码审查、智能出题、AI 批改、题库练习、错题本、难度自适应与 Python 在线运行。 适合 **本地学习、小组内网演示、课程实验**。若要对公网开放,请务必阅读下方「安全说明」。 ## 功能一览 | 功能 | 是否需要登录 | |------|----------------| | 代码审查(正确性 / 风格 / 性能) | 否 | | 题库专题出题、AI 综合随机出题 | 是 | | AI 批改与解析 | 是 | | 学习进度、错题本、个人中心 | 是 | | Python 在线运行(5 秒超时) | 是 | ## 环境要求 - Python **3.10+** - 可访问互联网的运行环境(调用百炼 API) - [阿里云百炼](https://help.aliyun.com/zh/model-studio/) API Key ## 快速开始 ### 1. 克隆并进入项目 ```bash cd D:\Project\ai-code-learning ``` ### 2. 创建虚拟环境并安装依赖 **Windows (PowerShell):** ```powershell python -m venv .venv .\.venv\Scripts\pip install -r requirements.txt ``` **macOS / Linux:** ```bash python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt ``` ### 3. 配置环境变量 复制示例文件并编辑: ```powershell copy .env.example .env ``` 必填项: | 变量 | 说明 | |------|------| | `DASHSCOPE_API_KEY` | 百炼 API Key | | `JWT_SECRET` | JWT 签名密钥,**至少 32 位随机字符串** | ### 4. 启动服务 ```powershell .\.venv\Scripts\python -m uvicorn app.main:app --reload --host 127.0.0.1 --port 8000 ``` 浏览器打开:**http://127.0.0.1:8000** ### 5. 健康检查(可选) ```bash curl http://127.0.0.1:8000/api/health ``` 返回 `ai_configured: true` 表示 API Key 已配置。 ## 账号说明 - 在页面 **登录 / 注册** 创建账号。 - 用户名:**2~40** 字符;密码:**6~128** 字符。 - 用户数据保存在 `data/users.json`(密码为 SHA256 哈希,非明文)。 - 登录态为 JWT,保存在浏览器 `localStorage`(键名 `acl_token`)。 ## 数据目录 | 路径 | 内容 | |------|------| | `data/users.json` | 注册用户 | | `data/bank.json` | 题库(12 专题 × 每专题 2 题) | | `data/progress/` | 每用户学习进度 | | `data/wrong_book/` | 每用户错题本 | 备份整个 `data/` 目录即可迁移用户数据。 ## 项目结构 ``` ai-code-learning/ ├── app/ # FastAPI 后端 ├── static/ # 前端 HTML / CSS / JS ├── data/ # JSON 数据(运行时生成/更新) ├── requirements.txt ├── .env.example └── README.md ``` ## 安全说明(重要) 1. **在线运行代码**:当前为教学向轻量隔离(子进程 + 超时),**不能**当作生产级沙箱。不要在不可信环境中对陌生人开放「运行代码」。 2. **密码存储**:使用 SHA256,适合 demo;生产环境请改用 bcrypt/argon2。 3. **API Key**:勿将 `.env` 提交到 Git;勿在前端暴露 Key。 4. **JWT**:部署前务必更换 `JWT_SECRET`;公网建议 HTTPS。 ## 常见问题 **Q:页面没有登录按钮 / 仍是旧版界面?** A:强制刷新 `Ctrl+F5`,确认标题为「AI 编程学习 · V2」。 **Q:审查/出题返回 503?** A:检查 `.env` 中 `DASHSCOPE_API_KEY` 是否正确,执行 `/api/health` 查看 `ai_configured`。 **Q:练习功能提示要登录?** A:除代码审查外均需注册登录后使用。 **Q:如何重置所有用户数据?** A:停止服务后删除 `data/users.json`、`data/progress/`、`data/wrong_book/`(保留 `data/bank.json`)。 ## 技术栈 - 后端:Python、FastAPI、PyJWT、OpenAI 兼容客户端(百炼) - 前端:原生 HTML/CSS/JS、highlight.js、marked - 模型:通义千问 `qwen-plus`(百炼兼容模式) ## License 仅供学习与内部使用;二次部署请自行承担安全与合规责任。