import streamlit as st from langchain import OpenAI from langchain.docstore.document import Document from langchain.text_splitter import CharacterTextSplitter from langchain.chains.summarize import load_summarize_chain from utils.process_data import pdf_to_text MODEL = st.secrets["MODEL4"] def generate_response(txt): llm = OpenAI(temperature=0.1, openai_api_key=st.secrets["OPENAI_API_KEY"]) text_splitter = CharacterTextSplitter() texts = text_splitter.split_text(txt) docs = [Document(page_content=t) for t in texts] chain = load_summarize_chain(llm, chain_type='map_reduce') return chain.run(docs) st.set_page_config(page_title="Summarizer with LLM", page_icon="⚖️") st.title("Summarize Text") st.subheader('🚕🔗 LLM/LoadSummarizeChain') sentence = st.text_area('Please paste your article:', height=100) button = st.button("Summarize") with st.spinner("Generating Summary.."): if button and sentence: response = generate_response(sentence) st.write(response) st.divider() st.subheader('🚙🔗 Summarize PDF') pdf_path = st.file_uploader('Upload your PDF Document', type='pdf') button2 = st.button("Summarize PDF") if pdf_path is not None and button2: text = pdf_to_text(pdf_path) with st.spinner("Generating PDF Summary.."): response2 = generate_response(text) st.subheader('Summary Results:') st.write(response2)