mirror of
https://github.com/tiennm99/goclaw.git
synced 2026-10-17 04:15:05 +00:00
feat(usage): add AI budget usage caps
This commit is contained in:
1 parent
43049d3b3f
commit
9ff5a629d2
67 files changed
+4195
-249
No files matched your search
@@ -357,6 +357,36 @@ LLM provider management. API keys are encrypted with AES-256-GCM in the database
|
||||
| `GET` | `/v1/embedding/status` | Check global embedding availability |
|
||||
| `GET` | `/v1/providers/claude-cli/auth-status` | Check Claude CLI login status |
|
||||
|
||||
### Model Pricing
|
||||
|
||||
| Method | Path | Description |
|
||||
|--------|------|-------------|
|
||||
| `POST` | `/v1/model-pricing/sync-openrouter` | Sync OpenRouter `/models` pricing catalog (master scope) |
|
||||
| `GET` | `/v1/model-pricing` | Search catalog models by `model` query |
|
||||
| `GET` | `/v1/model-pricing/overrides` | List tenant pricing overrides, optionally by `provider_id` |
|
||||
| `PUT` | `/v1/model-pricing/overrides` | Upsert provider/model custom pricing |
|
||||
| `DELETE` | `/v1/model-pricing/overrides/{id}` | Delete pricing override |
|
||||
|
||||
Override body:
|
||||
|
||||
```json
|
||||
{
|
||||
"provider_id": "0193a5b0-7000-7000-8000-000000000123",
|
||||
"provider_type": "openrouter",
|
||||
"model_id": "anthropic/claude-sonnet-4-5",
|
||||
"pricing": {
|
||||
"input": "0.000003",
|
||||
"output": "0.000015",
|
||||
"cache_read": "0.0000003",
|
||||
"cache_write": "0.00000375",
|
||||
"reasoning": "0.000015",
|
||||
"request": "0",
|
||||
"image": "0",
|
||||
"web_search": "0"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**Supported types:** `anthropic_native`, `openai_compat`, `chatgpt_oauth`, `gemini_native`, `dashscope`, `bailian`, `minimax`, `claude_cli`, `acp`
|
||||
|
||||
Reconnect response:
|
||||
@@ -1238,11 +1268,32 @@ Follow response:
|
||||
| `GET` | `/v1/usage/timeseries` | Time-series usage points |
|
||||
| `GET` | `/v1/usage/breakdown` | Breakdown by provider/model/channel |
|
||||
| `GET` | `/v1/usage/summary` | Summary with period comparison |
|
||||
| `GET` | `/v1/usage-caps/policies` | List usage cap policies |
|
||||
| `POST` | `/v1/usage-caps/policies` | Create token/cost cap policy |
|
||||
| `PATCH` | `/v1/usage-caps/policies/{id}` | Update cap policy |
|
||||
| `DELETE` | `/v1/usage-caps/policies/{id}` | Delete cap policy |
|
||||
| `GET` | `/v1/usage-caps/utilization` | Current-window used and reserved counters |
|
||||
| `GET` | `/v1/usage-caps/events` | Recent allow/block/reconcile/skip events |
|
||||
|
||||
**Query params:** `from`, `to` (RFC 3339), `agent_id`, `provider`, `model`, `channel`, `group_by`
|
||||
|
||||
**Periods:** `24h`, `today`, `7d`, `30d`
|
||||
|
||||
Usage cap policy body:
|
||||
|
||||
```json
|
||||
{
|
||||
"agent_id": "optional-agent-uuid",
|
||||
"provider_id": "optional-provider-uuid",
|
||||
"provider_type": "openrouter",
|
||||
"model_id": "anthropic/claude-sonnet-4-5",
|
||||
"window": "day",
|
||||
"max_tokens": 500000,
|
||||
"max_cost_usd": 25,
|
||||
"enabled": true
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 24. Activity & Audit
|
||||
|
||||
Reference in new issue
Block a user