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() | |