File size: 1,695 Bytes
048b1e8 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | from os import environ
from typing import Optional
import asyncio
from openmeter.aio import Client
from openmeter.models import MeterQueryResult, FilterString
from corehttp.exceptions import HttpResponseError
ENDPOINT: str = environ.get("OPENMETER_ENDPOINT") or "https://openmeter.cloud"
token: Optional[str] = environ.get("OPENMETER_TOKEN")
async def main() -> None:
async with Client(
endpoint=ENDPOINT,
token=token,
) as client:
try:
# Query total values
r: MeterQueryResult = await client.meters.query_json(meter_id_or_slug="tokens_total")
if r.data and len(r.data) > 0:
print("Query total values:", r.data[0].value)
else:
print("Query total values: No data returned")
# Query total values grouped by language
r = await client.meters.query_json(
meter_id_or_slug="tokens_total",
group_by=["model"],
)
print("Query total values grouped by model:")
for row in r.data:
print("\t", row.group_by["model"], ":", row.value)
# Query total values for model=gpt-4o
r = await client.meters.query_json(
meter_id_or_slug="tokens_total",
advanced_meter_group_by_filters={"model": FilterString(eq="gpt-4o")},
)
if r.data and len(r.data) > 0:
print("Query total values for model=gpt-4o:", r.data[0].value)
else:
print("Query total values for model=gpt-4o: No data returned")
except HttpResponseError as e:
print(e)
asyncio.run(main())
|