作为一个程序员+自媒体人,我经常要做PPT汇报。以前3小时做一份,现在用Python+AI,10分钟搞定。分享完整代码。


一、核心思路

用Python调用AI API,自动生成PPT大纲和内容,再用python-pptx库生成PPT文件。


二、完整代码

```python
# auto_ppt.py
import openai
from pptx import Presentation
from pptx.util import Inches, Pt
import os

class AutoPPT:
def __init__(self):
        self.client = openai.OpenAI(
            api_key=os.getenv("DEEPSEEK_KEY"),
            base_url="https://api.deepseek.com/v1"
        )
  
def generate_outline(self, topic):
"""AI生成PPT大纲"""
        response = self.client.chat.completions.create(
            model="deepseek-chat",
            messages=[
                {"role": "system", "content": "你是PPT制作专家"},
                {"role": "user", "content": f"为'{topic}'生成PPT大纲,包含5页:封面、目录、内容1、内容2、总结"}
            ],
            temperature=0.7
        )
        return response.choices[0].message.content
  
def create_ppt(self, topic, outline, output_file):
"""生成PPT文件"""
        prs = Presentation()
      
# 封面
        title_slide = prs.slides.add_slide(prs.slide_layouts[0])
        title_slide.shapes.title.text = topic
        title_slide.placeholders[1].text = "AI自动生成"
      
# 内容页
        for i, content in enumerate(outline.split('\n')[1:]):
            if content.strip():
                slide = prs.slides.add_slide(prs.slide_layouts[1])
                slide.shapes.title.text = f"第{i+1}页"
                slide.placeholders[1].text = content
      
prs.save(output_file)
        print(f"PPT已保存:{output_file}")

# 使用示例
if __name__ == "__main__":
    ppt = AutoPPT()
    topic = "季度销售汇报"
  
# 生成大纲
    outline = ppt.generate_outline(topic)
print("大纲:", outline)
  
# 生成PPT
ppt.create_ppt(topic, outline, "output.pptx")

三、运行效果

$ python auto_ppt.py
大纲: 1. 封面:季度销售汇报
2. 目录:销售数据、增长分析、下季度计划
3. 内容1:Q3销售额增长35%
4. 内容2:新品贡献60%增长
5. 总结:Q4目标与策略

PPT已保存:output.pptx

用时:10分钟(以前3小时)
效率提升:18倍

四、踩坑记录

解决
API调用失败 加异常处理,本地缓存
PPT格式乱 用模板,固定布局
内容太泛 AI生成后人工改30%

五、优化建议

1、加模板:用公司统一模板
2、加图表:用AI生成数据,Python画图插入
3、人工审核:AI生成后必检查

完整代码已开源,需要的话评论区留言。

完整代码已开源,需要的话评论区留言。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐