Spaces:
Sleeping
Sleeping
File size: 2,315 Bytes
77b3501 21cdd54 77b3501 e713972 77b3501 21cdd54 09d74f6 21cdd54 77b3501 09d74f6 77b3501 09d74f6 77b3501 09d74f6 21cdd54 77b3501 bc6124b e713972 21cdd54 bc6124b 09d74f6 e713972 21cdd54 09d74f6 bc6124b e713972 21cdd54 e713972 09d74f6 77b3501 09d74f6 e713972 09d74f6 21cdd54 09d74f6 e713972 09d74f6 77b3501 |
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 |
import os
from dotenv import load_dotenv
import requests
import json
import gradio as gr
import logging
# Set up logging
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)
# Load environment variables
load_dotenv()
# Access the Hugging Face API key and endpoint URL
hf_api_key = os.getenv('HF_API_KEY')
MODEL_NAME = "sshleifer/distilbart-cnn-12-6"
ENDPOINT_URL = f"https://api-inference.huggingface.co/models/{MODEL_NAME}"
def get_completion(inputs, parameters=None):
headers = {
"Authorization": f"Bearer {hf_api_key}",
"Content-Type": "application/json"
}
data = {
"inputs": inputs,
"options": {"wait_for_model": True}
}
if parameters is not None:
data.update({"parameters": parameters})
logger.debug(f"Sending request to {ENDPOINT_URL}")
logger.debug(f"Request headers: {headers}")
logger.debug(f"Request data: {json.dumps(data, indent=2)}")
try:
response = requests.post(ENDPOINT_URL, headers=headers, json=data)
logger.debug(f"Response status code: {response.status_code}")
logger.debug(f"Response headers: {dict(response.headers)}")
logger.debug(f"Response content: {response.text}")
response.raise_for_status()
return response.json()
except requests.exceptions.RequestException as e:
logger.error(f"Request failed: {e}")
if hasattr(e, 'response') and e.response is not None:
logger.error(f"Error response content: {e.response.text}")
return {"error": f"Request failed: {str(e)}"}
def summarize(input_text):
try:
logger.info(f"Received input text: {input_text[:100]}...") # Log first 100 chars of input
output = get_completion(input_text)
if isinstance(output, list) and len(output) > 0 and 'summary_text' in output[0]:
return output[0]['summary_text']
elif isinstance(output, dict) and 'error' in output:
return f"API Error: {output['error']}"
else:
return f"Unexpected response format: {output}"
except Exception as e:
logger.exception("An error occurred during summarization")
return f"An error occurred: {str(e)}"
demo = gr.Interface(fn=summarize, inputs="text", outputs="text")
demo.launch() |