Spaces:
Restarting
Restarting
File size: 2,472 Bytes
f3f0a69 56325dc edfcf73 8f771eb 4f034fb f3f0a69 56325dc 4f034fb edfcf73 949011b edfcf73 56325dc edfcf73 8f771eb 1131989 edfcf73 1131989 edfcf73 1131989 edfcf73 4f034fb edfcf73 8f771eb 1131989 edfcf73 8f771eb 1131989 4f034fb 1131989 4f034fb edfcf73 1131989 4f034fb edfcf73 4f034fb edfcf73 1131989 8f771eb 1131989 4f034fb 19ea0c5 1131989 4f034fb |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
import os
from dotenv import load_dotenv
from supabase import create_client
import requests
import time
from sentence_transformers import SentenceTransformer # Import the transformer model
# Load environment variables from .env file
load_dotenv()
# Supabase API Config
SUPABASE_URL = "https://lmpazoxzucnlqqxjoihi.supabase.co"
SUPABASE_KEY = os.getenv("SUPABASE_API_KEY")
if not SUPABASE_KEY:
raise ValueError("SUPABASE_KEY is not set in the environment variables.")
supabase = create_client(SUPABASE_URL, SUPABASE_KEY)
# Load Sentence Transformer Model (scoring)
embedding_model = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")
HF_MODELS = {
"bart": "https://router.huggingface.co/hf-inference/models/facebook/bart-large-cnn",
"gemma": "https://router.huggingface.co/nebius/v1/chat/completions"
}
HF_API_TOKEN = os.getenv("HF_API_TOKEN")
if not HF_API_TOKEN:
raise ValueError("Missing Hugging Face API key. Check your .env file.")
HF_HEADERS = {"Authorization": f"Bearer {HF_API_TOKEN}"}
def query(payload, model="bart", retries=5, delay=5):
"""
Sends a request to the Hugging Face API with retries and better error handling.
"""
if model not in HF_MODELS:
raise ValueError(f"Invalid model name: {model}. Choose 'bart' for summarization.")
api_url = HF_MODELS[model]
for attempt in range(retries):
try:
response = requests.post(api_url, headers=HF_HEADERS, json=payload, timeout=10)
if response.status_code == 401:
print(f"β API Key issue: Check HF_API_TOKEN. Unauthorized (401).")
return None
if response.status_code == 402:
print(f"π° Payment Required (402). Free tier may not support this model.")
return None
if response.status_code in [500, 503]:
print(f"β οΈ Server error ({response.status_code}) on attempt {attempt + 1}. Retrying in {delay} seconds...")
time.sleep(delay)
continue
response.raise_for_status()
return response.json()
except requests.exceptions.Timeout:
print(f"β³ Timeout error on attempt {attempt + 1}. Retrying...")
time.sleep(delay)
except requests.exceptions.RequestException as e:
print(f"β API Request Failed: {e}")
time.sleep(delay)
print("π¨ All retry attempts failed.")
return None |