28 lines
1.3 KiB
Markdown
28 lines
1.3 KiB
Markdown
# Provider reconciliation capability decision
|
|
|
|
Decision date: 2026-07-16.
|
|
|
|
The external UsageEvent v1 endpoint remains limited to `callback_final`. Current
|
|
OpenAI and Anthropic organization usage APIs return time-bucketed aggregates;
|
|
neither response includes the provider request ID needed to match an individual
|
|
EvoScientist model call.
|
|
|
|
- OpenAI: `GET /v1/organization/usage/completions` groups by project, user, API
|
|
key, model, batch, or service tier and returns bucket totals.
|
|
- Anthropic: `GET /v1/organizations/usage_report/messages` groups by API key,
|
|
workspace, model, service tier, or context-window dimensions and returns
|
|
bucket totals.
|
|
|
|
Official references:
|
|
|
|
- https://platform.openai.com/docs/api-reference/usage/completions
|
|
- https://docs.anthropic.com/en/api/admin-api/usage-cost/get-messages-usage-report
|
|
|
|
Because these sources cannot identify a single request, the WebUI stores them as
|
|
internal `aggregate-report-v1` observations and produces an exact decimal
|
|
difference report for the same deployment/provider/model/window. Aggregate
|
|
reports never update `model_usage`, never synthesize `provider_only` calls, and
|
|
never enter `/api/usage/events`. A future connector may enable per-request
|
|
reconciliation only after its official response includes a stable request ID;
|
|
that change requires a new event schema and projection policy.
|