Spaces:
Sleeping
Sleeping
import gradio as gr | |
import requests | |
import os | |
# Load API URL and token from environment variables | |
API_URL = os.getenv("HF_API_URL", "https://api-inference.huggingface.co/models/your-model") | |
API_TOKEN = os.getenv("HF_API_TOKEN", "your-default-token") # Replace with your actual token for fallback | |
# Function to call the Hugging Face Inference API | |
def call_huggingface_api(input_text): | |
headers = {"Authorization": f"Bearer {API_TOKEN}"} | |
payload = {"inputs": input_text} | |
try: | |
print(f"Request sent to: {API_URL}") | |
print(f"Payload: {payload}") | |
response = requests.post(API_URL, headers=headers, json=payload) | |
print(f"Response Status Code: {response.status_code}") | |
if response.status_code == 200: | |
data = response.json() | |
print(f"Response Data: {data}") | |
# Assuming 'answer' and 'confidence' are the correct keys in the response JSON | |
return f"Question: {input_text}\nAnswer: {data.get('answer', 'No answer found.')}\nConfidence: {data.get('confidence', 'N/A')}" | |
else: | |
# Handle non-200 status codes and provide a detailed error message | |
error_message = f"Error: {response.status_code} - {response.text}" | |
print(f"Error Response: {error_message}") | |
return error_message | |
except requests.exceptions.RequestException as e: | |
# Catch network-related errors | |
error_message = f"Network error during API call: {e}" | |
print(error_message) | |
return error_message | |
except ValueError as e: | |
# Handle invalid JSON response | |
error_message = f"Error parsing response JSON: {e}" | |
print(error_message) | |
return error_message | |
except KeyError as e: | |
# Handle unexpected response structure or missing keys | |
error_message = f"KeyError: Missing expected key in response JSON: {e}" | |
print(error_message) | |
return error_message | |
except Exception as e: | |
# Handle any other unexpected errors | |
error_message = f"Unexpected error during API call: {e}" | |
print(error_message) | |
return error_message | |
# Gradio Interface | |
gr.Interface( | |
fn=call_huggingface_api, | |
inputs="text", | |
outputs="text", | |
examples=[ | |
["Who is rahul7star?"], | |
["What does Rahul7star do?"], | |
["Tell me about Rahul7star"] | |
], | |
title="Ask Rahul7star AI", | |
description="Ask questions about rahul7star and get answers powered by Hugging Face Inference API." | |
).launch() | |