import os from groq import Groq from dotenv import load_dotenv # Load environment variables from a .env file load_dotenv() GROQ_API_KEY = os.getenv("GROQ_API_KEY") # Instantiate the Groq client client = Groq(api_key=GROQ_API_KEY) # Load Groq's generative model (the model name 'groq-pro' is illustrative) model = groq.GenerativeModel('groq-pro') def extract_text_from_pdf(pdf_file): text = "" with pdfplumber.open(pdf_file) as pdf: for page in pdf.pages: page_text = page.extract_text() if page_text: text += page_text return text def summarize_pdf(pdf_file): text = extract_text_from_pdf(pdf_file) if not text.strip(): return "No extractable text found in the PDF." # Optional: Limit the text if needed for token limits text = text[:15000] prompt = f"Summarize the following PDF content:\n\n{text}" try: response = model.generate_content(prompt) # Adjust parameters per Groq's API return response.text.strip() except Exception as e: return f"Error during summarization: {e}" # Gradio interface iface = gr.Interface( fn=summarize_pdf, inputs=gr.File(label="Upload PDF", file_types=[".pdf"]), outputs="text", title="PDF Summarizer with Groq", description="Upload a PDF and get a summary using Groq's generative AI API." ) if __name__ == "__main__": iface.launch()