dataflow.api.middleware.supabase_logging¶
Attributes¶
Classes¶
Utility class for logging LLM requests. |
|
Class for logging to Supabase database. |
|
Middleware for logging all API requests to Supabase. |
Module Contents¶
- class dataflow.api.middleware.supabase_logging.LLMLogger¶
Utility class for logging LLM requests.
- async log_llm_request(user_id: str, provider: str, model: str, query: str, response_text: str | None = None, token_count: int = 0, cost: float = 0.0, duration: float = 0.0, success: bool = True, error: str | None = None, metadata: dict[str, Any] | None = None)¶
Log an LLM request to both console and Supabase.
- Parameters:
user_id – User ID
provider – LLM provider
model – Model name
query – User query
response_text – Generated text (optional)
token_count – Number of tokens processed
cost – Cost in credits
duration – Request processing time in seconds
success – Whether the request succeeded
error – Error message if request failed (optional)
metadata – Additional metadata (optional)
- supabase_logger¶
- class dataflow.api.middleware.supabase_logging.SupabaseLogger¶
Class for logging to Supabase database.
- async log_llm_request(request_id: str, user_id: str | None, provider: str, model: str, query: str, response_text: str | None, duration: float, token_count: int, cost: float, success: bool, error: str | None = None, metadata: dict[str, Any] | None = None) bool¶
Log an LLM API request to Supabase.
- Parameters:
request_id – Unique request identifier
user_id – User ID if authenticated
provider – LLM provider (e.g., “azure”, “anthropic”)
model – Model name
query – User query
response_text – Generated text (optional)
duration – Request processing time in seconds
token_count – Number of tokens processed
cost – Cost in credits
success – Whether the request succeeded
error – Error message if request failed (optional)
metadata – Additional metadata (optional)
- Returns:
True if logging successful, False otherwise
- async log_request(request_id: str, method: str, path: str, user_id: str | None, status_code: int, duration: float, request_data: dict[str, Any] | None = None, response_data: dict[str, Any] | None = None, error: str | None = None, metadata: dict[str, Any] | None = None) bool¶
Log an API request to Supabase.
- Parameters:
request_id – Unique request identifier
method – HTTP method (GET, POST, etc.)
path – Request path
user_id – User ID if authenticated
status_code – HTTP status code
duration – Request processing time in seconds
request_data – Request body data (optional)
response_data – Response data (optional)
error – Error message if request failed (optional)
metadata – Additional metadata (optional)
- Returns:
True if logging successful, False otherwise
- property client¶
Lazy-loaded Supabase admin client.
- config¶
- class dataflow.api.middleware.supabase_logging.SupabaseLoggingMiddleware(app, supabase_logger: SupabaseLogger | None = None)¶
Bases:
starlette.middleware.base.BaseHTTPMiddlewareMiddleware for logging all API requests to Supabase.
- async dispatch(request: fastapi.Request, call_next: starlette.middleware.base.RequestResponseEndpoint) fastapi.Response¶
Process the request with detailed logging to Supabase.
- logger¶
- dataflow.api.middleware.supabase_logging.logger¶