# education-llm **Repository Path**: sun-yu-de/education-llm ## Basic Information - **Project Name**: education-llm - **Description**: # AI教育助手 集知识问答、个性化学习路径推荐于一体的AI教育助手。 ## 技术栈 - LangChain/LLM Chain (0.3版本) - Qwen API (通过dashscope库调用) - FastAPI - Redis - Milvus - Elasticsearch ## 环境要求 - Python 3.10 - MySQL 5.7+ - Redis - Milvus 2 - **Primary Language**: Python - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 0 - **Created**: 2025-08-04 - **Last Updated**: 2026-03-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI教育助手 集知识问答、个性化学习路径推荐于一体的AI教育助手。 ## 技术栈 - FastAPI (Web框架) - LangChain (LLM流程编排) - Qwen API (通过dashscope库调用) - Redis (缓存管理) - Milvus (向量数据库) - Elasticsearch (关键词检索) - HuggingFace (嵌入模型) ## 环境要求 - Python 3.10 - Redis - Milvus 2.4+ - Elasticsearch 8.8+ ## 项目架构 项目采用分层架构设计,基于FastAPI构建高性能API服务,通过LangChain实现智能流程编排。系统架构包括以下几个核心组件: 1. **API层**:基于FastAPI构建的RESTful API接口 2. **核心业务层**:包括问答系统、推荐系统等核心功能模块 3. **数据访问层**:与Milvus、Elasticsearch、Redis等数据存储系统交互 4. **工具层**:文档处理、缓存管理等辅助功能模块 ## 功能特性 ### 智能问答系统 - 基于LangChain Expression Language (LCEL)构建的链式调用 - 混合检索增强生成:融合Milvus向量相似度与Elasticsearch关键词权重排序 - 动态分块策略优化文档处理 - 对话历史管理,支持上下文连续对话 ### 个性化学习路径推荐 - 基于用户画像分析的学习路径生成 - 学习进度跟踪与更新 - 多层次学习路径推荐(初级、中级、高级) ### 文档处理系统 - 支持纯文本文件(.txt)处理 - 支持PDF文件(.pdf)处理(使用PyMuPDF) - 文档分块并存储到Milvus向量数据库 - 支持通过Web界面上传文档 ### 缓存优化 - Redis分层缓存架构(短期对话缓存+长期用户偏好存储) - 对话记忆管理,提高用户交互体验 ### 嵌入模型 - 使用HuggingFace的`sentence-transformers/all-MiniLM-L6-v2`模型进行向量化处理 - 支持本地模型加载,提高数据隐私性和处理速度 ## 安装与运行 1. 确保已安装Python 3.10 2. 创建并激活虚拟环境: ```bash # Windows python -m venv venv venv\Scripts\activate # Linux/Mac python3.10 -m venv venv source venv/bin/activate ``` 3. 安装依赖: ```bash pip install -r requirements.txt ``` 4. 配置环境变量: 复制 `.env.example` 文件为 `.env` 并根据实际情况修改配置 5. 运行应用: ```bash python main.py ``` 6. 访问应用: 打开浏览器访问 `http://localhost:8000` ## API接口 - `POST /api/query` - 知识问答 - `POST /api/recommend` - 学习路径推荐 - `POST /api/process_document` - 文档处理 - `POST /api/update_progress` - 更新学习进度 - `GET /api/user_profile/{user_id}` - 获取用户画像 - `POST /api/upload_document` - 上传并处理文档 - `GET /document_upload` - 文档上传页面 ## Web界面 项目提供两个主要的Web界面: 1. **主页** (`/`) - 提供问答功能和学习路径推荐入口 2. **文档上传页面** (`/document_upload`) - 用于上传和处理文档 ## Qwen模型调用 本项目通过阿里云官方dashscope库调用通义千问(Qwen)模型: ```python from langchain_community.llms import Tongyi llm = Tongyi( model_name="qwen-plus", dashscope_api_key="sk-ca6531ca..." ) ``` ## 注意事项 1. 项目使用LangChain 0.3+版本,API与旧版本有所不同 2. HuggingFaceEmbeddings已从langchain-community迁移到langchain-huggingface包 3. Elasticsearch客户端使用8.x版本以确保兼容性 4. 项目使用`sentence-transformers/all-MiniLM-L6-v2`模型进行文本嵌入,首次运行时需要网络连接下载模型