File size: 1,507 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

from openmeter 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")

client = Client(
    endpoint=ENDPOINT,
    token=token,
)


def main() -> None:
    try:
        # Query total values
        r: MeterQueryResult = 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 = 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 = 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)


main()