Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 2

import openai

import collections
import collections.abc
from pptx import Presentation,util
from pptx.enum.shapes import MSO_SHAPE
from pptx.util import Inches,Pt

openai.api_key = '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'
user_input = input('請輸入你想做的標題: ')
chatans = []

def doQA(prompts, max_tokens, temperature):


for prompt in prompts:
text = openai.Completion.create(
model="text-davinci-003",
prompt=prompt,
max_tokens=max_tokens,
temperature=temperature
)
chatans.append(text['choices'][0]['text'])

prompts = [
'我是學生,我想製作一個 PPT,主題是關於'+user_input+',請幫我用中文生成三個標題'
]

doQA(prompts, 512, 0.5)


spp = ''.join(chatans[0])
spl = spp.split('\n')
for i in range(len(spl)):
spl[i] = spl[i][2:]

prs = Presentation()

slide = prs.slides.add_slide(prs.slide_layouts[0])

title_name = slide.placeholders[0]
text_name = slide.placeholders[1]

title_name.text = f'{user_input}'
text_name.text = f'{user_input}'

text1="目錄"
slide = prs.slides.add_slide(prs.slide_layouts[1])
shapes = slide.shapes
title_shape = slide.shapes.title
title_shape.text = text1

paragraph_strs =''
body_shape = shapes.placeholders[1]

tf = body_shape.text_frame
tf.clear()

p = tf.paragraphs[0]

for i in range(1,len(spl)):
p = tf.add_paragraph()
p.text = spl[i]
t = 1
k = 1

for i in range(3):

slide = prs.slides.add_slide(prs.slide_layouts[6])
left = top = width = height = util.Cm(3)
text_box = slide.shapes.add_textbox(left, top, width, height)
tf = text_box.text_frame

para=tf.add_paragraph()
para.text = spl[t]
font = para.font
font.size = Pt(24) #大小
font.name = 'Arial' #字體
font.bold = True #加粗

left = util.Cm(23)
top = width = height = util.Cm(16)
text_box = slide.shapes.add_textbox(left, top, width, height)
tf = text_box.text_frame
addpara=tf.add_paragraph()
addpara.text = f'{k}'

t += 1
k += 1

You might also like