ACG 文档

项目结构

clone 后 ai-cost-gate 源码目录是怎么组织的。

clone 私有仓库(仅 Pro 买家)后,目录是:

ai-cost-gate/
├── cmd/
│   └── aicg/                  # 主二进制入口
├── internal/
│   ├── proxy/                 # OpenAI 兼容代理
│   ├── attribution/           # project/agent/model 归因
│   ├── budget/                # 预算、限流、自动拉闸
│   ├── store/                 # SQLite 持久化
│   ├── admin/                 # admin HTTP API
│   └── dashboard/             # 内嵌的 web dashboard
├── web/                       # dashboard 前端资源
├── data/                      # 运行时 SQLite 文件所在
├── docker-compose.yml
├── Dockerfile
├── .env.example
└── README.md

顶层约定

  • cmd/ 放入口。目前只有一个二进制 aicg,启动代理、admin API 和内嵌 dashboard。
  • internal/ 放所有业务逻辑。internal/ 之外不可导入——这是 Go 的约定,我们也遵循。
  • web/ 放 dashboard 的静态资源,用 go:embed 内嵌到二进制,docker 镜像始终是单 artifact。

改东西从哪里开始

  • 加 provider 适配器?internal/proxy/adapters/
  • 改成本计算?internal/attribution/pricing.go
  • 改 auto-stop 启发?internal/budget/autostop.go
  • 改 schema?internal/store/migrations/

构建产物

go build ./cmd/aicg 之后,二进制在 ./aicg。Docker 镜像用多阶段 Dockerfile 走 distroless 基础镜像——无 shell、无包管理器,最终 ~30MB。

On this page