Skip to content

112zjw/BioInfo_Problem_Generator

Repository files navigation

生物信息题目生成系统 (BioInfo Problem Generator)

一个基于AI大模型的智能出题与练习平台,支持从PDF文档和生物图像中提取内容并自动生成相关题目。用户可以通过前端界面直接上传和插入图片来进行题目生成。

项目资源

项目源码托管在Gitee上,可通过以下命令克隆获取:

git clone https://gitee.com/zjw2050/bio-info_-problem_-generator.git

项目简介

BioInfo 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文档生成)

功能特性

  1. 内容导入

    • PDF文档上传与解析
    • 生物相关图片上传与分析
    • 智能内容相关性判断
  2. 题目生成

    • 三种难度级别:初中、高中、大学
    • 四种题型支持:单选题、多选题、判断题、简答题
    • 自定义题目数量和分数配置
    • 知识点标签和解析说明
  3. 结果展示与导出

    • 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 (可选,未设置时使用关键词规则)

快速开始

后端服务启动

  1. 进入后端目录
cd BackEnd/bioinfo_problem_backend
  1. 安装依赖
pip install fastapi uvicorn pydantic PyPDF2 python-docx requests
  1. 设置API Key (可选) 在main.py中设置:
DASHSCOPE_API_KEY = "your-api-key-here"
  1. 启动服务
python main.py

服务将在 http://127.0.0.1:8000 运行

前端应用启动

  1. 进入前端目录
cd FrontEnd/BioInfoProblemGenerator
  1. 安装依赖
npm install
  1. 启动开发服务器
npm run dev

应用将在 http://localhost:5173 运行

使用说明

  1. 打开前端应用界面 主界面
  2. 上传PDF文档或生物相关图片 上传
  3. 配置题目类型、数量和分数 题目配置
  4. 查看生成的题目,支持打印或导出为Word文档 题目展示1 题目展示2 题目展示3

API接口

生成题目

POST /generate-questions
Content-Type: multipart/form-data

参数:
- pdf: PDF文件 (可选)
- images: 图片文件数组 (可选)
- config: 配置JSON字符串

导出Word文档

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文件

本项目支持打包为独立的exe文件,方便在没有Python环境的机器上运行。

打包步骤

  1. 确保已安装PyInstaller:
pip install pyinstaller
  1. 构建前端项目:
cd FrontEnd/BioInfoProblemGenerator
npm run build
cd ../..
  1. 将前端构建结果复制到后端:
python build_complete.py
  1. 使用PyInstaller打包:
pyinstaller bioinfo_generator.spec

打包完成后,可执行文件位于dist/bioinfo_generator.exe,双击即可运行。

打包脚本说明

  • build_complete.py: 自动化构建脚本,负责复制前端文件并调用PyInstaller
  • bioinfo_generator.spec: PyInstaller配置文件
  • launcher.py: 程序启动器,负责启动后端服务并打开浏览器

开发指南

添加新的题目模板

在后端main.py中修改QUESTION_TEMPLATES字典,添加新的难度级别或题型模板。

自定义样式

前端样式可在各Vue组件的<style>标签中修改,全局样式在src/App.vue中定义。

注意事项

  1. 系统需要网络连接以调用通义千问API
  2. 若未设置API Key,系统将使用关键词规则进行内容判断
  3. PDF文件需要包含可提取的文本内容(非扫描版图片PDF)
  4. 导出Word功能需要后端安装python-docx

许可证

本项目仅供学习和研究使用。

联系方式

如有问题或建议,请提交Issue或联系项目维护者。

About

一个基于AI大模型的智能出题与练习平台,支持从PDF文档和生物图像中提取内容并自动生成相关题目。用户可以通过前端界面直接上传和插入图片来进行题目生成。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors