Spaces:
Runtime error
Runtime error
import streamlit as st | |
import os | |
import requests | |
import time | |
# Define Hugging Face API details | |
API_URL = "https://api-inference.huggingface.co/models/Huzaifa367/chat-summarizer" | |
API_TOKEN = os.getenv("AUTH_TOKEN") | |
HEADERS = {"Authorization": f"Bearer {API_TOKEN}"} | |
# Function to query Hugging Face API | |
def query_huggingface(payload): | |
max_retries=3 | |
retries = 0 | |
while retries < max_retries: | |
try: | |
response = requests.post(API_URL, headers=HEADERS, json=payload) | |
response.raise_for_status() # Raise exception for non-2xx status codes | |
return response.json() | |
except requests.exceptions.RequestException as e: | |
st.error(f"Error querying Hugging Face API: {e}") | |
return {"summary_text": f"Error querying Hugging Face API: {e}"} | |
except requests.exceptions.HTTPError as e: | |
if response.status_code == 503: | |
st.warning("Service temporarily unavailable. Retrying...") | |
time.sleep(5) # Wait for a few seconds before retrying | |
retries += 1 | |
else: | |
st.error(f"HTTP Error querying Hugging Face API: {e.response.status_code}") | |
return {"summary_text": "Service Unavailable. Please try again later."} | |
except Exception as e: | |
st.error(f"An unexpected error occurred: {e}") | |
return {"summary_text": "An unexpected error occurred. Please try again later."} | |
def main(): | |
st.set_page_config(layout="wide") | |
st.title("Chat Summarizer") | |
# Initialize a list to store chat messages | |
chat_history = [] | |
# User input for chat message | |
user_message = st.text_input("Provide a Chat/Long description to summarize") | |
# Process user input and query Hugging Face API on button click | |
if st.button("Send"): | |
if user_message: | |
# Add user message to chat history | |
chat_history.append({"speaker": "User", "message": user_message}) | |
# Construct input text for summarization | |
input_text = f"User: {user_message}" | |
# Query Hugging Face API for summarization | |
payload = {"inputs": input_text} | |
response = query_huggingface(payload) | |
# Extract summary text from the API response | |
summary_text = response[0]["summary_text"] if isinstance(response, list) else response.get("summary_text", "") | |
# Add summarization response to chat history | |
chat_history.append({"speaker": "Bot", "message": summary_text}) | |
# Display chat history as a conversation | |
for chat in chat_history: | |
if chat["speaker"] == "User": | |
st.text_input("User", chat["message"], disabled=True) | |
elif chat["speaker"] == "Bot": | |
st.text_area("Bot", chat["message"], disabled=True) | |
if __name__ == "__main__": | |
main() | |