用 DeepSeek 生成 PPT 的完整流程

1. 技术需求
  • 核心工具:Python + python-pptx 库(操作PPT文件)
  • 辅助工具
    • 自然语言模型(生成文本内容)
    • matplotlib(生成图表)
    • Pillow(处理图像)
  • 环境要求
    • Python ≥ 3.8
    • 安装依赖:
      pip install python-pptx matplotlib Pillow
      

2. 代码生成

步骤1:创建PPT框架

from pptx import Presentation

def create_ppt(title, output_path="output.pptx"):
    prs = Presentation()
    slide_layout = prs.slide_layouts[0]  # 标题页布局
    slide = prs.slides.add_slide(slide_layout)
    title_box = slide.shapes.title
    title_box.text = title
    prs.save(output_path)
    return prs

步骤2:生成动态内容

def add_content_slide(prs, title, content):
    slide_layout = prs.slide_layouts[1]  # 标题+内容布局
    slide = prs.slides.add_slide(slide_layout)
    slide.shapes.title.text = title
    content_box = slide.shapes.placeholders[1]
    content_box.text = content  # 可替换为模型生成文本

步骤3:插入图表

import matplotlib.pyplot as plt
from io import BytesIO

def add_chart_slide(prs, title, data):
    # 生成柱状图
    plt.bar(data.keys(), data.values())
    plt.title(title)
    
    # 将图表转为图片流
    img_stream = BytesIO()
    plt.savefig(img_stream, format='png')
    img_stream.seek(0)
    
    # 添加到PPT
    slide = prs.slides.add_slide(prs.slide_layouts[5])  # 仅标题布局
    slide.shapes.title.text = title
    slide.shapes.add_picture(img_stream, left=100, top=150, width=400, height=300)
    plt.close()

3. 内容整合
  • 文本生成:调用语言模型接口生成段落
    def generate_text(prompt):
        # 调用模型API(示例)
        return "生成的分析内容..."
    

  • 多源数据整合
    prs = create_ppt("AI生成PPT示例")
    add_content_slide(prs, "市场分析", generate_text("2024年行业趋势"))
    add_chart_slide(prs, "销售数据", {"Q1": 120, "Q2": 180, "Q3": 210})
    

4. 格式导出
  • 保存PPTX
    prs.save("final_presentation.pptx")
    

  • 导出PDF(可选)
    from comtypes import client  # 需安装pywin32
    def pptx_to_pdf(input_path, output_path):
        powerpoint = client.CreateObject("PowerPoint.Application")
        deck = powerpoint.Presentations.Open(input_path)
        deck.SaveAs(output_path, 32)  # 32为PDF格式代码
        deck.Close()
        powerpoint.Quit()
    

流程图示例

graph LR
A[技术需求] --> B[代码生成]
B --> C[内容整合]
C --> D[格式导出]
D --> E[PPTX/PDF文件]

注意

  1. 实际部署需处理模型API调用、异常捕获等
  2. 图表样式可通过plt.style.use('ggplot')等自定义
  3. 文本生成需结合具体模型(如DeepSeek API)
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐