【PythonAI】4.3.3 技能实训:利用AI辅助PPT设计与排版

张开发
2026/4/16 7:26:34 15 分钟阅读

分享文章

【PythonAI】4.3.3 技能实训:利用AI辅助PPT设计与排版
# tongyi_ppt_generator.pyimportosimportjsonimportdashscopefrompptximportPresentationfrompptx.utilimportPtfromdashscopeimportGeneration# 请在此处填入你的 API KEY或者设置环境变量# dashscope.api_key 你的_DASHSCOPE_API_KEY# 建议通过环境变量设置: export DASHSCOPE_API_KEYsk-...classPPTGenerator:def__init__(self,api_keyNone):ifapi_key:dashscope.api_keyapi_keyelifos.getenv(DASHSCOPE_API_KEY):dashscope.api_keyos.getenv(DASHSCOPE_API_KEY)else:raiseValueError(请设置 DASHSCOPE_API_KEY)defget_content_from_qwen(self,topic): 调用通义千问 API 生成 PPT 内容结构 (JSON) print(f 正在请求通义千问生成关于 {topic} 的大纲...)# 提示词工程强制模型返回 JSON 格式promptf 请为一个关于“{topic}”的演示文稿生成内容。 请返回一个标准的 JSON 格式列表不要包含 markdown 代码块标记如 json。 JSON 对象应包含 title (标题) 和 slides (幻灯片列表)。 每张幻灯片包含 heading (页标题) 和 content (正文要点列表格式)。 示例结构 {{ title: 演示文稿主标题, slides: [ {{ heading: 第一页标题, content: [要点1, 要点2] }} ] }} try:responseGeneration.call(modelGeneration.Models.qwen_turbo,# 或者 qwen-plus, qwen-maxpromptprompt,result_formatmessage)ifresponse.status_code200:contentresponse.output.choices[0].message.content# 清理可能存在的 markdown 标记contentcontent.replace(json,).replace(,).strip()returnjson.loads(content)else:print(f❌ API 调用失败:{response.code}-{response.message})returnNoneexceptExceptionase:print(f❌ 发生错误:{e})returnNonedefcreate_pptx(self,data,filenameoutput.pptx): 使用 python-pptx 根据 JSON 数据生成文件 ifnotdata:print(没有数据可生成 PPT)returnprsPresentation()# 1. 创建封面页 (使用第一张布局通常是标题页)slide_layoutprs.slide_layouts[0]slideprs.slides.add_slide(slide_layout)titleslide.shapes.title subtitleslide.placeholders[1]title.textdata.get(title,无标题)subtitle.text由通义千问自动生成# 2. 循环创建内容页content_layoutprs.slide_layouts[1]# 使用标题内容布局forslide_dataindata.get(slides,[]):slideprs.slides.add_slide(content_layout)shapesslide.shapes# 设置标题title_shapeshapes.title title_shape.textslide_data[heading]# 设置正文内容body_shapeshapes.placeholders[1]tfbody_shape.text_frame tf.clear()# 清空默认空行forpointinslide_data[content]:ptf.add_paragraph()p.textpoint p.level0p.font.sizePt(20)# 设置字体大小p.space_afterPt(10)prs.save(filename)print(f✅ PPT 生成成功已保存为:{filename})#--- 主程序入口 ---if__name____main__:# 替换为你的 API KEYAPI_KEYsk-9d996d8c4cce408a9d6ceae4b7702b84# 请替换为你的实际API Keytry:generatorPPTGenerator(api_keyAPI_KEY)# 输入主题topic人工智能的发展趋势# 第一步获取内容ppt_datagenerator.get_content_from_qwen(topic)# 第二步生成文件ifppt_data:generator.create_pptx(ppt_data,f{topic}.pptx)exceptExceptionase:print(f程序运行出错:{e})运行结果(uos_ai_env)MuhtarUOS-Desktop:~/AI_Projects$ python3 tongyi_ppt_generator1.py 正在请求通义千问生成关于人工智能的发展趋势的大纲...✅ PPT 生成成功已保存为: 人工智能的发展趋势.pptx(uos_ai_env)MuhtarUOS-Desktop:~/AI_Projects$

更多文章