ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

DeepSeek+Kimi生成23页PPT:从内容到版式的自动化工作流

DeepSeek+Kimi生成23页PPT:从内容到版式的自动化工作流 简介这份23页PPT报告系统讲解如何结合DeepSeek与Kimi高效制作专业演示文稿面向职场汇报、学术演讲、行业分析等需要快速产出PPT的人群资源包内包含1个pptx文件容量约36.97MB图文结构完整可直接对照学习。目前已有681人学习下载。报告先对比两款工具的特点DeepSeek擅长逻辑推理、生成结构化大纲与数据支撑内容Kimi则能一键将Markdown大纲生成PPT并提供商务、科技、教育等多套免费模板随后按操作顺序梳理了从注册账号、输入指令生成内容框架、复制到Kimi生成初稿到微调文字图片、下载保存的完整流程。此外还总结了提升内容质量、去除“AI味”、嵌入自动化流程等技巧以及工作汇报、文献汇报、市场分析等应用场景帮助读者快速掌握这套“AI生成内容AI排版成稿”的制作方法。1. 为什么DeepSeekKimi适合做23页PPT内容归内容版式归版式做一份23页的PPT很多人第一时间想到让AI一键生成。但真正动手会发现直接让AI“生成一份PPT”出来要么是只有几行大字和漂亮背景的空壳要么是把PPT当成Word写的长篇文稿。我踩过这个坑之后换成了一种更稳的做法用DeepSeek写内容用Kimi做结构化整理最后用脚本或导出工具落地成23页.pptx。DeepSeek擅长长文本推理和按指令分段输出Kimi擅长在长上下文里把杂乱信息规整成固定格式两者各管一段产出的PPT既不是变体Word也不会只剩骨架。这个方案适合要快速出方案汇报、转正答辩、项目报告的人——只要你有明确的页数和大致提纲按后面这套流程走30分钟就能拿到一份内容实在、结构清楚、还能继续改的初稿。2. 工作流怎么分DeepSeek负责内容生产Kimi负责固定格式2.1 用“双层结构”避免AI把PPT做成Word制作PPT最常见的翻车点是让AI一次性把内容、版式、视觉都搞定。AI没有“一页只放一个论点”的自觉它会把所有相关信息塞进同一个输出里结果生成出来的东西更像一篇文字报告。我一般把PPT拆成两层看待。内容层每一页的标题、论点、论据、数据、案例。表现层页面的划分、标题的层级、要点的列表结构、字体字号关系。DeepSeek擅长的是内容层它能按“第1页、第2页”的顺序一段一段输出不容易自己跑题对中文长文本的逻辑组织也比较稳。Kimi擅长的是表现层它的上下文窗口够长能把DeepSeek输出的多段内容一次性放进去按固定分隔符整理成规范结构。所以这套工作流不是让两个模型同时生成而是串起来DeepSeek输出内容 → Kimi做格式归口 → 用脚本或工具渲染成.pptx。23页只是内容层的一个硬约束每一页要讲什么、每页放几个要点在提示词里写死AI的自由发挥空间就被限制在了可控范围内。2.2 DeepSeek分段生成23页内容提示词设计与API调用一次让DeepSeek生成23页输出长度容易不够也容易在中途“断气”。我会把23页拆成3到5段每段4到6页让DeepSeek逐段生成。分段还有一个好处每段的提示词可以单独带上这一段的背景信息内容更贴题。顺便把DeepSeek API如何调用一并演示。DeepSeek的接口兼容OpenAI格式直接用openai这个Python库就能调不用额外装SDKimport os from openai import OpenAI client OpenAI( api_keyos.environ.get(DEEPSEEK_API_KEY), base_urlhttps://api.deepseek.com ) def build_ppt_content(section_name: str, page_range: str, outline: str) - str: prompt ( f我要做一份23页的PPT主题是「城市充电站选址分析」。 f现在处理第{page_range}页属于「{section_name}」部分。 请按以下格式输出不要输出多余文字\n 页标题xxx\n - 要点1\n - 要点2\n - 要点3\n f背景大纲{outline} ) resp client.chat.completions.create( modeldeepseek-chat, messages[ {role: system, content: 你是PPT内容策划只输出内容不输出解释。}, {role: user, content: prompt} ], temperature0.7 ) return resp.choices[0].message.content if __name__ __main__: print(build_ppt_content(需求分析, 4-7, 充电站需求来自存量电动车、通勤流量、政策预期))这段代码做的事情很简单每次调用传入页码范围、章节名和背景大纲模型按“页标题要点”的格式输出最后把结果打印出来。关键参数有三个。modeldeepseek-chat是DeepSeek的通用对话模型适合这种结构化文本生成temperature0.7在内容稳定性和表达多样性之间取平衡如果你希望输出更规矩降到0.3会更听话base_url指向DeepSeek官方API地址不需要额外配置。如果你不想调API直接把上面prompt里的内容复制到DeepSeek网页版或App里用也可以只是需要手动复制每段输出。无论用哪种方式记得每生成一段就把结果存到本地文件不要等全部生成完再一起复制中段会话一旦丢失前面的工作就白做了。2.3 Kimi做格式归口一条指令把文本变成“可拆页”的MarkdownDeepSeek分段输出的内容格式不一定统一有的地方是编号列表有的地方是换行文本直接拿去转PPT会把脚本逼疯。这时候Kimi的作用就出来了把DeepSeek的几段输出全部粘贴进Kimi网页版对话框让Kimi按固定规则重新整理。我用的指令很固定直接复制即可请把下面这些内容整理成一份PPT的原始大纲要求 1. 每个页面用一行 --- 单独隔开 2. 每页第一行是标题用 # 开头 3. 页面内容用 - 开头每条一个要点不超过20字 4. 不要扩写内容不要新增观点保持原意 5. 如果某页只有标题没有要点补一条核心结论这段指令最关键的地方在于把输出格式写死用---分页、用#识别标题、用-识别要点。后续无论是用脚本还是Kimi自带的PPT助手都是靠这三个符号来拆页和分级的格式一旦统一后面就不会出大乱子。Kimi还有一个常被忽略的优势是长上下文。把DeepSeek输出的几轮内容一次性扔给Kimi正好匹配它的长文本处理能力。当然如果你赶上Kimi在线人数特别多的时候回复可能会变慢我的处理办法是把内容切成两段分别整理再手动合并不在一棵树上吊死。3. 从Markdown到.pptx的三条落地路径按环境选一种3.1 路径AKimi PPT助手导出零代码应急用如果你不想碰脚本Kimi网页版左侧功能入口有一个PPT助手可以直接用。操作步骤就三步把第2.3节整理好的Markdown复制出来在Kimi里选择PPT助手粘贴这段带---分页的内容让它按排版规则渲染预览确认后选择导出为PPTX文件这条路最省事适合快速预览、内部讨论、对版式没有硬性要求的场景。缺点也很明显导出的版式是通用风格和你公司的PPT模板大概率不搭每页要点一多文字就容易溢出页面需要手动调整。如果你只是想要一个“能看的产出”这条路足够如果要交付正式场合用的PPT建议走下面两条路。3.2 路径Bpython-pptx脚本生成可控推荐长期用python-pptx是一个专门操作.pptx文件的库安装后可以通过脚本把Markdown转成PPT。先装依赖pip install python-pptx把第2.3节整理好的Markdown存成outline.md然后运行下面的脚本from pptx import Presentation from pptx.util import Pt def load_slides(md_path: str) - list: 读取outline.md按---拆页提取每页标题和要点列表。 with open(md_path, encodingutf-8) as f: text f.read() pages [] for block in text.split(---): # 按分页符拆块 title None bullets [] for line in block.strip().splitlines(): line line.strip() if line.startswith(#): title line.lstrip(#).strip() # 行首是#看作标题 elif line.startswith(-): bullets.append(line.lstrip(-).strip()) # 行首是-看作要点 if title or bullets: pages.append((title, bullets)) return pages def build_ppt(md_path: str, out_path: str) - None: slides load_slides(md_path) prs Presentation() # 没有模板时从空白开始 for title, bullets in slides: slide prs.slides.add_slide(prs.slide_layouts[1]) # 标题内容版式 if slide.shapes.title is not None: slide.shapes.title.text title if title else 无标题页 body slide.placeholders[1].text_frame for i, bullet in enumerate(bullets): p body.paragraphs[0] if i 0 else body.add_paragraph() p.text bullet p.font.size Pt(18) # 控制要点字号防止文字溢出 prs.save(out_path) print(f已生成 {len(slides)} 页: {out_path}) if __name__ __main__: build_ppt(outline.md, 23页.pptx)脚本逻辑分两块load_slides负责把Markdown拆成“标题要点”的结构build_ppt负责把这个结构画成一页页PPT。prs.slide_layouts[1]对应Office自带的“标题和内容”版式和Markdown里的标题、要点正好匹配。值得注意的参数有两个。第一个是字体大小p.font.size Pt(18)把要点字号压到18磅比默认的24磅更抗长文字页面不容易炸。第二个是段落复用正文占位符默认有一段空文本我用body.paragraphs[0]来复用它而不是每次都add_paragraph()这样能避免每一页都多出一行空白段落。这段脚本跑完打印出的页数会直接告诉你Markdown里拆出了多少页23页对不对一眼就知道。3.3 路径C套公司模板一个小改动解决合规问题很多公司对PPT有硬性要求必须有固定母版、公司logo、统一配色。这种情况不用换方案python-pptx支持直接加载模板文件。你只需要把第3.2节脚本里的一行改掉prs Presentation(company_template.pptx) # 换成你的公司模板文件名 slide prs.slides.add_slide(prs.slide_layouts[0]) # 选模板里你常用的版式加载模板后生成的所有页面都会继承模板的母版、配色、logo和页码位置版式合规问题自动解决。唯一要留意的是模板里有哪些版式可用打开模板后在PPT里点“新建幻灯片”下拉菜单能看到所有版式列表记下你需要的那个版式名称或索引写进脚本就行。这个技巧同样适用于你自己积累的常用版式比每次重新定义版式效率高很多。4. 完整实操从内容清单到23页.pptx的四个步骤4.1 先把23页拆成内容清单别让AI自己定结构我自己的习惯是在让AI工作之前先花三分钟建一张页数分配表把23页的“页码—章节—主题”写清楚。没有这张表AI生成的内容就是“跟着感觉走”页数对不对全靠运气。下面是一个项目汇报PPT的骨架示例可以直接套用页码范围章节每页主题1封面项目名称汇报人2目录五个章节总览3摘要核心结论一页说完4-7背景问题、现状、趋势、机会8-12方案总体方案、子方案A/B/C、可行性13-17数据数据源、关键指标、效果对比18-21风险风险点、应对措施、预案22-23结尾总结、下一步计划这个骨架是把23页按“背景—方案—数据—风险—总结”五个环节切开的。中间章节的页数可以根据内容增减但结构不能少否则AI输出的东西会散。这张表既是提示词的一部分又是最后校验页数的基准线。提示页码跨度合并写是为了让DeepSeek按段处理时每段有个大主题。你完全可以根据自己的内容逻辑调整跨度但骨架必须覆盖“背景—方案—数据—风险—总结”五个环节不能全交给AI自由发挥。4.2 用DeepSeek按段落生成边生成边存档按第2.2节的方式把23页拆成5段分别生成第1-3页、第4-7页、第8-12页、第13-17页、第18-23页。每一段用单独的提示词提示词里带上第4.1节的骨架表格让模型知道自己这一段在整个PPT里的位置。每生成一段就把结果存成一个单独文件cat part1.md part2.md part3.md part4.md part5.md raw.md合并时有一个容易踩的细节每个分段文件的末尾要保证有一个---分隔符。如果某个分段漏了合并后它会和下一段的第一页粘在一起导致两页内容塞进同一页页数直接少一页。所以合并前可以先检查每个part文件末尾确认最后一行是---再合并。4.3 用Kimi统一格式后再合并raw.md是DeepSeek的原生输出格式还不完全统一直接跑脚本会有风险。我的做法是把raw.md的内容分成2到3次粘贴给Kimi每次大约8到10页的内容都使用第2.3节那条固定指令做格式归口。这里不偷懒直接整段粘贴是因为一次粘贴太长时Kimi的回复会被截断或者自动省略尾部内容。分段整理后每段都输出成标准的#标题加-要点格式再手动把三段合并成最终版outline.md。合并后检查一遍有没有重复的编号标题有的话顺手删掉这一步十几秒就能完成。4.4 跑脚本生成检查页数和版面执行第3.2节的build_ppt脚本传入合并后的outline.md和输出文件名python build_ppt.py脚本运行后会打印“已生成XX页”。如果打印出来的不是23页不要急着改脚本先回头检查第4.1节的骨架表和raw.md的分隔符数量。分隔符数量可以用一个命令快速确认grep -c ^---$ outline.md23页PPT应该有22个独立的---分隔符。如果结果不是22就说明某处少了分隔符需要回到上一步修正。生成PPT文件后打开它重点看三处封面页是否为整页大标题、正文页的要点是否被挤压、末尾页是否正常结束。要点溢出的页面把该页要点从四条压到三条或者手动把字号从18磅降到16磅问题通常就能解决。5. 避坑清单页数失控、层级错乱、特殊符号乱码5.1 页数对不上23页变18页或27页现象按照骨架表格让DeepSeek输出得到的Markdown确实分成了20多块但最终生成的PPT页数不是23页要么少了要么多了。原因模型对“页数”的理解不稳定它会把一个逻辑段落拆成多个页面也可能把两页内容合并到同一页分段生成时后一段的开头如果重复了上一段结尾的内容合并时就会吞掉一个分隔符页数直接少一页。解决不要指望提示词控制页数把页数校验放到脚本里。第3.2节的build_ppt已经会打印生成页数配合grep -c ^---$ outline.md统计分隔符能在生成阶段就发现页数偏差。如果发现某一段多页打开对应的part文件检查是否多写了一个---发现少页检查前后段是否粘在一起。5.2 层级错乱#和-混用导致排版翻车现象生成的PPT里有些标题跑到了正文区有些正文被当成了标题页面布局完全错位。原因Markdown的层级符号被混用了。比如DeepSeek原文里的“一、需求分析”没有在Kimi整理时变成# 需求分析而是保留成了普通文本或者Kimi把内容中已有的##、###直接保留脚本只识别单个#多级标题被当成普通文本处理。解决在第2.3节的Kimi指令里明确加一句“不要保留二级标题全部转成一级标题”。同时在第3.2节的load_slides函数里做防御处理把识别条件从line.startswith(#)改成line.startswith(#)就够用不用区分几个#。这样无论Kimi输出#、##还是###都会被视为页面标题。5.3 特殊符号乱码百分号、箭头、约等于号变成方块现象PPT里出现一堆小方框或问号“→”“≈”“%”显示异常排版看起来脏乱。原因字体覆盖问题。脚本生成的PPT默认字体对Unicode符号覆盖不全尤其在不同操作系统之间打开时更容易触发。DeepSeek原文里的“→”和“≈”这类符号在默认字体下找不到对应字形就显示成方块。解决在脚本生成时就给段落设置一个覆盖范围广的中文字体比如“微软雅黑”。只设置font.name可能对中文不生效因为中文字体需要额外设置东亚字体属性可以用一个辅助函数解决from pptx.oxml.ns import qn def set_chinese_font(paragraph, name微软雅黑, size18): paragraph.font.size Pt(size) paragraph.font.name name rPr paragraph._p.get_or_add_rPr() ea rPr.find(qn(a:ea)) if ea is None: ea rPr.makeelement(qn(a:ea), {}) rPr.append(ea) ea.set(typeface, name)在p.font.size Pt(18)旁边调用这个函数中文和常见符号就能正常显示。如果你的PPT需要发给外部客户生成后另存一份PDF再预览符号问题能在交付前暴露出来。5.4 超长对话被截断DeepSeek或Kimi只回复了一半现象生成过程中DeepSeek或Kimi回复到一半就停住了有时连前半段内容也丢失重新对话后需要从头再来。原因提示太长、上下文接近上限或者模型服务端处于高负载状态。Kimi在在线高峰期尤其容易排队处理长文本时回复变慢或中途中断是常见现象。解决不要靠“重试”赌运气养成“每产出一段立即存档”的习惯。DeepSeek每生成一个part就保存到本地文件Kimi每整理完一个分段也单独存成一个md文件不要全部生成完再统一复制。最后用cat按顺序合并即使某次对话被截断损失的范围也限制在一个分段的篇幅内重跑的成本很低。6. 把这份PPT变成流水线固化内容地图、动画留给最后6.1 把“页码—主题”骨架存成内容地图一次成功的23页PPT价值不仅是那份PPT本身更在于骨架。我习惯把第4.1节的“页码—章节—主题”表格单独存成一个文件下次做同类主题时直接替换表格里的主题词提示词里的其他部分都不动。比如这次是“城市充电站选址分析”下次换成“年度运营报告”只要把主题词和背景大纲换掉DeepSeek就能在同一个结构下产出不同内容。我自己的经验是这样形成的内容地图比单个提示词更经得起复用尤其适合每周都要出汇报PPT的场景。熟练之后从拿到主题到生成一份23页的初稿全程20分钟是正常的。6.2 动画和演示细节人工收尾关于PPT动画我的习惯是坚决不让AI替我加。AI自己配的动画经常页面乱飞、节奏忽快忽慢。脚本生成的基础版式只负责内容和结构最后一步打开Office PowerPoint手动给每页加统一的过渡效果比如“淡入”或“推进”动画类型保持一致整体的演示节奏才稳。页与页之间的衔接、重点页的强调动画也可以在这种手工微调阶段理清楚。最后说一个我自己的教训以前做项目报告时总想一步到位生成“能直接演示”的成品结果越接近交付越在改字号、调对齐、删冗余内容后来改成“DeepSeek写作、Kimi整理、脚本出稿、人工加动画”这条固定顺序后每一步的产物都能单独检查反而踏实了。AI的价值是把写内容的力气省下来而不是替你把最后的审美细节也包办掉。希望这套流程能帮你少踩几个坑做出一份你自己拿得出手的23页PPT。本文还有配套的精品资源点击获取
返回列表