mindroot.coreplugins.usage package¶
Submodules¶
mindroot.coreplugins.usage.handlers module¶
- class mindroot.coreplugins.usage.handlers.UsageTracker(storage: UsageStorage)[source]¶
Bases:
object- async get_cost(plugin_id: str, cost_type_id: str, model_id: str | None = None) float[source]¶
Get the cost for a specific usage type and optional model
- async get_total_cost(username: str, start_date=None, end_date=None)[source]¶
Get total cost for a user
- async get_usage(username: str, start_date=None, end_date=None)[source]¶
Get usage records for a user
- async track_usage(event: UsageEvent)[source]¶
Track a usage event and store it with calculated cost
mindroot.coreplugins.usage.mod module¶
- async mindroot.coreplugins.usage.mod.get_cost(plugin_id: str, cost_type_id: str, model_id: str | None = None, context=None) float[source]¶
- async mindroot.coreplugins.usage.mod.get_cost_summary(username: str, start_date: str | None = None, end_date: str | None = None, context=None) Dict[source]¶
Get a cost summary for a user.
- async mindroot.coreplugins.usage.mod.get_cost_types(context=None)[source]¶
Get all registered cost types.
- async mindroot.coreplugins.usage.mod.get_daily_costs(username: str, start_date: str | None = None, end_date: str | None = None, context=None) Dict[source]¶
Get daily cost breakdown for a user.
- async mindroot.coreplugins.usage.mod.get_usage_report(username: str, start_date: str | None = None, end_date: str | None = None, context=None) Dict[source]¶
Get a detailed usage report for a user.
- async mindroot.coreplugins.usage.mod.register_cost_type(plugin_id: str, cost_type_id: str, description: str, unit: str, context=None)[source]¶
Register a new cost type for a plugin.
mindroot.coreplugins.usage.models module¶
- class mindroot.coreplugins.usage.models.CostTypeInfo(name, description, unit)[source]¶
Bases:
NamedTuple- description: str¶
Alias for field number 1
- name: str¶
Alias for field number 0
- unit: str¶
Alias for field number 2
- class mindroot.coreplugins.usage.models.UsageEvent(timestamp: datetime.datetime, plugin_id: str, cost_type_id: str, quantity: float, metadata: Dict[str, Any], username: str, model_id: Optional[str] = None, session_id: Optional[str] = None, request_id: str = <factory>)[source]¶
Bases:
object- cost_type_id: str¶
- metadata: Dict[str, Any]¶
- model_id: str | None = None¶
- plugin_id: str¶
- quantity: float¶
- request_id: str¶
- session_id: str | None = None¶
- timestamp: datetime¶
- username: str¶
mindroot.coreplugins.usage.reporting module¶
- class mindroot.coreplugins.usage.reporting.UsageReport(storage: UsageStorage)[source]¶
Bases:
object- async get_cost_summary(username: str, start_date: date | None = None, end_date: date | None = None) Dict[source]¶
Generate a simplified cost summary for a user
mindroot.coreplugins.usage.router module¶
- async mindroot.coreplugins.usage.router.get_user_daily(request: Request, username: str, start_date: str | None = None, end_date: str | None = None)[source]¶
Get daily cost breakdown for a specific user
- async mindroot.coreplugins.usage.router.get_user_report(request: Request, username: str, start_date: str | None = None, end_date: str | None = None)[source]¶
Get usage report for a specific user
- async mindroot.coreplugins.usage.router.get_user_summary(request: Request, username: str, start_date: str | None = None, end_date: str | None = None)[source]¶
Get cost summary for a specific user
mindroot.coreplugins.usage.storage module¶
- class mindroot.coreplugins.usage.storage.UsageStorage(base_path: str)[source]¶
Bases:
object- async get_total_cost(username: str, start_date: date | None = None, end_date: date | None = None) float[source]¶
Calculate total cost for a user within date range
- async get_usage(username: str, start_date: date | None = None, end_date: date | None = None) List[Dict][source]¶
Get usage records for a user within date range
- async save_cost(plugin_id: str, cost_type_id: str, unit_cost: float, model_id: str | None = None)[source]¶
Save a cost configuration
- async store_event(event: UsageEvent, cost: float)[source]¶
Store a usage event with its calculated cost