quivr/stats.py
2023-05-17 12:12:52 +02:00

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()