AI-powered automated verification system for code quality
Project description
VerifyAI
AI驱动的自动化验证系统 - 让代码质量保障从繁琐变简单
为什么需要 VerifyAI?
在快速迭代的 AI 时代,代码变更频繁,传统的测试维护方式已经跟不上节奏:
| 传统方式的痛点 | VerifyAI 的解决方案 |
|---|---|
| 手写测试耗时费力 | LLM 自动生成高质量测试 |
| 测试覆盖不全面 | 智能分析代码结构,全面覆盖 |
| 测试失败难定位 | AI 分析根因,自动建议修复 |
| 回归测试慢 | 增量验证,只测变更相关 |
| 多语言项目难统一 | 统一支持 Python/JS/TS/Go/Java |
核心价值
🚀 一键初始化,零配置启动
# 克隆并安装
git clone https://github.com/ikane001/VerifyAI.git
cd VerifyAI
pip install -e .
# 初始化(自动检测项目结构)
vai init
# 生成测试
vai generate
# 就这么简单!
🧠 智能测试生成
- 理解代码语义:不是简单的模板填充,而是真正理解函数逻辑
- 覆盖边界情况:自动发现潜在的边界条件和异常情况
- 支持多LLM:Claude、OpenAI、Ollama 本地模型均可
⚡ 增量验证,极速反馈
# 只验证本次变更影响的代码
vai verify --trigger push # 2分钟快速检查
vai verify --trigger pr # 5分钟标准检查
vai verify --trigger merge # 10分钟完整检查
🔧 智能问题分析
# 测试失败?让 AI 帮你分析
vai analyze
# 自动识别:
# - 根本原因
# - 问题位置
# - 修复建议
快速开始
安装
⚠️ 注意:目前暂未发布到 PyPI,请使用源码安装。后续版本将支持
pip install verify-ai。
# 方式一:从源码安装(当前推荐)
git clone https://github.com/ikane001/VerifyAI.git
cd VerifyAI
pip install -e .
# 方式二:完整安装(包含服务器功能)
pip install -e '.[all]'
# 方式三:开发模式安装
pip install -e '.[dev]'
三步上手
# 1️⃣ 初始化项目
cd your-project
vai init
# 2️⃣ 扫描项目结构
vai scan --verbose
# 3️⃣ 生成测试
vai generate --dry-run # 预览
vai generate # 执行
日常使用
# 提交前快速验证
vai verify --trigger push
# PR 检查
vai verify --trigger pr --base main
# 查看变更
vai diff --from HEAD~3 --to HEAD
# 分析测试失败
vai analyze --output pytest_output.txt
# 覆盖率分析
vai coverage --threshold 80
# 启动 Dashboard
vai dashboard
完整命令参考
| 命令 | 功能 | 示例 |
|---|---|---|
vai init |
初始化项目配置 | vai init . |
vai scan |
扫描项目结构 | vai scan --verbose |
vai generate |
生成测试 | vai generate --type unit |
vai verify |
运行验证 | vai verify --trigger pr |
vai diff |
查看Git变更 | vai diff --from HEAD~1 |
vai commits |
提交历史 | vai commits -n 10 |
vai analyze |
分析失败 | vai analyze --fix |
vai replay |
从日志生成测试 | vai replay api.har |
vai coverage |
覆盖率分析 | vai coverage --threshold 80 |
vai dashboard |
启动Web仪表盘 | vai dashboard --port 8080 |
vai server |
启动API服务 | vai server -p 8000 |
分层验证策略
VerifyAI 根据不同场景自动选择最优策略:
┌─────────────┬──────────────┬─────────────┬─────────────────────┐
│ 触发时机 │ 超时时间 │ 测试范围 │ 特点 │
├─────────────┼──────────────┼─────────────┼─────────────────────┤
│ push │ 2分钟 │ 变更文件 │ 快速反馈,不阻塞 │
│ PR │ 5分钟 │ 变更+影响 │ 生成缺失测试 │
│ merge │ 10分钟 │ 全量回归 │ 阻塞不合格代码 │
│ scheduled │ 1小时 │ 全项目 │ 重新生成过时测试 │
└─────────────┴──────────────┴─────────────┴─────────────────────┘
支持的语言
使用 tree-sitter 进行多语言 AST 解析:
- ✅ Python - 完整支持
- ✅ JavaScript/TypeScript - 完整支持
- ✅ Go - 完整支持
- ✅ Java - 完整支持
集成方式
1. CLI 工具(推荐新手)
vai generate
vai verify
2. Cursor Skill(IDE 集成)
项目包含 SKILL.md,Cursor AI 可直接调用 VerifyAI 功能。
3. MCP Server(AI 助手集成)
vai mcp-server
支持 Claude Desktop、Cursor 等 MCP 兼容的 AI 工具。
4. REST API(团队服务)
vai server --port 8000
提供完整的 REST API,支持 GitHub Webhook 自动触发。
5. GitHub Actions
# .github/workflows/verify.yml
- name: Run VerifyAI
run: |
git clone https://github.com/ikane001/VerifyAI.git /tmp/verify-ai
pip install /tmp/verify-ai
vai verify --trigger pr
💡 后续发布到 PyPI 后,可简化为
pip install verify-ai
场景还原
从真实日志生成测试,覆盖实际使用场景:
# 从浏览器录制生成测试
vai replay session.har --output tests/test_browser.py
# 从 API 日志生成测试
vai replay nginx_access.log --output tests/test_api.py
# 从错误日志生成复现测试
vai replay error.log --format error
配置文件
verify-ai.yaml 示例:
project:
name: my-project
languages: [python, typescript]
test_output: ./tests/generated
llm:
provider: claude # claude | openai | ollama
model: claude-sonnet-4-20250514
fallback: ollama/codellama # 本地备选
triggers:
push: [lint, affected_unit_tests]
pull_request: [unit_tests, integration_tests, ai_review]
merge_to_main: [regression_tests, e2e_tests]
fix:
auto_fix_tests: true # 自动修复测试代码
auto_fix_source: false # 源码修复需确认
require_approval: true
环境变量
| 变量名 | 说明 |
|---|---|
VAI_CLAUDE_API_KEY |
Claude API Key |
VAI_OPENAI_API_KEY |
OpenAI API Key |
GITHUB_TOKEN |
GitHub Token(服务器模式) |
GITHUB_WEBHOOK_SECRET |
Webhook 签名密钥 |
💡 如果已安装 Claude Code,会自动读取
~/.claude/settings.json中的配置。
项目架构
verify-ai/
├── src/verify_ai/
│ ├── core/ # 核心引擎(扫描、生成)
│ ├── parsers/ # 代码解析(AST、OpenAPI)
│ ├── llm/ # LLM 客户端(Claude/OpenAI/Ollama)
│ ├── git/ # Git 集成(追踪、策略)
│ ├── analysis/ # 失败分析与修复
│ ├── scenario/ # 场景还原
│ ├── coverage/ # 覆盖率分析
│ ├── dashboard/ # Web Dashboard
│ ├── mcp/ # MCP Server
│ └── server/ # REST API
├── tests/ # 测试套件
├── examples/ # 示例项目
└── SKILL.md # Cursor Skill 配置
开发
# 克隆项目
git clone https://github.com/ikane001/VerifyAI.git
cd VerifyAI
# 安装开发依赖
pip install -e '.[dev]'
# 运行测试
pytest tests/ -v
# 代码检查
ruff check src/
路线图
- Phase 1: 核心引擎 + 多LLM支持
- Phase 2: tree-sitter 多语言解析
- Phase 3: Git 增量追踪
- Phase 4: 智能问题分析
- Phase 5: 场景还原
- Phase 6: Cursor Skill + MCP
- Phase 7: GitHub Webhook + API
- Phase 8: Web Dashboard
- Phase 9: 覆盖率分析
- Phase 10: 性能测试生成
贡献
欢迎提交 Issue 和 Pull Request!
License
MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file verify_ai-0.1.0.tar.gz.
File metadata
- Download URL: verify_ai-0.1.0.tar.gz
- Upload date:
- Size: 131.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a549ef561dd5c755249af74f880e6409b11be6da3fe58740c81a28cfaede0211
|
|
| MD5 |
f74b328835ec40306726c1056b30bb3c
|
|
| BLAKE2b-256 |
61bdd53eaed1e184e7371eb19cb304071a5b6fb4d92d8f000d53ceebbdc5998d
|
File details
Details for the file verify_ai-0.1.0-py3-none-any.whl.
File metadata
- Download URL: verify_ai-0.1.0-py3-none-any.whl
- Upload date:
- Size: 109.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
174e28d2848e607e2f4144b1f2ca51db7f4f1d84d1bbe0ee9475cd8577be2e71
|
|
| MD5 |
d5d1219921854af7c71c6d26e38c3bea
|
|
| BLAKE2b-256 |
cda3b0bfa76fc70cd7b98cad47374cfc363528e99c538cf8ffca6a40702415fb
|