import asyncio import streamlit as st from pydantic_ai import Agent from pydantic_ai.models.groq import GroqModel import nest_asyncio import pdfplumber import os api_key = os.getenv("API_KEY") data = [] #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 model = GroqModel('llama-3.1-70b-versatile', api_key = api_key) async def ppt_content(data): agent = Agent(model,system_prompt=( "You are an expert in making power-point perssentation", "Convert the content of the attached PDF into PowerPoint slides", "Title Slide: Include the document's title, subtitle, author, and date.", "Methodology Slide: Summarize the methodology in bullet points", "Results Slide: Present key findings using tables or charts.", "Discussion Slide: Summarize the implications and limitations.", "Conclusion Slide: State the overall conclusion.", "Reference Slide: Include all citations used." )) result_1 = agent.run_sync(user_prompt=data) print(result_1.data) def ai_ppt(data): asyncio.run(ppt_content(data=data)) def extract_data(feed): with pdfplumber.open(feed) as pdf: pages = pdf.pages for p in pages: data.append(p.extract_text()) return None # if data is not None: # st.caption(data) # ai_ppt(data=data) def main(): uploaded_file = st.file_uploader('Choose your .pdf file', type="pdf") if uploaded_file is not None: extract_data(uploaded_file) if st.button("Search"): ai_ppt(data) if __name__ == '__main__': import asyncio nest_asyncio.apply() main()