Skip to main content

AI-powered automated verification system for code quality

Project description

VerifyAI

AI驱动的自动化验证系统 - 让代码质量保障从繁琐变简单

Tests Python License


为什么需要 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

verify_ai-0.1.0.tar.gz (131.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

verify_ai-0.1.0-py3-none-any.whl (109.4 kB view details)

Uploaded Python 3

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

Hashes for verify_ai-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a549ef561dd5c755249af74f880e6409b11be6da3fe58740c81a28cfaede0211
MD5 f74b328835ec40306726c1056b30bb3c
BLAKE2b-256 61bdd53eaed1e184e7371eb19cb304071a5b6fb4d92d8f000d53ceebbdc5998d

See more details on using hashes here.

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

Hashes for verify_ai-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 174e28d2848e607e2f4144b1f2ca51db7f4f1d84d1bbe0ee9475cd8577be2e71
MD5 d5d1219921854af7c71c6d26e38c3bea
BLAKE2b-256 cda3b0bfa76fc70cd7b98cad47374cfc363528e99c538cf8ffca6a40702415fb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page