mirror of
https://github.com/StanGirard/quivr.git
synced 2024-12-26 21:02:31 +03:00
32 lines
1.0 KiB
Python
32 lines
1.0 KiB
Python
|
from datetime import datetime, timedelta
|
||
|
|
||
|
# -- Create a table called "stats"
|
||
|
# create table
|
||
|
# stats (
|
||
|
# -- A column called "time" with data type "timestamp"
|
||
|
# time timestamp,
|
||
|
# -- A column called "details" with data type "text"
|
||
|
# chat boolean,
|
||
|
# embedding boolean,
|
||
|
# details text,
|
||
|
# metadata jsonb,
|
||
|
# -- An "integer" primary key column called "id" that is generated always as identity
|
||
|
# id integer primary key generated always as identity
|
||
|
# );
|
||
|
|
||
|
|
||
|
def get_usage_today(supabase):
|
||
|
# Returns the number of rows in the stats table for the last 24 hours
|
||
|
response = supabase.table("stats").select("id", count="exact").gte("time", datetime.now() - timedelta(hours=24)).execute()
|
||
|
return response.count
|
||
|
|
||
|
def add_usage(supabase, type, details, metadata):
|
||
|
# Adds a row to the stats table
|
||
|
supabase.table("stats").insert({
|
||
|
"time": datetime.now().isoformat(),
|
||
|
"chat": type == "chat",
|
||
|
"embedding": type == "embedding",
|
||
|
"details": details,
|
||
|
"metadata": metadata
|
||
|
}).execute()
|