26 lines
626 B
Python
26 lines
626 B
Python
"""Usage record (for billing / metering later)."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from datetime import datetime
|
|
from typing import Optional
|
|
from uuid import UUID
|
|
|
|
from pydantic import BaseModel
|
|
|
|
|
|
class UsageRecord(BaseModel):
|
|
tenant_id: UUID
|
|
project_id: Optional[UUID] = None
|
|
job_id: Optional[UUID] = None
|
|
execution_id: UUID
|
|
provider: str
|
|
model: str
|
|
capability: str
|
|
input_tokens: Optional[int] = None
|
|
output_tokens: Optional[int] = None
|
|
gpu_seconds: Optional[float] = None
|
|
estimated_cost: Optional[float] = None
|
|
duration_ms: Optional[int] = None
|
|
recorded_at: datetime
|