# rag_recommend_system **Repository Path**: liyan24/rag_recommend_system ## Basic Information - **Project Name**: rag_recommend_system - **Description**: No description available - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-03 - **Last Updated**: 2025-04-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智能课程推荐系统 ## 项目简介 这是一个基于 RAG (Retrieval-Augmented Generation) 技术的智能课程推荐系统。系统能够根据用户的需求,从课程数据库中检索相关课程,并生成个性化的课程推荐。 ## 技术背景 - **RAG 技术**:结合检索和生成的技术,通过检索相关文档来增强大语言模型的回答质量 - **向量数据库**:使用 ChromaDB 存储课程信息的向量表示,实现高效的相似度检索 - **大语言模型**:使用本地部署的 Ollama 模型进行文本理解和推荐生成 - **Web 界面**:使用 Streamlit 构建直观的用户界面 ## 技术方案 ### 1. 数据存储 - **SQLite**:存储课程的基本信息(课程ID、名称、描述等) - **ChromaDB**:存储课程描述的向量表示,用于相似度检索 ### 2. 核心组件 - **RAGProcessor**:处理用户查询,生成 embedding 和推荐结果 - **DatabaseManager**:管理数据库操作,包括课程存储和检索 - **Web 界面**:提供用户交互界面,包括学生界面和管理员界面 ### 3. 工作流程 1. 用户输入查询 2. 系统生成查询的 embedding 3. 在向量数据库中检索相似课程 4. 使用 LLM 生成个性化推荐 5. 展示推荐结果 ## 环境要求 - Python 3.8+ - Ollama(本地部署) - 其他依赖见 `requirements.txt` ## 安装步骤 1. 克隆项目代码 ```bash git clone [项目地址] cd [项目目录] ``` 2. 安装依赖 ```bash pip install -r requirements.txt ``` 3. 安装 Ollama - 访问 [Ollama 官网](https://ollama.ai/) 下载并安装 - 拉取必要的模型: ```bash ollama pull bge-m3 ollama pull llama2 ``` 4. 配置环境变量 - 复制 `.env.example` 文件为 `.env`: ```bash cp .env.example .env ``` - 编辑 `.env` 文件,设置必要的环境变量: - `LLM_BASE_URL`:Ollama 服务的地址 - `LLM_API_KEY`:API密钥(本地部署可为任意值) - `LLM_MODEL_NAME`:使用的模型名称 - `EMBEDDING_MODEL`:embedding模型名称 ## 使用说明 ### 管理员使用步骤 1. 启动系统 ```bash streamlit run main.py ``` 2. 在侧边栏选择"管理员界面" 3. 课程管理 - 上传课程数据(支持 CSV/JSON 格式) - 手动添加课程 - 查看课程列表 - 删除课程 4. 数据预处理 - 执行数据清洗 - 生成课程 embedding ### 学生使用步骤 1. 启动系统 ```bash streamlit run main.py ``` 2. 在侧边栏选择"学生界面" 3. 输入需求 - 在输入框中输入你的学习需求 - 例如:"我想学习Python编程" 4. 查看推荐结果 - 系统会显示相似课程列表 - 显示个性化推荐课程 - 提供推荐理由和相关度评分 5. 查看历史记录 - 系统会保存最近的对话历史 - 可以随时查看之前的推荐结果 ## 注意事项 1. 确保 Ollama 服务正常运行 2. 首次使用需要导入课程数据 3. 推荐结果的质量取决于课程数据的质量和数量 4. 定期清理对话历史以保持界面整洁 5. 不要将 `.env` 文件提交到版本控制系统 ## 常见问题 1. **Q: 为什么推荐结果不准确?** - A: 检查课程数据是否完整,描述是否详细 - A: 确保 embedding 模型正常运行 2. **Q: 系统响应较慢怎么办?** - A: 检查网络连接 - A: 确保本地资源充足 3. **Q: 如何更新课程数据?** - A: 在管理员界面使用文件上传功能 - A: 或手动添加/修改课程信息 4. **Q: 环境变量配置错误怎么办?** - A: 检查 `.env` 文件是否存在 - A: 确保所有必要的环境变量都已正确设置 - A: 重启应用以使新的环境变量生效 ## 技术支持 如有问题,请提交 Issue 或联系技术支持。