Spaces:
Running
Running
File size: 3,256 Bytes
f3f0a69 56325dc edfcf73 f3f0a69 56325dc edfcf73 56325dc edfcf73 56325dc 19ea0c5 edfcf73 19ea0c5 edfcf73 |
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 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
import os
from dotenv import load_dotenv
from supabase import create_client
import requests
# 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)
HF_MODELS = {
"gemma": "https://api-inference.huggingface.co/models/google/gemma-7b",
"bart": "https://api-inference.huggingface.co/models/facebook/bart-large-cnn"
}
# Hugging Face API Config
#HF_API_URL = "https://router.huggingface.co/hf-inference/models/google/gemma-7b"
HF_API_TOKEN = os.getenv("HF_API_TOKEN")
HF_HEADERS = {"Authorization": f"Bearer HF_API_TOKEN"}
# Ensure the API key is loaded
if not HF_API_TOKEN:
raise ValueError("Missing Hugging Face API key. Check your .env file.")
#
def query(payload, model="gemma"):
"""
Sends a request to the selected Hugging Face model API.
:param payload: The input data for inference.
:param model: Choose either 'gemma' (for google/gemma-7b) or 'bart' (for facebook/bart-large-cnn).
:return: The model's response in JSON format, or None if the request fails.
"""
if model not in HF_MODELS:
raise ValueError("Invalid model name. Choose 'gemma' or 'bart'.")
api_url = f"https://api-inference.huggingface.co/models/{HF_MODELS[model]}"
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 # Handle authentication failure
response.raise_for_status() # Raise an error for failed requests (e.g., 500 errors)
return response.json() # Return the parsed JSON response
except requests.exceptions.RequestException as e:
print(f"Error querying Hugging Face model '{model}': {e}")
return None # Return None if API call fails
# Bart query
def query(payload, model="bart"):
"""
Sends a request to the selected Hugging Face model API.
:param payload: The input data for inference.
:param model: Choose either 'gemma' (for google/gemma-7b) or 'bart' (for facebook/bart-large-cnn).
:return: The model's response in JSON format, or None if the request fails.
"""
if model not in HF_MODELS:
raise ValueError("Invalid model name. Choose 'gemma' or 'bart'.")
api_url = f"https://api-inference.huggingface.co/models/{HF_MODELS[model]}"
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 # Handle authentication failure
response.raise_for_status() # Raise an error for failed requests (e.g., 500 errors)
return response.json() # Return the parsed JSON response
except requests.exceptions.RequestException as e:
print(f"Error querying Hugging Face model '{model}': {e}")
return None # Return None if API call fails |