mdasad3617's picture
Update app.py
d2271c1 verified
raw
history blame
2.6 kB
import streamlit as st
from transformers import pipeline
import logging
# Setup logging
def setup_logging():
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s',
handlers=[
logging.StreamHandler()
]
)
def main():
setup_logging()
logging.info("Starting the Streamlit app.")
# Initialize the summarization pipeline
summarizer = pipeline("summarization")
# Streamlit UI
st.title("GenAI Lab Report Analyzer")
st.write("Upload a file, record audio, or type text to generate a summary. Select the appropriate input type and provide the input.")
input_type = st.radio(
"Select Input Type:",
options=["Text", "Text File", "PDF", "DOCX", "Audio"],
index=0
)
file = None
text = None
audio = None
if input_type == "Text":
text = st.text_area("Enter your text here:", placeholder="Type your text here...")
elif input_type in ["Text File", "PDF", "DOCX"]:
file = st.file_uploader(f"Upload your {input_type}:", type=["txt", "pdf", "docx"])
elif input_type == "Audio":
audio = st.file_uploader("Upload your audio file:", type=["wav", "mp3", "m4a"])
if st.button("Report Result"):
try:
if input_type == "Text" and text:
logging.info("Processing text input.")
summary = summarizer(text, max_length=130, min_length=30, do_sample=False)
logging.info("Text input processed successfully.")
elif input_type in ["Text File", "PDF", "DOCX"] and file:
logging.info(f"Processing {input_type} file: {file.name}")
# Add file reading logic here
summary = "File processing not implemented yet."
elif input_type == "Audio" and audio:
logging.info("Processing audio input.")
# Add audio processing logic here
summary = "Audio processing not implemented yet."
else:
summary = "Invalid input. Please provide a valid file or text."
logging.warning("Invalid input type provided.")
st.text_area("Report Result:", summary[0]['summary_text'] if isinstance(summary, list) else summary, height=200)
except Exception as e:
logging.error(f"Error during summarization: {e}")
st.error("An error occurred during summarization. Please check the logs for more details.")
logging.info("Closing the Streamlit app.")
if __name__ == "__main__":
main()