llm-connect/contracts/functional/rates.md
tegwick 09aa1f3604
Some checks failed
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Has been cancelled
Implement LLM-WP-0007: Kimi K3 default and EUR spend reporting
Add moonshotai/kimi-k3 as OpenRouter basemodel default after live smoke,
USD→EUR cost conversion, append-only usage ledger, and CLI run/cost/spend
week commands with token and euro reporting.
2026-08-03 22:00:34 +02:00

35 lines
1.1 KiB
Markdown

# Model Rate Registry
`llm_connect.rates` owns static model list prices used for planning and
post-hoc estimates.
## Contract
- `ModelRate` records `model_id`, prompt and completion rates in USD per
1,000 tokens, `currency`, `source_url`, and `captured_at`.
- `ModelRateRegistry.default()` returns the bundled OpenRouter snapshot
(base rates captured `2026-05-17`; `moonshotai/kimi-k3` captured
`2026-08-03` at `$0.003` / `$0.015` per 1k prompt/completion).
- `ModelRateRegistry.from_yaml(path)` accepts the package/consumer override
shape:
```yaml
schema_version: 1
currency: USD
source_url: https://openrouter.ai/models
captured_at: "2026-05-17"
rates:
openai/gpt-4o-mini:
prompt_per_1k: 0.00015
completion_per_1k: 0.00060
moonshotai/kimi-k3:
prompt_per_1k: 0.003
completion_per_1k: 0.015
```
- `merged_with(override)` returns a new registry where matching override
entries replace default entries by `model_id`.
Rates are a static snapshot. Consumers decide whether `captured_at` is fresh
enough for their workflow. List prices remain USD; EUR display conversion is
handled by `llm_connect.fx` / `estimate_cost`.