docs-bot / pages /summarizer.py
Huzaifa367's picture
Update pages/summarizer.py
4e331f5 verified
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()