一个基于AI大模型的智能出题与练习平台,支持从PDF文档和生物图像中提取内容并自动生成相关题目。用户可以通过前端界面直接上传和插入图片来进行题目生成。
项目源码托管在Gitee上,可通过以下命令克隆获取:
git clone https://gitee.com/zjw2050/bio-info_-problem_-generator.gitBioInfo Problem Generator 是一个智能化的生物学科题目生成系统,能够:
- 从PDF文档和生物相关图片中提取内容
- 使用通义千问大模型智能判断内容相关性
- 根据提取的内容自动生成不同难度和题型的题目
- 支持题目预览、打印和导出为Word文档
- Vue 3 (Composition API)
- Element Plus UI组件库
- Pinia 状态管理
- Vite 构建工具
- Axios HTTP客户端
- FastAPI (Python)
- 通义千问API (qwen-plus, qwen-vl-plus)
- PyPDF2 (PDF解析)
- python-docx (Word文档生成)
-
内容导入
- PDF文档上传与解析
- 生物相关图片上传与分析
- 智能内容相关性判断
-
题目生成
- 三种难度级别:初中、高中、大学
- 四种题型支持:单选题、多选题、判断题、简答题
- 自定义题目数量和分数配置
- 知识点标签和解析说明
-
结果展示与导出
- Web界面友好展示生成题目
- 一键打印导出PDF
- 导出含答案/无答案Word文档
BioInfo_Problem_Generator/
├── BackEnd/ # 后端服务
│ └── bioinfo_problem_backend/
│ └── main.py # 主程序文件
└── FrontEnd/ # 前端应用
└── BioInfoProblemGenerator/
├── src/ # 源代码目录
│ ├── views/ # 页面组件
│ ├── router/ # 路由配置
│ └── App.vue # 根组件
└── package.json # 项目依赖配置
- Node.js >= 20.19.0
- npm >= 9.0.0
- Python >= 3.8
- 通义千问API Key (可选,未设置时使用关键词规则)
- 进入后端目录
cd BackEnd/bioinfo_problem_backend- 安装依赖
pip install fastapi uvicorn pydantic PyPDF2 python-docx requests- 设置API Key (可选)
在
main.py中设置:
DASHSCOPE_API_KEY = "your-api-key-here"- 启动服务
python main.py服务将在 http://127.0.0.1:8000 运行
- 进入前端目录
cd FrontEnd/BioInfoProblemGenerator- 安装依赖
npm install- 启动开发服务器
npm run dev应用将在 http://localhost:5173 运行
POST /generate-questions
Content-Type: multipart/form-data
参数:
- pdf: PDF文件 (可选)
- images: 图片文件数组 (可选)
- config: 配置JSON字符串
POST /export-word
Content-Type: application/json
参数:
- with_answers: 是否包含答案 (布尔值)
- questions: 题目数组
# 生产环境运行
uvicorn main:app --host 0.0.0.0 --port 8000# 构建生产版本
npm run build构建后的文件位于dist目录,可部署到任何静态文件服务器。
本项目支持打包为独立的exe文件,方便在没有Python环境的机器上运行。
- 确保已安装PyInstaller:
pip install pyinstaller- 构建前端项目:
cd FrontEnd/BioInfoProblemGenerator
npm run build
cd ../..- 将前端构建结果复制到后端:
python build_complete.py- 使用PyInstaller打包:
pyinstaller bioinfo_generator.spec打包完成后,可执行文件位于dist/bioinfo_generator.exe,双击即可运行。
build_complete.py: 自动化构建脚本,负责复制前端文件并调用PyInstallerbioinfo_generator.spec: PyInstaller配置文件launcher.py: 程序启动器,负责启动后端服务并打开浏览器
在后端main.py中修改QUESTION_TEMPLATES字典,添加新的难度级别或题型模板。
前端样式可在各Vue组件的<style>标签中修改,全局样式在src/App.vue中定义。
- 系统需要网络连接以调用通义千问API
- 若未设置API Key,系统将使用关键词规则进行内容判断
- PDF文件需要包含可提取的文本内容(非扫描版图片PDF)
- 导出Word功能需要后端安装
python-docx库
本项目仅供学习和研究使用。
如有问题或建议,请提交Issue或联系项目维护者。





