# SelfTest **Repository Path**: bukcn/self-test ## Basic Information - **Project Name**: SelfTest - **Description**: 学习自测 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-22 - **Last Updated**: 2026-01-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智能自测学习系统 基于大语言模型和向量检索技术的智能自测学习系统,帮助用户通过问答形式巩固知识。 ## 项目介绍 智能自测学习系统是一个结合了自然语言处理、向量检索和知识管理技术的学习辅助工具。系统允许用户上传知识文档,通过AI生成针对性的测试题目,并提供个性化的学习反馈和统计分析。 ### 核心特性 - **知识库管理**:支持文档上传、解析和向量化存储 - **智能题库生成**:基于知识库内容自动生成选择题、判断题等 - **个性化测试**:根据用户表现动态调整题目难度和类型 - **学习统计分析**:提供详细的答题记录和知识掌握情况分析 - **错题本功能**:自动收集错题,支持复习强化 ## 功能模块 ### 1. 知识库管理模块 (`backend/knowledge_manager.py`) - 文档上传与解析(支持TXT、MD格式) - 文本分块与向量化处理 - 向量数据库存储与检索 - 知识库增删改查操作 ### 2. 试题生成模块 (`backend/question_generator.py`) - 基于知识库内容的智能题库生成 - 多种题型支持(选择题、判断题、填空题等) - 题目难度自适应调整 - 题目质量评估与筛选 ### 3. 测试评估模块 (`backend/evaluator.py`) - 自动批改答题结果 - 答题质量评估 - 学习效果分析 - 知识点掌握度计算 ### 4. 统计分析模块 (`backend/statistics.py`) - 用户学习进度跟踪 - 答题统计与趋势分析 - 知识点掌握情况可视化 - 学习效果报告生成 ### 5. 用户认证模块 (`backend/auth.py`) - 用户注册与登录 - 权限管理(普通用户/管理员) - 会话管理与安全性保障 ### 6. UI界面模块 (`ui/`) - 登录页面 (`ui/login_page.py`) - 知识库管理页面 (`ui/knowledge_page.py`) - 测试页面 (`ui/test_page.py`) - 统计页面 (`ui/statistics_page.py`) - 管理员页面 (`ui/admin_users_page.py`) - 审核页面 (`ui/review_page.py`) ### 7. 工具模块 (`utils/`) - LLM客户端 (`utils/llm_client.py`):支持多种大语言模型 - 嵌入模型 (`utils/embeddings.py`):文本向量化处理 - 文本处理器 (`utils/text_processor.py`):文档解析与预处理 ## 使用环境 ### 系统要求 - **操作系统**:Windows/macOS/Linux - **Python版本**:3.9 或更高版本 - **内存**:建议8GB以上 - **存储空间**:至少2GB可用空间 ### 依赖软件 - Python 3.9+ - pip包管理器 - Git(用于克隆项目) ## 安装使用说明 ### 1. 环境准备 ```bash # 克隆项目 git clone cd self-test # 创建虚拟环境(推荐) python -m venv venv # 激活虚拟环境 # Windows: venv\Scripts\activate # macOS/Linux: source venv/bin/activate ``` ### 2. 安装依赖 ```bash pip install -r requirements.txt ``` ### 3. 配置环境变量 复制 `.env.example` 文件并重命名为 `.env`,然后填写相应的API密钥: ```bash cp .env.example .env ``` 编辑 `.env` 文件,配置以下参数: ```env # DeepSeek API配置 DEEPSEEK_API_KEY=your_deepseek_api_key DEEPSEEK_BASE_URL=https://api.deepseek.com/v1 # 通义千问API配置(可选) QIANWEN_API_KEY=your_qwen_api_key QIANWEN_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1 # ModelScope API配置(可选) MODELSCOPE_API_KEY=your_modelscope_api_key MODELSCOPE_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1 # 默认LLM配置 DEFAULT_LLM=deepseek DEFAULT_MODEL_NAME=qwen-plus # Embedding模型配置 EMBEDDING_MODEL=BAAI/bge-base-zh-v1.5 EMBEDDING_DEVICE=cpu # 应用配置 SQLITE_DB_PATH=./data/learning.db CHROMA_PERSIST_DIR=./data/chroma_db KNOWLEDGE_BASE_DIR=./data/knowledge_base ``` ### 4. 启动应用 ```bash python app.py ``` 应用将启动在 `http://localhost:8501`,您可以打开浏览器访问。 ### 5. 默认账号 - **管理员账号**:`admin` / `admin123` - **用户账号**:首次使用可注册新账号 ### 6. 使用步骤 1. **登录系统**:使用管理员账号或注册新用户 2. **创建知识库**:进入知识库管理页面,创建新的知识库 3. **上传文档**:将学习资料上传到对应知识库 4. **开始测试**:选择知识库开始智能测试 5. **查看统计**:在统计页面查看学习效果分析 ## 技术架构 - **前端**:Streamlit Web界面 - **后端**:Python Flask/FastAPI - **数据库**:SQLite(用户数据)+ ChromaDB(向量数据) - **AI模型**:支持DeepSeek、通义千问等多种大语言模型 - **向量化**:Sentence Transformers中文模型 ## 开发说明 ### 项目结构 ``` self-test/ ├── agents/ # AI代理模块 ├── backend/ # 后端服务 ├── ui/ # 用户界面 ├── utils/ # 工具函数 ├── data/ # 数据存储目录 ├── app.py # 主应用入口 ├── config.py # 配置文件 ├── requirements.txt # 依赖包列表 └── README.md # 项目说明 ``` ### 模型配置 系统支持多种大语言模型,可通过配置文件切换: - **DeepSeek**:默认选项,适合通用场景 - **通义千问**:阿里云模型,中文处理能力强 - **ModelScope**:魔搭平台模型 ### 向量数据库 使用ChromaDB存储文档向量,支持高效相似性检索。Embedding模型使用BAAI/bge-base-zh-v1.5,针对中文进行了优化。 ## 贡献指南 欢迎提交Issue和Pull Request来改进项目。 ## 许可证 [在此处添加许可证信息] --- 如有问题,请联系项目维护者。