Skip to content

bohesocool/autoCeya

Repository files navigation

AutoCeya - 多模型AI压力测试系统

🚀 专业的 AI 模型压力测试工具,支持 Gemini、OpenAI、Claude 多种模型的 RPM 承受能力和稳定性测试。

✨ 核心特性

🎯 多AI模型支持

  • Gemini - Google Gemini 系列模型
  • OpenAI - GPT-3.5、GPT-4 等模型
  • Claude - Anthropic Claude 系列模型
  • 统一接口 - 简单切换不同AI提供商
  • 流式/非流式 - 支持流式和非流式两种请求模式

🔄 双测压模式

  • 🎯 固定测压模式: 设定固定RPM持续测试,支持设置测试时长
  • 📈 自动测压模式: 从起始RPM逐步递增,自动找出承受极限

🎲 智能测试语句

  • 📝 固定语句模式: 使用相同的测试语句(支持最多200,000字符)
  • 🎲 随机语句模式: 自动随机变化测试语句,避免风控检测

💾 增强功能

  • 配置记忆: 自动保存和加载测试配置
  • 🔄 后台运行: 测压任务在服务器后台运行,关闭浏览器不影响
  • 📊 历史记录: 完整的测试历史管理和数据可视化
  • 📈 实时图表: Chart.js驱动的专业趋势图表
  • 📝 详细日志: Winston结构化日志系统

🏗️ 技术架构

  • 模块化设计 - 清晰的分层架构(MVC)
  • API 文档 - Swagger/OpenAPI 3.0
  • 安全加固 - CORS、频率限制、参数验证
  • Docker支持 - 开箱即用的容器化部署

🚀 快速开始

方式一:Docker部署(推荐⭐)

使用Docker Hub镜像(最快捷)

# 使用docker run
docker run -d \
  --name autoceya \
  -p 8998:8998 \
  -e AUTH_SECRET=your_password_here \
  -v $(pwd)/data:/app/data \
  -v $(pwd)/logs:/app/logs \
  bohesocool/autoceya:latest

# 或使用docker-compose
cat > docker-compose.yml << 'EOF'
version: '3.8'
services:
  autoceya:
    image: bohesocool/autoceya:latest
    container_name: autoceya
    ports:
      - "8998:8998"
    environment:
      - AUTH_SECRET=your_secure_password_here
    volumes:
      - ./data:/app/data
      - ./logs:/app/logs
    restart: unless-stopped
EOF

docker-compose up -d

访问: http://localhost:8998

方式二:本地部署

# 1. 克隆项目
git clone https://github.com/bohesocool/autoCeya.git
cd autoCeya

# 2. 安装依赖
npm install

# 3. 配置环境变量
cp .env.example .env
# 编辑 .env 文件,设置 AUTH_SECRET

# 4. 启动服务
npm start

访问: http://localhost:8998

🎯 使用指南

1. 登录系统

使用配置的密钥登录系统

2. 配置测试参数

示例配置:

Gemini:

URL: https://generativelanguage.googleapis.com
模型: gemini-1.5-flash
提供商: Gemini
API密钥: 你的Gemini API密钥

OpenAI:

URL: https://api.openai.com
模型: gpt-4
提供商: OpenAI
API密钥: 你的OpenAI API密钥

Claude:

URL: https://api.anthropic.com
模型: claude-3-opus-20240229
提供商: Claude
API密钥: 你的Claude API密钥

3. 选择测压模式

固定测压模式:

  • 设定一个固定的RPM值
  • 可选设置测试时长(分钟)
  • 适合测试特定负载下的稳定性

自动测压模式:

  • 从起始RPM(默认10)开始
  • 每分钟自动增加10 RPM
  • 持续增加直到达到承受极限

3.5. 选择请求类型

流式请求 (Stream):

  • 使用 Server-Sent Events (SSE) 逐步接收响应
  • 可以测量首字节时间(TTFB)
  • 更接近实际应用场景
  • 适合测试流式输出的性能

非流式请求 (Non-Stream):

  • 一次性接收完整响应
  • 响应时间为总等待时间
  • 适合测试批量处理场景

性能对比:

  • 流式请求通常首字节时间更快
  • 非流式请求总响应时间可能更短
  • 建议根据实际应用场景选择

4. 开始测试

点击"🚀 开始测压"按钮启动测试

重要特性:

  • ✅ 配置会自动保存
  • ✅ 测试在服务器后台运行
  • ✅ 可以随时关闭页面,稍后回来查看进度

5. 查看历史记录

点击"📊 历史记录"查看所有测试记录:

  • 完整的测试数据和统计
  • 趋势曲线图可视化
  • 支持删除和清空记录

📊 智能判定系统

系统会自动判定API承受能力极限:

  1. 成功率阈值: 低于80%(可配置)
  2. ⚠️ 连续失败: 连续失败10次以上(可配置)
  3. ⏱️ 响应超时: 平均响应时间超过150秒(可配置)

🔧 配置说明

环境变量 (.env)

参数 说明 默认值
AUTH_SECRET 登录密钥(必填) your_secure_password_here
PORT 服务器端口 8998
DEFAULT_SUCCESS_THRESHOLD 成功率阈值(%) 80
DEFAULT_MAX_FAILURES 最大连续失败次数 10
DEFAULT_RESPONSE_TIME_THRESHOLD 响应时间阈值(ms) 150000

自动模式配置 (src/config/index.js)

autoMode: {
  initialRPM: 10,           // 起始RPM
  incrementRPM: 10,         // 每次增加的RPM
  incrementInterval: 60000, // 增长间隔(毫秒)
  maxRPM: 1000             // 最大RPM限制
}

📝 API接口说明

完整 API 文档:访问 http://localhost:8998/api-docs 查看 Swagger 交互式文档

主要接口

  • POST /api/login - 登录接口
  • POST /api/start - 启动测压
  • POST /api/stop - 停止测压
  • GET /api/status - 获取当前状态
  • GET /api/history - 获取历史记录列表
  • GET /api/history/:id - 获取单条历史记录详情
  • DELETE /api/history/:id - 删除历史记录
  • POST /api/history/clear - 清空所有历史记录
  • GET /health - 健康检查
  • GET /metrics - 系统指标

🔧 技术栈

后端

  • Node.js + Express - Web框架
  • WebSocket (ws) - 实时通信
  • Winston - 日志系统
  • Swagger - API文档
  • better-sqlite3 - SQLite数据库

前端

  • 原生HTML5/CSS3/JavaScript
  • Chart.js - 数据可视化
  • WebSocket API - 实时数据

架构设计

分层架构 (MVC)
├── Presentation Layer (表现层)
│   ├── Routes (路由)
│   └── Middlewares (中间件)
├── Business Layer (业务层)
│   ├── Controllers (控制器)
│   └── Services (服务)
├── Data Layer (数据层)
│   └── Database (数据库)
└── Infrastructure Layer (基础设施层)
    ├── Config (配置)
    ├── Utils (工具)
    └── Logger (日志)

📁 项目结构

autoCeya/
├── src/                      # 源代码目录
│   ├── config/              # 配置管理
│   ├── controllers/         # 控制器层
│   ├── services/            # 服务层
│   ├── routes/              # 路由层
│   ├── middlewares/         # 中间件
│   ├── utils/               # 工具类
│   └── swagger.js           # Swagger配置
├── public/                   # 前端静态文件
│   ├── login.html           # 登录页面
│   ├── dashboard.html       # 控制面板
│   ├── history.html         # 历史记录列表
│   └── detail.html          # 历史记录详情
├── data/                     # SQLite数据库目录
├── logs/                     # 日志目录
├── server-new.js            # 主服务器文件
├── database.js              # 数据库管理模块
├── package.json             # 依赖管理
├── Dockerfile               # Docker配置
├── docker-compose.yml       # Docker Compose配置
└── .env.example             # 环境变量示例

🔄 版本更新

Docker 部署更新

# 拉取最新镜像
docker-compose pull

# 重启服务
docker-compose up -d

本地部署更新

# 拉取最新代码
git pull origin main

# 安装依赖
npm install

# 重启服务
npm start

🔐 安全建议

  1. 务必修改默认密钥: 在 .env 中设置强密码
  2. 不要提交 .env 文件: 已在 .gitignore 中排除
  3. 使用HTTPS: 生产环境建议配置SSL证书
  4. 限制访问IP: 可通过防火墙限制访问来源
  5. 定期更新依赖: 运行 npm audit 检查安全漏洞
  6. 使用固定版本: 生产环境使用特定版本号而非latest

🎨 界面预览

  • 登录页面: 简洁优雅的渐变背景登录界面
  • 控制台: 实时数据展示,关键指标一目了然
  • 历史记录: 精美的列表和详情展示
  • 趋势图表: 交互式Chart.js图表,完整展示测试过程

🤝 贡献指南

欢迎提交Issue和Pull Request!

📄 许可证

MIT License

⚠️ 免责声明

本工具仅用于测试目的,请勿用于非法用途。使用本工具进行API测试时,请确保:

  1. 你有权限测试目标API
  2. 遵守API提供商的服务条款
  3. 不要对他人的服务造成损害
  4. 合理控制测试强度

📞 支持

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

查看详细文档: QUICK_START.md


Enjoy Testing! 🚀

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors