ngovu182002/test
0
1import openai2import pptx3from pptx.util import Inches4import os5import time6 7from dotenv import load_dotenv8load_dotenv()9 10openai.api_key = os.getenv('OPENAI_API_KEY') # Replace with your actual API key11 12def generate_slide_titles(topic):13 prompt = f"Generate 10 slide titles for the topic '{topic}'."14 response = openai.Completion.create(15 engine="text-davinci-003",16 prompt=prompt,17 max_tokens=200,18 )19 return response['choices'][0]['text'].split("\n")20 21def generate_slide_content(slide_title):22 prompt = f"Generate content for the slide: '{slide_title}'."23 response = openai.Completion.create(24 engine="text-davinci-003",25 prompt=prompt,26 max_tokens=500, # Adjust as needed based on the desired content length27 )28 return response['choices'][0]['text']29 30 31def create_presentation(topic, slide_titles, slide_contents):32 prs = pptx.Presentation()33 slide_layout = prs.slide_layouts[1]34 35 title_slide = prs.slides.add_slide(prs.slide_layouts[0])36 title_slide.shapes.title.text = topic37 38 for slide_title, slide_content in zip(slide_titles, slide_contents):39 slide = prs.slides.add_slide(slide_layout)40 slide.shapes.title.text = slide_title41 slide.shapes.placeholders[1].text = slide_content42 43 prs.save(f"{topic}_presentation.pptx")44 45def main():46 start = time.time()47 topic = "Explainable AI" # Replace with your desired topic48 49 slide_titles = generate_slide_titles(topic)50 filtered_slide_titles= [item for item in slide_titles if item.strip() != '']51 print("Slide Title: ", filtered_slide_titles)52 slide_contents = [generate_slide_content(title) for title in filtered_slide_titles]53 print("Slide Contents: ", slide_contents)54 create_presentation(topic, filtered_slide_titles, slide_contents)55 end = time.time()56 57 print("Total Duration: ", round(end - start, 2), " secs")58 print("Presentation generated successfully!")59 60if __name__ == "__main__":61 main()