Python SDK for MetricAI — AI billing and metering proxy
Project description
metricai
Python SDK for MetricAI — AI billing and metering proxy.
Quick reference
- Config / headers:
MetricAIConfig,MetricAI(...).headers(agent_id, user_id, ...) - Native OpenAI / Anthropic SDKs:
openai_sdk(),anthropic_sdk(),gemini_sdk(),grok_sdk() - Shared session id for SDK calls:
proxy_sdk_session(...)→MetricAIProxyClientSession - Telemetry (existing):
track()/MetricAISession— unchanged - LangChain / LangGraph / CrewAI:
metricai.integrations(lazy imports for optional deps) - Standalone workflow:
from metricai.workflow import MetricAIAgent, MetricAIPipeline
Margin-ready integration checklist (under 30 minutes)
For live per-agent and per-end-user attribution in the dashboard, include these on every SDK call:
agent_id: stable agent identifier (for examplesupport-agent-v1)user_id: end-user/customer identifier (for exampleacct_42)
For explicit margin reporting, include revenue metadata on tracked events:
- Prefer sending
revenue_usdintrack(..., extra={...})when available. - If your app uses outcome billing,
billable_amount_inris derived fromoutcomeand can be used server-side as revenue.
Verification flow:
- Send at least one billable event with
agent_id+user_id. - Open dashboard Cost & Margin attribution view.
- Confirm non-empty rows under both by-agent and by-end-user tables.
Examples live under examples/ (e.g. byok_openai_sdk.py, standalone_workflow.py).
Official SDK URL paths (via MetricAI proxy)
The hosted API mirrors what the OpenAI / Anthropic clients append to base_url:
| SDK | base_url ends with |
Effective POST path |
|---|---|---|
openai.OpenAI |
/v1/proxy/openai |
/v1/proxy/openai/chat/completions |
anthropic.Anthropic |
/v1/proxy/claude |
/v1/proxy/claude/v1/messages |
openai.OpenAI (Gemini route) |
/v1/proxy/gemini |
/v1/proxy/gemini/chat/completions |
openai.OpenAI (Grok route) |
/v1/proxy/grok |
/v1/proxy/grok/chat/completions |
Legacy single-segment POSTs (/v1/proxy/openai, /claude, /gemini, /grok) still work.
Response shape: MetricAIProxy uses the .../chat/completions path for OpenAI-shaped providers so the HTTP body matches the native OpenAI chat.completion JSON (what openai.OpenAI expects). Posts to the legacy /v1/proxy/openai path without /chat/completions return the MetricAI metering envelope unless you send header X-MetricAI-Response-Format: metricai on the chat path (optional).
Programmatic usage: GET /v1/usage?window=7d (same auth as the proxy: JWT or X-MetricAI-API-Key) returns dashboard-aligned summaries; see backend docs/PILOT_DATA_PROCESSING.md.
Use examples/provider_sdk_check.py to smoke-test providers when keys are set.
Most examples honor METRICAI_EXAMPLE_PROVIDER (openai | claude | gemini | grok) and shared env documented in examples/_provider_env.py.
See METRICAI_SDK.md for full developer documentation (patterns, headers, sessions, governance v1, changelog). \x00
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file metricai-0.3.0.tar.gz.
File metadata
- Download URL: metricai-0.3.0.tar.gz
- Upload date:
- Size: 78.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9895fed09d75d90c7e69cf2e51a15158fb9875dfbaacb9974a85d1c52b1b1c55
|
|
| MD5 |
103bd46d5321e7a010d3e954ff6eaf33
|
|
| BLAKE2b-256 |
984fe4465806bc29469dfa919da82137d608c117c9655ccce5c6a514982427ba
|
File details
Details for the file metricai-0.3.0-py3-none-any.whl.
File metadata
- Download URL: metricai-0.3.0-py3-none-any.whl
- Upload date:
- Size: 65.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9cfce795babcde296fb09df961b06b38f334b7950c1fb4ea0774f49918848988
|
|
| MD5 |
15981c95492f85d4f39b9cf345d3d353
|
|
| BLAKE2b-256 |
f0b66fc79164501cd154f42b2993bc8c627472f3392b24542adf860021a7d16c
|