Skip to main content

基于大模型的智能代码分析工具,支持代码审查、文档生成、架构分析和安全扫描

Project description

VCode Analysis

基于私有化部署大模型的智能代码分析工具。兼容 OpenAI API 格式,支持代码审查、文档生成、架构分析和安全扫描。

特性

  • 代码审查 — 1-10 评分 + 问题定位 + 改进建议
  • 批量分析 — 智能打包多文件为单次 API 调用,减少 85%+ 请求量
  • 双层缓存 — 内存 LRU + 磁盘持久化,二次分析减少 98% 调用
  • 安全扫描 — 正则规则引擎 + LLM 深度语义分析
  • 架构分析 — 模块识别、依赖关系、耦合度评估
  • 文档生成 — 模块文档 / API 文档 / README 自动生成
  • 多语言解析 — Python/Java AST、Kotlin/C 双模式、JS/TS/Vue 正则
  • 上下文增强 — 自动构建项目依赖关系,提升分析质量
  • Git 集成 — 单仓库 + 批量多仓库操作
  • 交互式报告 — Markdown + HTML(排序、筛选、折叠)
  • 知识图谱 — 自动构建代码库领域模型(实体、关系、业务规则)

安装

# 使用 pip
pip install vcode-analysis

# 或使用 uvx 直接运行
uvx vcode-analysis review ./src

可选依赖

# Java AST 解析
pip install javalang

# C 语言精确解析
pip install pycparser

快速开始

1. 配置 LLM 服务

# 方式一:环境变量
export OPENAI_API_BASE=http://localhost:8000/v1
export OPENAI_API_KEY=sk-your-key

# 方式二:配置文件
vcode-analysis config --init
# 编辑 ~/.code-analysis/config.yaml

# 方式三:命令行参数
vcode-analysis review ./src --base-url http://localhost:8000/v1 --model qwen35-35b-a3b

2. 代码审查

# 审查目录(默认启用批量+缓存)
vcode-analysis review ./src

# 审查单个文件
vcode-analysis review ./src/main.py

# 指定输出格式
vcode-analysis review ./src -o report.md -f markdown
vcode-analysis review ./src -o report.html -f html

# 启用上下文增强(提升分析质量)
vcode-analysis review ./src --context

# 审查 Git 提交
vcode-analysis review-commit abc1234

3. 其他分析

# 生成文档
vcode-analysis doc ./src --type module
vcode-analysis doc ./src --type api
vcode-analysis doc ./src --type readme

# 架构分析
vcode-analysis arch ./src

# 安全扫描
vcode-analysis security ./src
vcode-analysis security ./src --deep    # LLM 深度扫描

# 目录扫描
vcode-analysis scan-dir ./src

# 知识图谱
vcode-analysis kg ./src
vcode-analysis kg ./src --format json    # JSON 格式输出
vcode-analysis kg ./src --llm           # LLM 增强分析

4. Git 操作

# 克隆并分析
vcode-analysis clone https://github.com/user/repo.git

# 批量克隆(从文件读取 URL 列表)
vcode-analysis batch-clone repos.txt ./workspace

# 批量拉取
vcode-analysis batch-pull ./workspace

# 多仓库状态
vcode-analysis git-status ./workspace

命令参考

vcode-analysis review <path>              代码审查
vcode-analysis review-commit <commit>     审查指定提交
vcode-analysis doc <path>                 生成文档
vcode-analysis arch <path>                架构分析
vcode-analysis security <path>            安全扫描
vcode-analysis clone <url>                克隆仓库并分析
vcode-analysis batch-clone <file> <dir>   批量克隆
vcode-analysis batch-pull <dir>           批量拉取
vcode-analysis git-status <dir>           多仓库状态
vcode-analysis scan-dir <path>            目录扫描
vcode-analysis kg <path>                  知识图谱生成
vcode-analysis config [--init|--show]     配置管理

全局选项

选项 说明 默认值
-c, --config 配置文件路径 ~/.code-analysis/config.yaml
--base-url LLM API 地址 http://localhost:8000/v1
--api-key API 密钥 sk-dummy
-m, --model 模型名称 qwen35-35b-a3b
--max-tokens 最大输出 Token 4096
--timeout 请求超时(秒) 180
-o, --output 输出文件路径 自动生成
-f, --format 输出格式(markdown/html) markdown
-w, --workers 并发线程数 5
--context 启用上下文增强 关闭
--no-cache 禁用缓存 关闭
--no-batch 禁用批量分析 关闭

配置文件

~/.code-analysis/config.yaml

llm:
  base_url: "http://localhost:8000/v1"
  api_key: "sk-your-key"
  model: "qwen35-35b-a3b"
  temperature: 0.7
  max_tokens: 8192
  timeout: 180

analysis:
  max_file_size: 102400
  max_workers: 5
  ignore_patterns:
    - "custom_ignore/**"
  supported_extensions:
    - ".py"
    - ".java"
    - ".kt"

cache:
  ttl: 604800
  memory_cache_size: 1000

环境变量

变量 说明
OPENAI_API_BASE / OPENAI_BASE_URL LLM API 地址
OPENAI_API_KEY API 密钥
CODE_ANALYSIS_MODEL 模型名称
CODE_ANALYSIS_TEMPERATURE 温度参数
CODE_ANALYSIS_MAX_TOKENS 最大输出 Token

支持的语言

语言 扩展名 解析方式
Python .py AST
Java .java AST (javalang)
Kotlin .kt, .kts 双模式 (fast/precise)
C .c, .h 双模式 (fast/precise)
C++ .cpp, .hpp, .cc, .cxx 正则
JavaScript .js, .jsx 正则
TypeScript .ts, .tsx 正则
Vue .vue 正则
Go .go 正则
Rust .rs 正则
配置文件 .json, .yaml, .yml 文本
Markdown .md 文本

批量分析原理

100 个 Python 文件
    │
    ▼  按语言分组 + Token 估算
    │
    ├── 批次 1: file_01.py + file_03.py + file_07.py  (~7500 tokens)
    ├── 批次 2: file_02.py + file_05.py               (~6000 tokens)
    ├── ...
    └── 批次 15: file_98.py + file_99.py              (~5000 tokens)
    │
    ▼  每批合并为一次 API 调用
    │
    100 次 → ~15 次 API 调用(减少 85%)

二次分析(10 个文件变更):缓存命中 90 个文件,仅分析 10 个 → ~2 次调用(减少 98%)。

项目结构

code-analysis/
├── cli.py                     CLI 入口
├── core/                      核心模块
│   ├── analyzer.py            分析引擎
│   ├── llm_client.py          LLM 客户端
│   ├── config.py              配置管理
│   ├── ignore.py              过滤规则
│   ├── git_handler.py         Git 操作
│   ├── batch_planner.py       批量规划
│   ├── batch_analyzer.py      批量分析
│   ├── cache_manager.py       缓存管理
│   ├── token_estimator.py     Token 估算
│   └── report_generator.py    报告生成
├── analyzers/                 分析器
│   ├── code_review.py         代码审查
│   ├── documentation.py       文档生成
│   ├── architecture.py        架构分析
│   ├── security.py            安全扫描
│   ├── directory.py           目录分析
│   ├── context_builder.py     上下文构建
│   └── knowledge_graph.py     知识图谱
├── parsers/                   解析器
│   ├── python_parser.py       Python AST
│   ├── java_parser.py         Java AST
│   ├── kotlin_parser.py       Kotlin 双模式
│   ├── c_parser.py            C 双模式
│   ├── javascript_parser.py   JavaScript
│   └── typescript_parser.py   TypeScript
└── docs/                      文档
    ├── USER_MANUAL.md         用户手册
    └── design/                设计文档

文档

License

MIT

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

vcode_analysis-0.7.1.tar.gz (188.3 kB view details)

Uploaded Source

Built Distribution

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

vcode_analysis-0.7.1-py3-none-any.whl (150.8 kB view details)

Uploaded Python 3

File details

Details for the file vcode_analysis-0.7.1.tar.gz.

File metadata

  • Download URL: vcode_analysis-0.7.1.tar.gz
  • Upload date:
  • Size: 188.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for vcode_analysis-0.7.1.tar.gz
Algorithm Hash digest
SHA256 692220744d1dc4cde1aeede2075a17daf5aad47ebc87b247870fc99838625a1b
MD5 c8940387953d0f442f0e80ff68cec6b4
BLAKE2b-256 49b44aa2f52291e580157afc767a9e8e10a6accbee79a5ca2396beebcd93980e

See more details on using hashes here.

File details

Details for the file vcode_analysis-0.7.1-py3-none-any.whl.

File metadata

  • Download URL: vcode_analysis-0.7.1-py3-none-any.whl
  • Upload date:
  • Size: 150.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for vcode_analysis-0.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bb746dcaf7633944507a4cd4da20ccf5b067a05c97649fd56e1a189fd08f8e1a
MD5 84e959b58576ee385b507c4a34c90c82
BLAKE2b-256 578db1796a032d0ca1e5df24c42ab3d0f86e020101f2e3cbd3c4f9aaf35f6c1d

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