from langchain_community.document_loaders import PyPDFLoader import gradio as gr from langchain.chains.summarize import load_summarize_chain from huggingface_hub import InferenceClient from langchain_huggingface import HuggingFaceEndpoint import os # Set your Hugging Face token securely HUGGINGFACEHUB_API_TOKEN = os.environ["HUGGINGFACEHUB_API_TOKEN"] # Create the LLM #llm = HuggingFaceHub( # repo_id="facebook/bart-large-cnn", # Summarization-capable model # model_kwargs={"temperature": 0.7, "max_length": 512} #) repo_id = "google/gemma-3-12b-it" llm = HuggingFaceEndpoint( repo_id=repo_id, temperature=0.5, huggingfacehub_api_token=HUGGINGFACEHUB_API_TOKEN, provider="featherless-ai", # set your provider here hf.co/settings/inference-providers # provider="hyperbolic", # provider="nebius", # provider="together", ) #TEXT_MODEL_NAME = "google/gemma-3-270m" loader = PyPDFLoader("http://arxiv.org/pdf/2508.13246v1") documents = loader.load() #llm = OpenAI(temperature=0) def summarize_pdf (pdf_file_path, custom_prompt=""): loader = PyPDFLoader(pdf_file_path) docs = loader.load_and_split() chain = load_summarize_chain(llm, chain_type="map_reduce") summary = chain.invoke(docs) return summary input_pdf_path = gr.Textbox(label="Enter the PDF file path") output_summary = gr.Textbox(label="Summary") interface = gr.Interface( fn = summarize_pdf, inputs = input_pdf_path, outputs = output_summary, title = "PDF Summarizer", description = "This app allows you to summarize your PDF files.", ) #demo.launch(share=True) if __name__ == "__main__": interface.launch(share=True)