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 (str) – User ID
provider (str) – LLM provider
model (str) – Model name
query (str) – User query
response_text (str | None) – Generated text (optional)
token_count (int) – Number of tokens processed
cost (float) – Cost in credits
duration (float) – Request processing time in seconds
success (bool) – Whether the request succeeded
error (str | None) – Error message if request failed (optional)
metadata (dict[str, Any] | None) – 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 (str) – Unique request identifier
user_id (str | None) – User ID if authenticated
provider (str) – LLM provider (e.g., “azure”, “anthropic”)
model (str) – Model name
query (str) – User query
response_text (str | None) – Generated text (optional)
duration (float) – Request processing time in seconds
token_count (int) – Number of tokens processed
cost (float) – Cost in credits
success (bool) – Whether the request succeeded
error (str | None) – Error message if request failed (optional)
metadata (dict[str, Any] | None) – Additional metadata (optional)
- Returns:
True if logging successful, False otherwise
- Return type:
- 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 (str) – Unique request identifier
method (str) – HTTP method (GET, POST, etc.)
path (str) – Request path
user_id (str | None) – User ID if authenticated
status_code (int) – HTTP status code
duration (float) – Request processing time in seconds
request_data (dict[str, Any] | None) – Request body data (optional)
response_data (dict[str, Any] | None) – Response data (optional)
error (str | None) – Error message if request failed (optional)
metadata (dict[str, Any] | None) – Additional metadata (optional)
- Returns:
True if logging successful, False otherwise
- Return type:
- 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.BaseHTTPMiddleware
Middleware for logging all API requests to Supabase.
- Parameters:
supabase_logger (SupabaseLogger | None)
- async dispatch(request: fastapi.Request, call_next: starlette.middleware.base.RequestResponseEndpoint) fastapi.Response ¶
Process the request with detailed logging to Supabase.
- Parameters:
request (fastapi.Request)
call_next (starlette.middleware.base.RequestResponseEndpoint)
- Return type:
fastapi.Response
- logger¶
- dataflow.api.middleware.supabase_logging.logger¶