Usage Module¶
Usage and ResultBase classes for unified API responses.
All API calls return ResultBase subclasses that include usage statistics.
- class lexilux.usage.Usage(*, input_tokens=None, output_tokens=None, total_tokens=None, details=None)[source]¶
Bases:
objectUnified usage statistics (aligned with OpenAI completion/chat.completions usage semantics).
All fields are optional to handle cases where the server doesn’t provide usage information. The details field allows for extensibility (e.g., cached_tokens, reasoning_tokens).
- input_tokens¶
Number of input tokens (optional).
- output_tokens¶
Number of output tokens (optional).
- total_tokens¶
Total number of tokens (optional).
- details¶
Additional usage details as a dictionary (optional).
Examples
>>> usage = Usage(input_tokens=10, output_tokens=20, total_tokens=30) >>> print(usage.total_tokens) 30
>>> usage = Usage() # Empty usage (server didn't provide) >>> print(usage.total_tokens) None
- class lexilux.usage.ResultBase(*, usage, raw=None)[source]¶
Bases:
objectBase class for all API results.
All API calls return ResultBase subclasses, ensuring that result.usage is always available. The raw field stores the original API response for advanced use cases.
- usage¶
Usage statistics object.
- raw¶
Raw API response as a dictionary (optional).
Examples
>>> result = ChatResult(text="Hello", usage=Usage(total_tokens=10)) >>> print(result.usage.total_tokens) 10 >>> print(result.raw) # Access raw response if needed {}