Spaces:
Running
Running
import json | |
from supabase import create_client, Client | |
from config import SUPABASE_URL, SUPABASE_KEY | |
supabase: Client = create_client(SUPABASE_URL, SUPABASE_KEY) | |
def get_user_credits(user_id): | |
user = supabase.table("users").select("generation_credits, train_credits").eq("id", user_id).execute() | |
if user.data: | |
return user.data[0]["generation_credits"], user.data[0]["train_credits"] | |
return 0, 0 | |
def update_user_credits(user_id, generation_credits, train_credits): | |
supabase.table("users").update({ | |
"generation_credits": generation_credits, | |
"train_credits": train_credits | |
}).eq("id", user_id).execute() | |
def get_or_create_user(google_id, email, name, given_name, profile_picture): | |
user = supabase.table("users").select("*").eq("google_id", google_id).execute() | |
if not user.data: | |
new_user = { | |
"google_id": google_id, | |
"email": email, | |
"name": name, | |
"profile_picture": profile_picture, | |
"generation_credits": 2, | |
"train_credits": 1, | |
"given_name": given_name | |
} | |
result = supabase.table("users").insert(new_user).execute() | |
return result.data[0] | |
else: | |
return user.data[0] | |
def get_lora_models_info(): | |
lora_models = supabase.table("lora_models").select("*").is_("user_id", None).execute() | |
return lora_models.data | |
def get_user_by_id(user_id): | |
user = supabase.table("users").select("*").eq("id", user_id).execute() | |
if user.data: | |
return user.data[0] | |
return None | |
def create_lora_models(user_id, replicate_repo_name, trigger_word, steps, lora_rank, batch_size, learning_rate, hf_repo_name, training_url): | |
# create a jsonb from trigger_word, train_steps, lora_rank, batch_size, learning_rate values | |
model_config = { | |
"train_steps": steps, | |
"lora_rank": lora_rank, | |
"batch_size": batch_size, | |
"learning_rate": learning_rate | |
} | |
result = supabase.table("lora_models").insert({ | |
"user_id": user_id, | |
"trigger_word": trigger_word, | |
"lora_name": replicate_repo_name, | |
"hf_repo": hf_repo_name, | |
"configs": model_config, | |
"training_url": training_url | |
}).execute() | |
def get_user_lora_models(user_id): | |
user_models = supabase.table("lora_models").select("*").eq("user_id", user_id).execute() | |
return user_models.data |