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