Spaces:
Running
Running
File size: 2,558 Bytes
f3f0a69 56325dc edfcf73 8f771eb 4f034fb f3f0a69 56325dc 4f034fb edfcf73 4f034fb edfcf73 56325dc edfcf73 8f771eb edfcf73 8f771eb 4f034fb edfcf73 4f034fb 8f771eb edfcf73 4f034fb edfcf73 4f034fb edfcf73 8f771eb edfcf73 8f771eb 4f034fb edfcf73 8f771eb 4f034fb edfcf73 4f034fb edfcf73 8f771eb 4f034fb 19ea0c5 8f771eb 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 = {
"gemma": "https://router.huggingface.co/hf-inference/models/Falconsai/text_summarization"
}
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="gemma", retries=3, delay=5):
"""
Sends a request to the Hugging Face API with retries.
:param payload: The input data for inference.
:param model: The model name ('gemma' for summarization).
:param retries: Number of times to retry if the request fails.
:param delay: Delay in seconds before retrying.
:return: The model's response in JSON format, or None if all retries fail.
"""
if model not in HF_MODELS:
raise ValueError("Invalid model name. Choose 'gemma' for summarization.")
api_url = HF_MODELS[model]
for attempt in range(retries):
try:
response = requests.post(api_url, headers=HF_HEADERS, json=payload)
if response.status_code == 401:
print(f"Error querying Hugging Face model '{model}': 401 Unauthorized. Check API key.")
return None
if response.status_code == 402:
print(f"Error querying Hugging Face model '{model}': 402 Payment Required. Free tier may not support this model.")
return None
if response.status_code == 500:
print(f"Server error (500) on attempt {attempt + 1}. Retrying in {delay} seconds...")
time.sleep(delay)
continue
response.raise_for_status()
return response.json()
except requests.exceptions.RequestException as e:
print(f"Error querying Hugging Face model '{model}': {e}")
time.sleep(delay)
print("All retry attempts failed.")
return None |