Spaces:
Runtime error
Runtime error
| import streamlit as st | |
| import os | |
| import requests | |
| import time | |
| from gtts import gTTS | |
| import tempfile | |
| # 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): | |
| 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}"} | |
| def text_to_speech(text): | |
| tts = gTTS(text=text, lang='en') | |
| audio_file = tempfile.NamedTemporaryFile(suffix=".mp3", delete=False) | |
| temp_filename = audio_file.name | |
| tts.save(temp_filename) | |
| st.audio(temp_filename, format='audio/mp3') | |
| os.remove(temp_filename) | |
| 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) | |
| text_to_speech(chat["message"]) | |
| if __name__ == "__main__": | |
| main() | |