用Python自动生成PPT:内容与样式分离的工程实践

1. 为什么我要自己动手做一个 PPT 生成工具

先说说我做这个项目的起因。我在一家中型公司做技术方案和产品汇报,平均每周要出三到五份 PPT,多的时候一天两份。最开始我也是老老实实打开演示软件,一页一页拖文本框、调对齐、找图标、配颜色。一份二十页的方案,从梳理内容到排版完成,三个小时是常态,遇到图表多的能磨到半天。最要命的是,每次改数据,图表要重新做一遍,格式还经常跑偏,字体忽大忽小,行距忽宽忽窄,改到最后自己都不想看了。

后来我开始琢磨,PPT 这东西本质上是什么?是结构化的内容 + 一套稳定的视觉规则。内容部分我脑子里其实很清楚,无非是标题、要点、数据、图表、结论。视觉规则也是固定的,公司有模板,字号、配色、页边距都有规范。既然这两块都是确定的,那中间那些重复的拖拽和微调,凭什么要人来做?

这就是 ppt-master 这个项目的出发点:把 PPT 制作从手工劳动变成一次内容到成品的自动转换。你只管把内容按结构写清楚,剩下的排版、配色、图表生成、页面组织,交给程序去干。它解决的问题很具体——重复劳动、格式不一致、改数据要重做、多人协作风格不统一。适合谁来参考?任何每周要产出多份汇报材料的人,不管是技术、产品、运营还是学生做答辩,只要你的 PPT 有相对固定的结构,这套思路都能用。

我做的第一版其实很粗糙,就是一个脚本,读一个结构化的文本文件,套一个模板,输出一份演示文稿。但跑通那一刻我就知道方向对了——原来三个小时的活,压缩到了十分钟,而且改数据只需要改源文件重新跑一遍,格式纹丝不动。后面我陆续加了图表自动生成、多模板切换、批量出图、目录自动编号这些能力,慢慢就成了现在这个 ppt-master。

下面我把整个项目的设计思路、核心实现、踩过的坑,完整地拆一遍。你不需要照抄我的代码,但里面的取舍逻辑和实操细节,应该能帮你少走不少弯路。

2. 整体架构设计与技术选型思路

2.1 核心设计原则:内容与样式彻底分离

做这类工具,最容易犯的错就是"边生成边排版",代码里到处硬编码坐标和字号。我第一版就吃过这个亏,后来全部推倒重来,确立了一条铁律:内容层只描述"有什么",样式层只描述"长什么样",渲染层负责把两者拼起来。

具体来说,内容层我用一份结构化的数据来描述,大概长这样:

title: 季度技术方案汇报 author: 某开发者 slides: - type: cover title: 季度技术方案汇报 subtitle: 架构升级与性能优化 - type: bullets title: 本季度核心目标 items: - 完成核心模块重构 - 接口平均响应时间下降 40% - 建立自动化回归测试体系 - type: chart title: 响应时间趋势 chart_type: line data: - { month: 1月, value: 320 } - { month: 2月, value: 260 } - { month: 3月, value: 190 }

样式层则是一份模板配置,定义每种页面类型用什么布局、什么配色、什么字体。渲染层读这两份东西,输出最终的演示文稿文件。

这么拆的好处非常明显。第一,换模板不用动内容,同一份内容可以出商务风、极简风、科技风三个版本。第二,改内容不用碰样式,数据更新只改 YAML。第三,多人协作时,大家只维护内容文件,样式由一个人统一管,风格自然就统一了。这个原则是整个项目的骨架,后面所有设计都围绕它展开。

2.2 技术选型:为什么用 Python 加 python-pptx

选型这块我对比过几条路。一条是用现成的在线生成服务,但数据要传到别人服务器,公司内部方案根本不敢用。一条是用前端方案,浏览器里画 canvas 再导出,但导出格式和兼容性坑太多。最后我选了Python + python-pptx这条最"土"但最稳的路。

python-pptx 这个库的好处是,它直接操作演示文稿的底层 XML 结构,生成的文件是标准的、可编辑的,不是图片拼出来的假 PPT。你生成完还能打开继续手动改,这点对实际工作太重要了——领导临时让你调一页,你总不能重新跑一遍脚本吧。而且它跨平台,Windows、macOS、Linux 上跑出来的结果一致,放到 CI 里批量生成也没问题。

图表部分我用的是 matplotlib 生成图片再插入,而不是用 python-pptx 自带的图表对象。原因后面会细说,简单讲就是自带图表样式太丑、可控性差,而 matplotlib 能精确控制每一个像素,配色和模板统一。

提示:如果你团队里没人会 Python,这套方案的上手成本会偏高。可以考虑把内容层做成表格,让非技术人员填表,程序读表生成,这样门槛就降下来了。

2.3 目录结构:让项目能长期维护

一个能长期用的工具,目录结构必须清晰。我的组织方式是这样的:

ppt-master/ ├── content/ # 内容源文件,一份 YAML 对应一份 PPT ├── templates/ # 模板配置,每种风格一个目录 │ ├── business/ │ │ ├── theme.yaml │ │ └── assets/ │ └── minimal/ ├── renderer/ # 渲染核心代码 │ ├── slide_builder.py │ ├── chart_builder.py │ └── layout_engine.py ├── output/ # 生成的成品 └── main.py # 入口

内容、模板、代码、产物四者分开,互不干扰。想加新风格,只在 templates 下加目录;想改内容,只动 content;代码升级不影响已有产物。这个结构看着简单,但它决定了这个项目是能用一个月还是能用三年。

3. 核心模块拆解与关键实现细节

3.1 内容解析层:把 YAML 变成内存对象

内容解析看着简单,其实细节不少。我用的是 PyYAML,但直接yaml.safe_load出来的是一堆嵌套字典,用起来很别扭。所以我加了一层转换,把每种页面类型映射成一个类。

class Slide: def __init__(self, raw): self.type = raw.get("type", "bullets") self.title = raw.get("title", "") self.raw = raw class BulletSlide(Slide): def __init__(self, raw): super().__init__(raw) self.items = raw.get("items", [])

为什么要做这层映射?因为不同页面类型的字段差异很大,封面页有副标题,图表页有数据和图表类型,纯文本页只有要点。如果全用字典取值,代码里到处是raw.get("xxx"),一旦字段名改了,满项目找。用类封装之后,字段定义集中在一处,改起来只动一个地方。

这里有个实操心得:YAML 的缩进极其敏感,一个空格错位就解析失败。我在解析前加了一个校验步骤,先检查文件能不能正常解析,解析失败就打印出错的行号和上下文,而不是抛一个看不懂的异常。这个小改动,让内容维护的人自己就能定位问题,不用每次都来找我。

3.2 布局引擎:坐标计算是排版的核心

排版这件事,说穿了就是算坐标。演示文稿的页面尺寸我用的是标准的 16:9,也就是 13.333 英寸宽、7.5 英寸高。python-pptx 里所有位置和尺寸都用Inches()或Pt()表示。

我定义了一套栅格系统,把页面横向切成 12 列,纵向按内容自适应。页边距统一留 0.6 英寸,标题区高度固定 1.2 英寸,正文区从 1.8 英寸开始往下排。这样算下来,正文可用宽度是 13.333 - 0.6×2 = 12.133 英寸,每列宽度约 1.011 英寸。

PAGE_W = Inches(13.333) PAGE_H = Inches(7.5) MARGIN = Inches(0.6) TITLE_H = Inches(1.2) CONTENT_TOP = Inches(1.8) CONTENT_W = PAGE_W - MARGIN * 2

为什么要用栅格而不是随便摆?因为栅格能保证不同页面之间的元素对齐。你翻页的时候,标题永远在同一个高度,正文永远从同一条线开始,视觉上就整齐。手工做 PPT 最容易乱的就是这个,每页标题位置差个几毫米,翻起来就晃眼。

正文的行距我设的是 1.5 倍,段间距 0.3 英寸。这个数值不是拍脑袋定的,是试出来的——1.2 倍太挤,读起来累;1.8 倍太散,一页放不下几条。1.5 倍配 0.3 英寸段间距,一页放五到七条要点最舒服,既不空也不满。

3.3 图表生成:为什么放弃自带图表

前面提到我不用 python-pptx 自带的图表对象,这里展开说。自带图表的问题有三个:一是默认样式太"办公软件味",灰底蓝柱,跟精心设计的模板格格不入;二是配色和字体改起来极其麻烦,要深入到 XML 层面;三是不同版本打开渲染效果有差异。

所以我改用 matplotlib 先生成图片,再作为图片插入。这样图表的每一个细节我都能控制——配色从模板配置里读,字体跟正文统一,尺寸精确到像素。

import matplotlib.pyplot as plt plt.rcParams["font.sans-serif"] = ["Source Han Sans"] plt.rcParams["axes.unicode_minus"] = False def build_line_chart(data, theme): fig, ax = plt.subplots(figsize=(8, 4.5), dpi=200) xs = [d["month"] for d in data] ys = [d["value"] for d in data] ax.plot(xs, ys, color=theme["primary"], linewidth=2.5, marker="o") ax.grid(axis="y", linestyle="--", alpha=0.3) for spine in ["top", "right"]: ax.spines[spine].set_visible(False) fig.tight_layout() fig.savefig("output/chart.png", transparent=True) plt.close(fig)

几个关键参数说明一下。dpi=200是保证插入 PPT 后放大不糊,普通屏幕 96 就够,但投影仪和打印场景 200 更稳。transparent=True让图片背景透明,这样能直接叠在模板的底色上,不会出现一块白底补丁。spines去掉上右边框,是极简风格的标配,视觉上更干净。

注意:中文字体一定要显式指定,否则 matplotlib 默认字体渲染中文会变成方框。这个坑我踩过,生成的图表全是豆腐块,排查了半天才发现是字体问题。

3.4 模板系统:一份配置控制全局风格

模板配置是整个项目的"设计规范",用一份 YAML 描述。核心字段包括主色、辅色、背景色、标题字号、正文字号、字体族。

name: business colors: primary: "#1F4E79" secondary: "#2E75B6" accent: "#ED7D31" background: "#FFFFFF" text: "#333333" fonts: title: "Source Han Sans Bold" body: "Source Han Sans" sizes: title: 32 subtitle: 20 body: 18

渲染的时候,所有颜色和字号都从这份配置里取,代码里绝不出现硬编码的色值。这样换风格只需要换一份配置,代码一行不动。我实测下来,从商务蓝换成极简灰,改配置加重新生成,不到一分钟。

这里有个经验:配色不要超过三个主色。主色用于标题和重点,辅色用于次级元素,强调色只用于需要突出的数据。颜色一多,页面就花,反而显得不专业。我见过太多 PPT 用了七八种颜色,看着热闹,实际信息层级全乱了。

4. 完整实操流程:从零生成一份汇报

4.1 环境准备与依赖安装

先把环境搭起来。Python 版本建议 3.9 以上,太老的版本有些库不兼容。

python -m venv venv source venv/bin/activate # Windows 用 venv\Scripts\activate pip install python-pptx pyyaml matplotlib pillow

四个依赖各司其职:python-pptx 负责生成演示文稿,pyyaml 解析内容文件,matplotlib 画图表,pillow 处理图片尺寸和格式。装完之后建议跑一个最小验证,确认能生成一个空白演示文稿,别等到写完一堆代码才发现环境有问题。

from pptx import Presentation prs = Presentation() prs.slides.add_slide(prs.slide_layouts[6]) prs.save("test.pptx") print("环境正常")

4.2 编写内容文件:结构决定质量

内容文件是整个流程的输入,写得好不好直接决定成品质量。我的建议是先把内容在纸上或文档里理清楚,再翻译成 YAML,不要边写 YAML 边想内容。

一份典型的汇报内容,结构上分四块:封面、目录、正文、结尾。正文里最常用的是要点页、图表页、对比页三种。写的时候注意,每条要点控制在一行以内,超过就拆成两条或者放到备注里。演示文稿不是文档,一页塞太多字,观众根本读不过来。

title: 季度技术方案汇报 slides: - type: cover title: 季度技术方案汇报 subtitle: 架构升级与性能优化 - type: toc title: 目录 items: [核心目标, 关键进展, 数据表现, 下阶段计划] - type: bullets title: 核心目标 items: - 完成核心模块重构 - 接口平均响应时间下降 40% - 建立自动化回归测试体系

4.3 执行生成与结果校验

内容写完,一条命令生成:

python main.py --content content/q3_report.yaml --template business --output output/q3_report.pptx

生成完一定要打开检查,重点看三处:一是文字有没有溢出文本框,二是图表配色和模板是否协调,三是页码和目录是否对应。我一般会快速翻一遍,发现溢出就回去精简文字,发现配色不对就调模板配置。

这里分享一个批量生成的技巧。如果一次要出多份材料,可以把内容文件放一个目录,写个循环批量跑:

import glob, subprocess for f in glob.glob("content/*.yaml"): name = f.split("/")[-1].replace(".yaml", "") subprocess.run([ "python", "main.py", "--content", f, "--template", "business", "--output", f"output/{name}.pptx" ])

实测下来,十份材料批量生成不到两分钟,比手工做快了不止一个数量级。

4.4 参数计算实例:字号与容量的关系

很多人问我,一页到底放多少字合适。这个可以算。假设正文区高度是 7.5 - 1.8 - 0.6 = 5.1 英寸,正文行高按 1.5 倍字号算,18 磅字的一行高度约 27 磅,也就是 0.375 英寸。5.1 除以 0.375 约等于 13 行。再算上段间距,实际能放 8 到 10 行文字。

如果每条要点占一行,那一页放 8 条左右是上限。超过这个数,要么缩小字号(但低于 16 磅投影就看不清了),要么拆页。这个计算过程看着简单,但它把"一页放多少"从感觉变成了数字,做多了心里就有谱了。

5. 常见问题与排查技巧实录

5.1 中文乱码与字体缺失

这是最高频的问题。表现是生成的 PPT 里中文变成方框,或者图表里的中文显示不出来。根因是字体没指定或系统里没装对应字体。

解决办法分两步。第一步,在 matplotlib 里显式指定中文字体,并且确认系统里确实装了这个字体。第二步,python-pptx 里设置字体时,要用字体的完整名称,比如"Source Han Sans"而不是"思源黑体",因为底层 XML 认的是字体族名。

from pptx.util import Pt run = paragraph.add_run() run.text = "核心目标" run.font.name = "Source Han Sans" run.font.size = Pt(18)

提示:如果要在没有装字体的机器上生成,最好把字体文件一起打包,或者用系统自带的通用字体,比如微软雅黑、苹方,兼容性更好。

5.2 文字溢出文本框

文字溢出是排版里最烦的问题。python-pptx 不会自动缩排,文字多了就直接超出边界。我的处理方式是生成前预估容量,生成后校验。

预估容量就是前面算的那套,按字号和区域高度算能放几行。校验则是在生成后,用 python-pptx 读回每个文本框的实际高度,跟设定高度对比,超了就报警。

def check_overflow(shape, max_height): if shape.height > max_height: print(f"警告:{shape.text[:20]} 可能溢出")

这个检查不能百分百准确,因为文字换行还跟具体字符宽度有关,但能拦住大部分明显问题。剩下的靠人工翻一遍。

5.3 图表与模板配色不统一

图表颜色跟模板对不上,是另一个常见问题。根因是图表生成时用了 matplotlib 的默认配色,没读模板配置。解决办法很简单,把模板的主色、辅色传进图表生成函数,所有颜色都从配置取。

我整理了一份常见问题的速查表,方便对照排查:

问题现象可能原因排查方向解决方式
中文变方框字体未指定或缺失检查字体配置和系统字体显式指定中文字体
文字溢出内容过多或字号过大读回文本框高度对比精简内容或拆页
图表配色突兀用了默认配色检查图表生成参数从模板读色值
生成报错YAML 缩进错误看报错行号修正缩进
页码错乱目录未同步更新检查目录生成逻辑重新生成目录

5.4 独家避坑经验

说几个文档里不会写、但实际很要命的点。

第一,图片分辨率别设太高。我一开始把 dpi 设到 600,生成的 PPT 文件几十兆,发邮件都发不出去。后来降到 200,投影和打印都够用,文件小了一大半。

第二,模板配置要版本管理。有次我改了主色,结果之前生成的材料风格全变了,因为模板是共享的。后来我给模板加了版本号,内容文件里指定用哪个版本,就不会互相影响了。

第三,生成前先备份。批量生成的时候,如果输出路径写错,可能覆盖掉之前的成品。我现在的习惯是输出到带时间戳的目录,确认没问题再手动归档。

第四,别追求全自动。有些页面,比如复杂的架构图、流程图,自动生成的效果永远不如手工调。我的做法是这类页面留一个"图片占位"类型,程序生成占位框,人工往里放图。工具是提效的,不是替代人的。

6. 这套方案还能怎么扩展

项目做到现在,基本能满足我日常八成的需求。但还有几个方向我觉得值得继续做。

一个是内容智能补全。现在内容还是人写的,未来可以接一个大模型,把零散的会议记录、需求文档自动整理成结构化的内容文件,人只需要审核和微调。这样从"有想法"到"有 PPT"的链路就更短了。

另一个是多格式输出。同一份内容,除了演示文稿,还能输出成 PDF、长图、甚至网页。这样一份内容能适配不同场景,汇报用 PPT,发群用长图,存档用 PDF,不用重复劳动。

还有一个是协作与审阅。内容文件是纯文本,天然适合版本管理。可以基于这个做一套审阅流程,谁改了什么一目了然,比在 PPT 文件上传来传去强太多。

我个人在实际操作中的体会是,做这类工具最大的价值不在于省了多少时间,而在于把不确定的手工劳动变成了确定的流程。以前做 PPT,质量取决于当天状态和心情;现在做 PPT,质量取决于模板和内容,稳定可控。这种确定性,对需要长期高频产出的人来说,比省时间更重要。

最后再分享一个小技巧:如果你刚开始做,别一上来就追求大而全。先做一个能生成封面加要点页的最小版本,跑通整条链路,再一点点加图表、加模板、加批量。我第一版只有两百行代码,但正是那两百行让我看清了整个方向。工具是长出来的,不是设计出来的。

相关新闻

开放式代码审查:从规则沉淀到AI辅助的团队实践

开放式代码审查:从规则沉淀到AI辅助的团队实践

那一次Review,至今让我印象深刻。我自认为提交了一段“完美”的代码:类型明确、命名讲究、注释齐全,甚至提前把函数的三种边界情况都测了一遍。结果同事在评审里只问了我三个问题:为什么定义成接口而不是具体类型?三秒…

2026/10/20 22:55:46 阅读更多 →
SQL孤岛与间隙问题全解析:从窗口函数到连续登录实战

SQL孤岛与间隙问题全解析:从窗口函数到连续登录实战

做时间序列分析的朋友一定碰到过这样的场景:一张表里存着用户的登录记录,日期断断续续,你不仅要找出哪几天没登录,还要把连续登录的几天拼成一个“段”来统计。又或者,你面前是一堆带时间戳的告警事件,需要…

2026/10/20 22:55:46 阅读更多 →
机器人系统十年演进:从脉冲伺服到数字孪生的架构变革

机器人系统十年演进:从脉冲伺服到数字孪生的架构变革

要说这十年机器人系统最大的变化,我得先讲个真实场景。2024年我在客户现场调一套柔性上料系统,机器人配上3D视觉和力控打磨单元,工程师们坐在办公室里用数字孪生平台远程调试,坐标变换、轨迹规划、碰撞检测全在仿真环境里跑完&…

2026/10/20 22:55:46 阅读更多 →

最新新闻

一个人+AI两周建九套生活社交信息系统:架构设计与实操复盘

一个人+AI两周建九套生活社交信息系统:架构设计与实操复盘

1. 一个人做完九套生活社交信息系统的整体思路拆解1.1 为什么选“一个人AI建站”这条路先说清楚这个项目的背景。所谓“九生活社交信息系统”,指的是围绕日常生活场景拆出来的九个独立信息模块:社区活动公告、邻里互助信息、二手闲置流转、兴趣小组招募、…

2026/10/20 23:32:11 阅读更多 →
多尺度仿真与跨尺度耦合:破解强度计算中的微观失效难题

多尺度仿真与跨尺度耦合:破解强度计算中的微观失效难题

做强度仿真的工程师,多少都遇到过这种场面:宏观模型建得规规矩矩,网格收敛也验证通过,载荷边界按图纸来,结果应力最大点跟试验断裂位置对不上,或者材料在远低于屈服极限的名义应力下就提前失效了。翻遍手册…

2026/10/20 23:32:11 阅读更多 →
AI原生应用个性化定制:技术支柱与落地实践

AI原生应用个性化定制:技术支柱与落地实践

1. 从"千人一面"到"千人千面":AI原生应用正在经历一场静默革命我最近在梳理手头的几个模拟项目时发现一个很有意思的现象:不管是做内容推荐、智能写作、还是效率工具的产品,大家嘴里聊的已经不再是"我的模型准确率有…

2026/10/20 23:32:11 阅读更多 →
基于扰动观测器的永磁同步电机模型预测控制仿真设计与分析

基于扰动观测器的永磁同步电机模型预测控制仿真设计与分析

先说我做这个仿真项目的动机。永磁同步电机(PMSM)控制这一块,模型预测控制(MPC)近几年的热度一直很高,尤其是有限集模型预测控制(FCS-MPC),动态响应比传统PI加调制器的方…

2026/10/20 23:32:11 阅读更多 →
Flink 1.14+ 报错解析:FileSystemFormatFactory 已移除

Flink 1.14+ 报错解析:FileSystemFormatFactory 已移除

1. 这个报错不是配置问题,而是Flink版本演进埋下的“语义断层”第一次在某跨平台实时数据管道项目里看到Could not find any factories that implement org.apache.flink.table.factories.FileSystemFormatFactory这行红字时,我下意识去翻flink-conf.yam…

2026/10/20 23:32:11 阅读更多 →
AI芯片软硬件协同设计:从峰值算力到有效算力的优化实践

AI芯片软硬件协同设计:从峰值算力到有效算力的优化实践

1. 从"能跑就行"到"跑得省电":AI芯片软硬件协同设计的核心命题做AI芯片这行的人,大概都经历过这样一个阶段:模型在仿真环境里跑通了,精度也达标了,团队欢呼雀跃,觉得大功告成。结果一上…

2026/10/20 23:31:09 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →