Skip to content

yiziheng/python-tutor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🐍 Python 智能学伴 — AI驱动的Python个性化学习系统

基于大语言模型(LLM)与检索增强生成(RAG)技术的 Python 智能辅导系统,为学习者提供个性化、交互式的编程学习体验。


项目简介

Python 智能学伴 是一款 AI 驱动的个性化 Python 学习伴侣系统。系统以通义千问(Qwen)大语言模型为核心引擎,结合混合 RAG 检索管线与多智能体(Multi-Agent)架构,构建了一个覆盖 智能问答、练习测评、学情诊断、学习规划 四大场景的完整学习闭环。

系统采用 Streamlit 构建交互式前端界面,LangChain 作为大模型应用开发框架,ChromaDB 作为向量数据库,支持稠密向量检索与 BM25 稀疏检索的混合召回,并通过 RRF 融合排序与可选的 LLM 重排序实现高质量知识检索。


功能特性

1. 智能问答

基于混合 RAG(Hybrid RAG)技术的 Python 智能问答系统。采用 稠密向量检索(Dense)+ BM25 稀疏检索(Sparse)+ RRF 融合排序 + 可选 LLM 重排序 的多级检索策略,从本地 Python 知识库中精准召回相关知识点,结合大语言模型生成准确、可溯源的回答。支持多轮对话,具备上下文理解能力。

2. 练习测评

由 LLM 根据学生当前学习进度与薄弱点智能生成个性化练习题,覆盖选择、填空、代码阅读等多种题型。系统支持自动批改与智能评分,提供详细的解题思路与知识点讲解,并自动记录答题情况以更新学情画像。

3. 学情诊断

基于学习历史的 AI 学情诊断模块。系统自动收集并分析学生的问答记录、练习成绩、知识掌握情况等多维数据,运用 LLM 进行综合能力评估,生成可视化的学情报告,精准识别学习薄弱点与优势领域。

4. 学习规划

根据学情诊断结果与学生个人目标,由 AI 规划代理生成个性化的学习路径与阶段性计划。支持动态调整,随着学习进度与诊断结果的更新,自动优化后续学习内容的优先级与难度安排。


系统架构

本项目采用 五层架构设计,各层职责清晰、耦合度低,便于扩展与维护:

层级 模块 职责说明
UI 层 Streamlit 四页应用 提供智能问答、练习测评、学情诊断、学习规划四个交互页面
编排层 Orchestrator 基于 LLM 的意图分类与路由编排,将用户请求分发至对应 Agent
Agent 层 四大智能体 TutorAgent(问答)、PracticeAgent(练习)、DiagnosticAgent(诊断)、PlannerAgent(规划)
Skill 层 技能工具库 retrieval_skill、exercise_skill、evaluation_skill、diagnosis_skill、planning_skill
基础层 基础设施 混合 RAG 检索管线、记忆系统、LLM 客户端、配置中心

项目结构

├── app.py                  # Streamlit 主入口
├── app/                    # 页面模块
│   ├── chat_page.py        # 智能问答页
│   ├── practice_page.py    # 练习测评页
│   ├── profile_page.py     # 学情诊断页
│   └── plan_page.py        # 学习规划页
├── agents/                 # 智能体
│   ├── orchestrator.py     # 意图路由编排器
│   ├── tutor_agent.py      # 问答代理
│   ├── practice_agent.py   # 练习代理
│   ├── diagnostic_agent.py # 诊断代理
│   └── planner_agent.py    # 规划代理
├── skills/                 # 技能工具库
│   ├── retrieval_skill.py  # 检索技能
│   ├── exercise_skill.py   # 出题技能
│   ├── evaluation_skill.py # 评分技能
│   ├── diagnosis_skill.py  # 诊断技能
│   └── planning_skill.py   # 规划技能
├── rag/                    # RAG 检索管线
│   ├── retriever.py        # 混合检索 (Dense+Sparse+RRF+Rerank)
│   ├── vector_store.py     # ChromaDB 向量存储
│   ├── sparse_store.py     # BM25 稀疏检索
│   ├── document_loader.py  # 文档加载器
│   └── ingest.py           # 知识库自动索引
├── memory/                 # 记忆系统
│   ├── session_memory.py   # 会话滑动窗口记忆
│   ├── student_record.py   # 学习记录持久化
│   └── profile_builder.py  # 学情画像构建
├── core/                   # 核心配置
│   ├── config.py           # 统一配置管理
│   ├── llm_client.py       # LLM 客户端封装
│   ├── prompt_templates.py # 提示词模板
│   └── logger.py           # 日志系统
├── knowledge_base/         # Python 知识库 (9篇 Markdown)
│   ├── 01_variables_types.md
│   ├── 02_control_flow.md
│   ├── 03_functions.md
│   ├── 04_data_structures.md
│   ├── 05_oop.md
│   ├── 06_exceptions_files.md
│   ├── 07_modules.md
│   ├── 08_strings.md
│   └── 09_generators_builtins.md
├── data/                   # 运行时数据
│   ├── chroma_db/          # ChromaDB 向量数据库
│   ├── logs/               # 应用日志
│   ├── bm25_index.json     # BM25 索引文件
│   ├── student_profile.json    # 学生画像
│   └── student_record.json     # 学习记录
├── .env                    # 环境变量配置
├── .env.example            # 环境变量模板
├── requirements.txt        # Python 依赖
└── README.md               # 项目说明

快速开始

1. 克隆仓库

git clone https://github.com/yiziheng/python-tutor.git
cd python-tutor

2. 创建虚拟环境

python -m venv .venv
source .venv/bin/activate  # Linux / macOS
# .venv\Scripts\activate   # Windows

3. 安装依赖

pip install -r requirements.txt

4. 配置环境变量

cp .env.example .env

编辑 .env 文件,填入你的 DashScope API Key:

DASHSCOPE_API_KEY=your-api-key-here

💡 API Key 获取地址:https://dashscope.aliyuncs.com/

5. 启动应用

streamlit run app.py

应用将自动在浏览器中打开(默认地址:http://localhost:8501)。


环境变量

变量名 必填 默认值 说明
DASHSCOPE_API_KEY - DashScope API 密钥,用于调用通义千问模型
LLM_MODEL qwen-plus LLM 模型选择:qwen-turbo / qwen-plus / qwen-max
EMBEDDING_MODEL text-embedding-v1 Embedding 模型,用于向量检索
RERANK_ENABLED false RAG 重排序开关:true 更准确但更慢,false 更快

技术栈

类别 技术选型
大语言模型 Qwen(通义千问)via DashScope API
应用框架 LangChain + Streamlit
向量数据库 ChromaDB
稀疏检索 BM25(rank-bm25 + jieba 中文分词)
数据持久化 JSON 文件存储
可视化 Plotly

知识库覆盖范围

本系统内置 9 大 Python 核心知识模块,覆盖 Python 编程入门到进阶的关键内容:

序号 知识模块 文件名
01 变量与数据类型 01_variables_types.md
02 控制流程 02_control_flow.md
03 函数 03_functions.md
04 数据结构 04_data_structures.md
05 面向对象编程 05_oop.md
06 异常处理与文件操作 06_exceptions_files.md
07 模块与包 07_modules.md
08 字符串处理 08_strings.md
09 生成器与内置函数 09_generators_builtins.md

License

本项目采用 MIT License 开源协议。


Made with ❤️ for Python learners.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages