一个用于自动创建、提交和管理问卷星调查的系统,支持随机生成答案和使用大语言模型(LLM)生成答案。
| 文档类别 | 文档链接 | 说明 |
|---|---|---|
| 文档索引 | 文档索引 | 所有文档的索引页面 |
| 快速入门 | 快速入门指南 | 适合新手用户的快速入门指南 |
| 部署指南 | 部署指南 完整Docker部署指南 关于Docker的说明 |
包含一键式部署、Docker部署和本地直接运行等多种方式 |
| 开发指南 | 开发指南 | 适合开发者的二次开发指南 |
| 测试指南 | 测试指南 参数化测试 代理测试 |
说明如何进行单元测试和集成测试 |
| 用户指南 | 用户指南 | 说明系统的使用方法 |
| 设计文档 | 架构设计 数据库设计 接口设计 安全设计 |
系统设计相关文档 |
| 项目管理 | 项目结构 任务进度 变更日志 问题跟踪 图表文档 |
项目管理相关文档 |
| 中文文档 | 中文文档目录 业务逻辑文档 后端实现细节 后端架构文档一 后端架构文档二 |
中文技术文档 |
- 支持问卷解析与分析
- 支持多种题型自动填写(单选、多选、填空、评分等)
- 支持随机答案生成
- 支持使用大语言模型(LLM)生成智能答案
- 支持批量任务管理与执行
- 支持进度监控与结果统计
- 支持自定义提交间隔与模拟真实用户行为
- 支持Docker容器化部署
- 兼容Windows、Linux和MacOS系统
该系统采用前后端分离架构:
- 前端: Vue.js + Element Plus
- 后端: Python + Flask
- 数据库: 文件系统存储 (JSON)
- 部署: Docker + Docker Compose
- 确保已安装 Docker Desktop for Windows
- 下载此项目到本地
- 打开PowerShell或命令提示符,运行
setup.ps1脚本 - 按照提示完成安装和配置
- 访问
http://localhost:80(或配置的其他端口) 打开系统界面
- 确保已安装 Docker Desktop for Windows
- 打开PowerShell终端(以管理员身份运行)
- 进入项目根目录
- 运行以下命令:
# 设置PowerShell执行策略为Bypass,允许运行脚本
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
# 初始化环境
.\deploy.ps1 setup
# 根据提示编辑.env文件配置环境变量
# 启动应用
.\deploy.ps1 start- 访问
http://localhost:80(或配置的其他端口) 打开系统界面
- 确保已安装 Docker Desktop for Windows
- 复制
.env.example为.env并编辑配置 - 在项目根目录中打开命令提示符或PowerShell
- 运行以下命令:
# 构建镜像
docker-compose build
# 启动容器
docker-compose up -d- 访问
http://localhost:80(或配置的其他端口) 打开系统界面
项目配置主要通过 .env 文件进行,关键配置项包括:
# 环境配置
ENV_MODE=production # production或development
FLASK_ENV=production # production或development
NODE_ENV=production # production或development
LOG_LEVEL=INFO # DEBUG, INFO, WARNING, ERROR, CRITICAL
# 端口配置
BACKEND_PORT=5000 # 后端服务端口
FRONTEND_PORT=80 # 前端服务端口
# API配置
API_URL=http://localhost:5000 # 前端访问后端API的URL
# LLM配置(如果使用大语言模型生成答案)
LLM_PROVIDER=openai # 大语言模型提供商: openai, baidu, zhipu等
LLM_API_KEY=your_api_key_here # API密钥
LLM_MODEL=gpt-3.5-turbo # 使用的模型名称
# 代理配置
USE_PROXY=false # 是否使用代理
DEFAULT_PROXY_URL= # 默认代理URL,例如 http://127.0.0.1:7890
本项目使用分层的依赖管理方式,以支持不同的开发和部署环境。
backend/requirements.txt: 主依赖文件backend/requirements/requirements-base.txt: 核心依赖backend/requirements/requirements-prod.txt: 生产环境依赖backend/requirements/requirements-dev.txt: 开发环境依赖backend/requirements/requirements-docs.txt: 文档生成依赖
建议在开发环境中使用虚拟环境,以隔离项目依赖,防止与其他项目冲突。本项目提供了自动创建虚拟环境的脚本。
# 创建并设置虚拟环境
setup_venv.bat
# 激活虚拟环境
call .venv\Scripts\activate.bat
# 安装开发依赖
set DEV_MODE=1
setup_venv.bat
# 安装文档依赖
set DOCS_MODE=1
setup_venv.bat# 创建并设置虚拟环境
bash setup_venv.sh
# 激活虚拟环境
source .venv/bin/activate
# 安装开发依赖
export DEV_MODE=1
bash setup_venv.sh
# 安装文档依赖
export DOCS_MODE=1
bash setup_venv.sh为确保开发和部署环境的一致性,可以使用依赖锁定文件:
# 生成锁定文件
lock_dependencies.bat# 生成锁定文件
bash lock_dependencies.shDocker环境已配置好依赖管理,无需额外设置。使用以下命令运行:
# 开发环境
docker-compose -f docker-compose.yml -f docker-compose.override.yml up
# 生产环境
docker-compose up -d- 在系统首页点击"创建任务"按钮
- 输入问卷星链接(格式为:
https://www.wjx.cn/vm/xxxx.aspx或仅ID部分) - 设置任务参数,包括:
- 提交次数: 需要提交的问卷数量
- 使用LLM: 是否使用大语言模型生成答案
- 使用代理: 是否使用代理服务
- 点击"创建"按钮
- 在"任务列表"页面可以查看所有任务
- 任务信息包括:
- 任务ID
- 问卷标题
- 进度百分比
- 成功/失败数量
- 创建时间
- 状态 (等待中/运行中/已完成/失败)
- 在任务列表中点击任务ID可以查看详情
- 详情页包括:
- 问卷结构
- 提交记录
- 失败原因(如有)
脚本提供多种命令用于管理系统:
# 初始设置环境和配置
.\deploy.ps1 setup
# 启动应用服务
.\deploy.ps1 start
# 停止应用服务
.\deploy.ps1 stop
# 重启应用服务
.\deploy.ps1 restart
# 查看应用日志
.\deploy.ps1 logs
# 或查看特定服务日志
.\deploy.ps1 logs backend
.\deploy.ps1 logs frontend
# 查看应用状态
.\deploy.ps1 status
# 更新应用(拉取最新代码并重建)
.\deploy.ps1 update
# 备份数据
.\deploy.ps1 backup
# 恢复数据
.\deploy.ps1 restore .\backups\backup_20250328_142500.zip
# 清理未使用的资源(镜像、容器、卷)
.\deploy.ps1 pruneA: 请检查以下几点:
- Docker Desktop是否正常运行
- 前端容器是否启动成功,可通过
.\deploy.ps1 status查看 - 端口是否被占用,可在
.env文件中修改端口配置 - 防火墙是否允许相应端口的访问
A: 这可能是nginx配置中的Content Security Policy (CSP)头部设置不正确。请参考完整Docker部署指南中的解决方法。
A: 这可能是由于健康检查配置问题导致的。请参考完整Docker部署指南中的解决方法。
A: 请检查:
- 问卷链接格式是否正确
- 是否需要设置代理 (中国大陆地区可能需要代理)
- 问卷是否存在密码保护或需要登录
A: 请确保:
- 已在
.env文件中正确配置LLM相关参数 - API密钥有效且未超出配额
- 如使用国际API,可能需要配置代理
运行以下命令检查Docker服务状态:
# 检查Docker是否运行
docker info
# 检查容器状态
docker-compose ps
# 查看详细日志
docker-compose logs如果遇到网络问题,无法从Docker Hub拉取镜像,请参考关于Docker的说明中的镜像加速器配置。
排查网络连接问题:
- 确认本地网络连接正常
- 检查防火墙设置,确保不阻止Docker网络
- 如使用代理,确认代理服务正常工作
建议定期更新系统以获取最新功能和安全修复:
# 拉取最新代码并重建应用
.\deploy.ps1 update若要进行二次开发:
- 将
.env文件中的ENV_MODE设置为development - 重启应用:
.\deploy.ps1 restart - 前端代码位于
frontend目录 - 后端代码位于
backend目录 - 进行修改后,重新构建并启动应用
- 优化品赞IP代理功能,添加网站分类和代理适用性检查
- 添加对国内外网站的自动判断,只对国内网站使用品赞代理
- 优化LLM提供商分类,对国内外提供商使用不同的代理策略
- 更新代理相关文档,添加详细的使用说明
- 添加对阿里云通义大模型的支持
- 添加对Google Gemini API的支持
- 添加对兔子API的支持
- 优化LLM生成器的接口,提高兼容性
- 首次正式发布
- 支持问卷解析与分析
- 支持多种题型自动填写(单选、多选、填空、评分等)
- 支持随机答案生成
- 支持使用大语言模型(LLM)生成智能答案
- 支持批量任务管理与执行
本项目采用 MIT 许可证