AI 智能修复¶
linthis 集成了 AI 提供商,可以自动建议并应用 lint 问题的修复。此功能将传统代码检查与 AI 智能相结合,提供上下文感知的代码修正。
快速开始¶
# 交互式 AI 修复模式
linthis --fix --ai
# 指定 AI 提供商
linthis --fix --ai --provider claude
# 自动接受所有修复(用于 CI/自动化)
linthis --fix --ai --provider claude-cli -y
支持的提供商¶
| 提供商 | 描述 | 认证方式 |
|---|---|---|
claude |
Anthropic Claude API(默认) | ANTHROPIC_API_KEY 或 ANTHROPIC_AUTH_TOKEN |
claude-cli |
Claude CLI(claude -p 命令) |
Claude CLI 登录 |
codebuddy |
CodeBuddy API | CODEBUDDY_API_KEY |
codebuddy-cli |
CodeBuddy CLI | CodeBuddy CLI 登录 |
openai |
OpenAI API | OPENAI_API_KEY |
local |
本地 LLM(Ollama 等) | 无需认证(本地端点) |
mock |
模拟提供商(用于测试) | 无需认证 |
提供商优先级¶
AI 提供商按以下顺序解析:
- 命令行参数 (
--provider <name>) - 最高优先级 - 环境变量 (
LINTHIS_AI_PROVIDER) - 配置文件 (
.linthis/config.toml中的[ai]部分) - 默认值 -
claude
使用模式¶
交互模式¶
审查并选择性地应用 AI 建议的修复:
linthis -i src/ --fix --ai
在交互模式下,对于每个问题你可以: - 接受 (y) - 应用建议的修复 - 拒绝 (n) - 跳过此建议 - 编辑 (e) - 应用前修改建议 - 查看差异 (d) - 查看建议的更改 - 退出 (q) - 退出修复模式
自动模式¶
自动接受所有 AI 修复,无需提示:
linthis --auto-fix
⚠️ 警告:这将自动修改文件。请谨慎使用,并确保有版本控制。
指定提供商¶
# 使用 Claude API
linthis --fix --ai --provider claude
# 使用 Claude CLI(运行 `claude -p` 命令)
linthis --fix --ai --provider claude-cli
# 使用 CodeBuddy
linthis --fix --ai --provider codebuddy
# 使用本地 LLM
linthis --fix --ai --provider local
配置¶
环境变量¶
# 设置默认提供商
export LINTHIS_AI_PROVIDER=claude-cli
# 不同提供商的 API 密钥
export ANTHROPIC_API_KEY=sk-ant-xxx
export CODEBUDDY_API_KEY=xxx
export OPENAI_API_KEY=sk-xxx
# 自定义端点
export ANTHROPIC_BASE_URL=https://api.anthropic.com
export LINTHIS_AI_ENDPOINT=http://localhost:11434 # 用于本地 LLM
# 自定义模型
export LINTHIS_AI_MODEL=claude-sonnet-4-20250514
配置文件¶
添加到 .linthis/config.toml:
[ai]
provider = "claude" # 默认提供商
model = "claude-sonnet-4-20250514" # 可选:覆盖默认模型
Git Hook 集成¶
在 pre-commit hook 中使用 AI 修复自动修复问题:
# 在 .git/hooks/pre-commit 或 .prek/pre-commit 中
linthis -s --auto-fix
更安全的 CI 用法(使用 Claude CLI):
linthis -s --auto-fix --provider claude-cli
示例¶
修复 Python 文件¶
# 使用 AI 检查并修复 Python 文件
linthis -i "*.py" --fix --ai
# 仅修复暂存的 Python 文件
linthis -s -l python --fix --ai --provider claude-cli
修复多种语言¶
# 修复 Python 和 TypeScript 文件
linthis -l python,typescript --fix --ai
CI/CD 集成¶
# GitHub Actions 示例
- name: Lint and Fix
run: |
linthis --fix --ai --provider claude -y
git diff --exit-code || (git add -A && git commit -m "style: auto-fix lint issues")
提供商详情¶
Claude (API)¶
直接使用 Anthropic Claude API。需要 API 密钥。
export ANTHROPIC_API_KEY=sk-ant-xxx
linthis --fix --ai --provider claude
Claude CLI¶
使用 claude CLI 工具的 -p(打印)模式。CLI 处理认证。
# 确保 claude CLI 已安装并登录
claude --version
# 使用 CLI 提供商
linthis --fix --ai --provider claude-cli
本地 LLM¶
连接到本地 LLM 服务器(如 Ollama):
# 使用编程模型启动 Ollama
ollama run codellama:7b
# 配置端点
export LINTHIS_AI_ENDPOINT=http://localhost:11434
# 使用本地提供商
linthis --fix --ai --provider local
故障排除¶
"API key not found"(未找到 API 密钥)¶
为你的提供商设置相应的环境变量:
# 对于 Claude API
export ANTHROPIC_API_KEY=your-key-here
# 对于 OpenAI
export OPENAI_API_KEY=your-key-here
"Provider not available"(提供商不可用)¶
对于 CLI 提供商,确保 CLI 工具已安装:
# 检查 Claude CLI
claude --version
# 检查 CodeBuddy CLI
codebuddy --version
速率限制¶
如果遇到速率限制,考虑:
- 使用 --provider local 进行无限制的本地处理
- 分批处理文件
- 在请求之间添加延迟
观看演示¶
观看 AI 修复视频教程,20 秒了解 AI 修复前后对比。