feat: 添加 Token 费用估算与自定义忽略规则

- 在 LLM 客户端中捕获流式响应的 Token 使用量
- 内置多模型官方定价表,支持自定义输入/输出单价覆盖
- 新增 `--price-input` 和 `--price-output` 配置项
- 支持通过 `.airignore` 文件自定义排除评审文件
- 更新中英日文文档,补充费用估算与忽略规则说明
This commit is contained in:
unclesam committed 2026-08-21 15:00:21 +08:00
1 parent 02e2e4edd3
commit 26b0342934
12 files changed
+658 -63

No files matched your search

+5 -2
View File
@@ -43,6 +43,9 @@ func GetDiff(ctx context.Context, args ...string) (string, error) {
return "", ErrNotGitRepo
}
repoRoot, _ := GetRepoRoot(ctx)
customIgnores := LoadAirIgnore(repoRoot)
var cmdArgs []string
if len(args) == 0 {
// 1. 默认先提取暂存区代码 (准备 commit 的代码)
@@ -51,7 +54,7 @@ func GetDiff(ctx context.Context, args ...string) (string, error) {
return "", err
}
if strings.TrimSpace(stagedDiff) != "" {
return truncateDiffIfNeeded(FilterDiff(stagedDiff)), nil
return truncateDiffIfNeeded(FilterDiff(stagedDiff, customIgnores...)), nil
}
// 2. 如果暂存区为空,回退提取工作区未暂存的修改
cmdArgs = []string{}
@@ -64,7 +67,7 @@ func GetDiff(ctx context.Context, args ...string) (string, error) {
return "", err
}
filteredDiff := FilterDiff(rawDiff)
filteredDiff := FilterDiff(rawDiff, customIgnores...)
if strings.TrimSpace(filteredDiff) == "" {
return "", ErrEmptyDiff
}