ARTICLE DETAIL

资讯详情

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

DeepSeek接入Codex,一句话让Beamer生成PPT的完整流程

DeepSeek接入Codex,一句话让Beamer生成PPT的完整流程 实测 DeepSeek 接入 Codex 后一句话让 Beamer 生成 PPT 的完整流程让 DeepSeek 接入 Codex 之后PPT 生成这件事会变得很接近自然语言编程在终端里输入一句话例如“用 Beamer 做一份 8 页的注意力机制数据汇报幻灯片”Codex 会负责生成 LaTeX 文件、调用编译命令、处理报错最后把 PDF 输出到当前目录。这篇文章记录的就是这条实测链路。重点不是把工具说得像魔法而是把 Codex 和 DeepSeek 的组合方式、config 配置、提示词写法、LaTeX 编译以及实际遇到的问题完整讲清楚。内容适用于想用 AI 辅助生成技术汇报 PPT、论文答辩 Slides 或含大量公式演示文稿的开发者也适用于正在折腾 Codex 自定义模型提供方但遇到各种报错的人。1. 先弄明白这套组合里三个角色的分工很多人在实操之前就卡住了原因是不知道 Codex、DeepSeek、Beamer 三者之间到底是什么关系。这里先做一个概念拆解后面配置和排错时才能定位到具体环节。1.1 Codex 是一个在终端里执行的编码代理不是普通聊天窗口Codex CLI 是 OpenAI 推出的命令行编码代理工具。它和网页聊天最大的区别是它能真实操作你的文件系统可以读取项目目录、创建文件、运行 shell 命令、检查命令输出并依据结果继续修改代码。这意味着你可以让它“生成一个 slides.tex然后用 xelatex 编译如果失败就自己修”这样一条完整任务。Codex 的执行风格通常是任务拆分先读取需求再规划要创建的文件和执行命令然后逐步执行最后汇报结果。对于生成 Beamer 幻灯片这类任务Codex 比单纯的大模型聊天窗口更合适的点在于它把“生成代码”和“运行编译”绑定在了一起。模型写完 LaTeX 后编译器一旦报错Codex 可以直接读取报错信息并继续修改文件形成一个自愈闭环。具体到本项目Codex 负责的部分是接收自然语言提示词生成或修改.tex文件执行xelatex或pdflatex编译读取编译日志修复缺少宏包、语法错误、字体问题最终输出 PDF1.2 DeepSeek 负责提供模型推理能力关键是 OpenAI 兼容接口Codex 本身默认使用的模型需要 OpenAI 账号且默认配置并不适用于所有后端。好在 Codex 新版支持自定义模型提供方可以在config.toml中声明一个model_provider指定base_url、env_key和wire_api。这样Codex 发出的请求就会发给自定义地址而不是默认 OpenAI 服务。DeepSeek 开放平台提供 OpenAI 兼容的 API 接口因此可以作为 Codex 的模型后端Codex 把任务相关请求发送给 DeepSeekDeepSeek 返回模型生成的代码和文字。这里有一个容易踩坑的地方Codex 默认的请求协议可能是responses协议也就是访问/responses端点而 DeepSeek 的兼容接口通常使用/chat/completions端点。因此配置里必须显式声明wire_api chat否则请求路径不匹配会出现 404 或请求格式错误。1.3 Beamer 让 PPT 变成可编译的 LaTeX 文档Beamer 是 LaTeX 的一个文档类专门用于制作演示文稿。在 Beamer 里一页幻灯片就是一个frame整份 PPT 实际上是一个.tex源文件可以通过 LaTeX 编译器生成 PDF。用 Beamer 做 PPT 有以下明显好处公式排版质量高适合数学、算法、论文相关场景内容是纯文本代码天然适合模型生成和 Git 版本管理页面结构稳定不依赖客户端软件换机器也能编译主题、颜色、字体都是可配置的写一次可以复用缺点也很明显上手门槛比 PowerPoint 高。用户需要会写一点 LaTeX至少要知道编译命令。而这正好是 DeepSeek 加 Codex 可以弥补的地方你只需要描述“这个页面放什么内容、哪个地方需要公式”模型会替你写出 Beamer 文档和编译命令。2. 环境准备Codex CLI、DeepSeek API 和 LaTeX 三件套在实际生成 PPT 前需要先确认三样东西都准备好Codex CLI、DeepSeek API Key、LaTeX 发行版。任何一个缺失后面都会卡在第一步。2.1 依赖清单和版本检查先看整体依赖建议逐项检查后再开始配置。组件作用推荐安装方式验证命令Node.jsCodex CLI 运行环境官网安装或包管理器安装node --versionCodex CLI终端执行 AI 编码任务npm install -g openai/codexcodex --versionDeepSeek API Key模型推理的凭证DeepSeek 开放平台创建curl调用一次接口LaTeX 发行版编译 Beamer 源文件TeX Live / MacTeX / MiKTeXxelatex --version需要注意Codex CLI 只是一个命令行工具它不内置模型也不内置 LaTeX 编译器。模型推理由 DeepSeek 完成PDF 编译由本机 LaTeX 完成Codex 是中间调度者。2.2 安装 Codex CLI 并确认路径Codex CLI 最常见的安装方式是使用 npmnpm install -g openai/codex安装完成后执行codex --version如果能看到版本号说明安装成功。此时要记录 Codex CLI 所在路径因为后面桌面端或 VSCode 扩展接入时经常需要指定路径which codex在一台 Linux 或 macOS 机器上输出通常是/usr/local/bin/codex或 npm 的全局 bin 目录。如果版本老一点可能还会看到codex_cli这种命名。本文后面排错部分会提到一个高频报错就是找不到 Codex CLI 二进制路径所以在环境准备阶段先手动确认路径可以省很多事。2.3 创建 DeepSeek API Key 并验证接口在 DeepSeek 开放平台注册账号后进入 API Keys 页面创建一个 Key。创建时要注意Key 只显示一次需要立即保存并写入本地环境变量。先导出到当前 shellexport DEEPSEEK_API_KEYsk-你的密钥接着用一条 curl 请求验证 API Key 是否可用这是整个链路里最早能发现问题的地方curl https://api.deepseek.com/v1/chat/completions \ -H Content-Type: application/json \ -H Authorization: Bearer $DEEPSEEK_API_KEY \ -d { model: deepseek-chat, messages: [{role: user, content: 讲一句话 }] }如果返回结果中包含choices[0].message.content字段说明 Key 有效、接口地址正确、余额充足。如果返回 401说明 Key 错误如果返回 402 或类似提示说明账户没有可用余额如果返回 404说明接口地址拼写有误。2.4 安装 LaTeX 发行版中文幻灯片优先准备 xelatexBeamer 是 LaTeX 宏包因此必须安装完整度够用的 LaTeX 发行版。不同操作系统的安装命令如下# Ubuntu / Debian建议安装常用宏包和中文支持 sudo apt install texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended texlive-lang-chinese # macOS推荐 MacTeX brew install --cask mactex # Windows推荐 MiKTeX # 到 MiKTeX 官网下载安装包安装后验证xelatex --version为什么要用xelatex而不是pdflatex如果 Beamer 幻灯片中包含中文使用pdflatex很可能会出现中文乱码或缺少字体的问题。xelatex可以直接使用系统中文字体配合ctex宏包能比较自然地在 Beamer 中排版中文。后面让 Codex 生成内容时提示词中应明确要求使用xelatex编译。3. 把 DeepSeek 配置成 Codex 的模型后端环境准备完成后需要修改 Codex 的配置文件让它在调用模型时把请求发送到 DeepSeek。这一步是整个链路中最容易出错的部分原因在于 Codex 的配置文件字段、请求协议和 DeepSeek 的兼容接口之间需要精确匹配。3.1 编辑 Codex 全局配置文件Codex CLI 的全局配置文件路径如下Linux / macOS~/.codex/config.tomlWindows%USERPROFILE%\.codex\config.toml一个典型的最小配置如下model deepseek-chat model_provider deepseek [model_providers.deepseek] name DeepSeek base_url https://api.deepseek.com/v1 env_key DEEPSEEK_API_KEY wire_api chat这段配置的意思是所有 Codex 请求默认使用deepseek-chat模型模型提供方名为deepseek。Codex 在发送请求前会读取环境变量DEEPSEEK_API_KEY作为 Bearer Token并拼接base_url与/chat/completions作为完整接口地址。各字段含义如下表配置字段含义说明model请求里携带的模型名DeepSeek 平台常见为deepseek-chat具体以平台实际模型为准model_provider指定使用哪一组提供方配置必须与下方[model_providers.deepseek]对应base_urlAPI 基础地址DeepSeek 兼容接口常见为https://api.deepseek.com/v1env_key从环境变量读取 API Key 的变量名不要在配置文件中明文写 Keywire_api请求协议类型填chat会走/chat/completions这是常见兼容方式wire_api chat是关键配置。Codex 不同版本对请求协议的支持不同有的版本默认期望使用/responses端点。DeepSeek 的 OpenAI 兼容接口通常支持的是/chat/completions。如果不写或写错请求就会落在错误的端点上表现可能是接口返回 404、400或者 Codex 一直卡在请求失败。3.2 用环境变量保存 API Key避免明文泄漏Codex 支持通过env_key从环境变量读取 API Key这样密钥不会写进配置文件避免误将config.toml提交到 Git 仓库。在终端里设置环境变量export DEEPSEEK_API_KEYsk-你的密钥如果想持久化可以写入 shell 配置echo export DEEPSEEK_API_KEYsk-你的密钥 ~/.bashrc source ~/.bashrcmacOS 的 Zsh 用户则写入~/.zshrc。需要提醒的是不要在config.toml里直接写[model_providers.deepseek] # 不推荐 api_key sk-xxx这个字段在部分版本中并不存在即使存在也会把密钥暴露在明文文件里。使用环境变量既符合常见实践也能减少密钥泄露风险。3.3 使用 CC Switch 等本地路由工具时需要额外注意的情况除了直接修改config.toml还有一些桌面工具或开源工具会在本地提供一个模型路由入口典型如 CC Switch。这类工具的作用是把 Codex 的请求转换成目标模型服务支持的格式并通过本地接口转发给 DeepSeek。在实践中有两个高频问题。第一个问题是请求端点不匹配。如果工具暴露的是/responses端点但它后端的 DeepSeek 实际只接受/chat/completions那么 Codex 发起的请求会返回 404 或 400。解决办法是在 Codex 的config.toml中强制指定wire_api chat或者在使用这类工具时选择“Chat Completions”模式。第二个问题是模型名不匹配。例如某客户端默认配置仍把模型名写成 OpenAI 专属的字符串而 DeepSeek 后端并不认识这个模型名就会返回模型不支持。因此在更换模型后要同时检查两点Codex 主配置里的model字段以及本地路由工具内部填写的模型名。这里尤其要注意不要以为换了后端就万事大吉。Codex 生成的请求体、端点路径、模型名三者必须和后端能力一致任何一环不对都会表现为“模型无法响应”。4. 一句话让 Codex 生成 Beamer 并编译成 PDF配置正确后核心操作就是写提示词并执行。这里给出一个完整的可复现过程从提示词设计到最终产物。4.1 设计提示词主题、页数、结构和编译要求一次说清想让 AI 一次生成接近可用的 Beamer 工程提示词要包含以下信息幻灯片主题和受众页数或页面结构是否包含数学公式使用中文还是英文需要的主题风格和颜色明确要求写入哪个文件明确要求用xelatex编译并自动修复报错一个可以直接使用的提示词示例请用 Beamer 制作一份 8 页关于注意力机制的技术汇报 PPT。 要求 1. 主题使用 Madrid配色为深蓝色。 2. 标题页使用中文正文内容使用英文。 3. 第 4 页展示注意力公式。 4. 第 6 页展示一个对比表格。 5. 代码写入 slides.tex。 6. 使用 xelatex 编译成 PDF如果编译报错请继续修复直到编译成功。这段提示词的关键在于最后一条。“如果编译报错请继续修复直到编译成功”这句话会让 Codex 进入循环修复模式而不是生成文件后直接停止。实测中不写这句话时Codex 可能只生成文件不执行编译或者编译失败一次就放弃。4.2 在终端执行 codex exec在项目目录执行cd ~/projects/deepseek-beamer-demo codex exec 请用 Beamer 制作一份 8 页关于注意力机制的技术汇报 PPT。要求...完整提示词codex exec适合非交互式运行直接执行任务任务完成后退出。对于只想快速生成文件的场景用exec比较合适。如果想在终端里和 Codex 连续对话、中途加需求可以直接执行codex4.3 Codex 实际会做什么执行提示词后Codex 的行为大致如下读取提示词分析任务目标和产物要求在当前目录创建slides.tex写入 Beamer 文档结构、章节、页面内容运行xelatex -interactionnonstopmode slides.tex读取终端输出和.log文件如果报错回到步骤 2 修改文件并重新编译编译成功后报告完成状态因此建议在一个独立目录中执行避免模型生成的文件覆盖已有项目文件。4.4 生成文件的结构和关键片段一个由 Codex 生成的典型slides.tex可能包含以下结构\documentclass[10pt]{beamer} \usetheme{Madrid} \usecolortheme{default} \setbeamercolor{structure}{fgblue!60!black} \title{Attention Mechanism in Neural Networks} \author{Author} \date{\today} \begin{document} \begin{frame}{Title Page} \titlepage \end{frame} \begin{frame}{Attention Formula} \[ \text{Attention}(Q, K, V) \text{softmax}\left(\frac{QK^\top}{\sqrt{d_k}}\right)V \] \end{frame} \begin{frame}{Summary} \begin{itemize} \item Attention assigns weights to input tokens \item Weight is computed by Q and K similarity \item Multi-head attention improves stability \end{itemize} \end{frame} \end{document}注意\[ ... \]包裹的数学公式这是 Beamer 中排版公式的常见方式。如果模型写了$$ ... $$也可以工作但\[ \]在 LaTeX 中更规范。Codex 生成的.tex文件通常会在当前目录生成同时产生多个辅助文件比如.aux、.log、.nav、.snm这些都是正常现象。4.5 手动编译一遍确认 Codex 没有遗漏即使 Codex 声称编译成功也建议手动执行一次编译确认无误xelatex -interactionnonstopmode slides.tex xelatex -interactionnonstopmode slides.tex ls -lh slides.pdf第一次编译用于生成辅助文件第二次编译用于处理目录、页码和引用。Beamer 文档通常编译两遍更稳妥。5. 运行验证从 PDF 反推配置是否成功拿到 PDF 文件不代表整个链路完全可靠。还需要做一系列验证确认内容、公式、中文和页数都符合预期。5.1 验证产物质量验证可以分为两个层次。第一层是技术验证PDF 能打开、页数正确、没有编译警告引起的空白页。第二层是内容验证提示词中要求的“第 4 页包含注意力公式”“第 6 页包含对比表格”是否真的落在对应页面。AI 生成内容时有可能把页面顺序排错或者把公式写在错误页面所以内容验证不能省略。5.2 一份可以快速执行的检查点清单检查项检查方法失败时怎么办PDF 是否存在ls -lh slides.pdf检查编译日志页数是否匹配用 PDF 阅读器查看页数修改提示词或手动调整 frame中文是否显示正常打开 PDF 看标题页确认使用 xelatex 和中文字体公式是否渲染检查公式页面查看 .log 中是否有数学相关报错内容是否跑题对照提示词逐页阅读缩小提示范围重新生成source 是否能继续编辑检查 .tex 内容无异常问题可继续维护5.3 验证失败时的排查顺序这个问题很重要。看到 PDF 有问题不要直接重跑一遍。建议按以下顺序排查先确认问题出在内容层还是编译层如果是编译失败直接查看.log文件末尾的报错如果是内容不符合预期检查提示词是否写清楚了模板结构如果是页数不对优先检查是否有多余的空 frame 或\pause分页如果是中文乱码确认是否使用了xelatex和相关中文字体包只有当问题能复现且无法定位时才考虑重新生成。6. 高频问题定位与解决方案下面这些问题是实际使用中比较常见的按现象、原因、解决方式三个维度记录。6.1 Codex 报 unable to locate the codex cli binary现象在 VSCode 扩展或者桌面端集成中触发任务时提示找不到 Codex CLI 二进制文件。原因Codex CLI 并未安装或者安装路径不在应用程序能找到的 PATH 中。部分集成工具会要求用户手动指定 Codex 的路径。解决方式先确认终端里能正常执行codex --version。随后查看二进制位置which codex如果终端有输出就在工具的设置项中找到类似codex_cli_path的字段填入上面命令的输出路径。如果没有输出先重新安装 Codex CLI再配置路径。这句提示在项目标题对应热搜词里出现频率很高原因是不少人先在桌面客户端里尝试调用 Codex但命令行工具本身没有安装导致定位失败。先装 CLI再谈配置。6.2 模型名报 not supported现象Codex 发起请求后DeepSeek 接口返回类似“模型不支持”的错误常见于切换模型后没有同步修改模型名。原因Codex 配置中的model字段仍然写的是默认模型名而这个模型名只有 OpenAI 服务认识DeepSeek 后端并不存在这个模型。解决方式检查~/.codex/config.tomlgrep ^model ~/.codex/config.toml确认model已被设置成 DeepSeek 平台实际存在的模型名例如deepseek-chat。同时如果使用了 CC Switch 这类本地路由工具还要检查工具内维护的模型列表是否与 DeepSeek 平台一致。6.3 400 错误reasoning_content 在思考模式下必须原样传回现象使用带“深度思考”能力的模型时网关返回 HTTP 400错误信息里出现reasoning_content必须传回 API 的提示。原因DeepSeek 某些深度思考模型在 API 交互中会返回推理内容字段reasoning_content后续请求必须保持“思考模式”状态一致。如果本地路由工具或客户端配置了 thinking 模式但没有正确保留或回传该字段DeepSeek 接口会拒绝请求。解决方式优先把模型切换成普通对话模型例如deepseek-chat避免启用深度思考模式减少请求格式复杂度。如果必须使用深度思考模型则要检查两端Codex 或本地路由工具是否按接口要求回传了reasoning_content是否在重复请求时错误地覆盖了推理内容需要说明的是这类 400 错误和网络链路无关问题几乎都出在请求体结构与模型能力不匹配上。6.4 LaTeX 编译失败缺少宏包或中文乱码现象Codex 生成.tex文件后编译报File beamer.cls not found或者 PDF 中文变成乱码。原因LaTeX 发行版安装不完整缺少 Beamer 宏包或中文支持包。另外使用pdflatex编译含中文的 Beamer 文档也会导致乱码。解决方式补齐 TeX Live 常用宏包sudo apt install texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended texlive-lang-chinese并且确认编译命令是xelatex不是pdflatex。如果文档中含中文在.tex开头可以加入ctex相关配置\usepackage[UTF8]{ctex}在提示词里明确要求“使用 xelatex 编译并确保中文正常显示”可以减少这类问题的出现。6.5 生成结果页数不准或内容跑偏现象提示词要求 8 页结果只有 6 页或者某页内容与主题无关。原因模型对“页”的理解不稳定有时候它把一个小节合并成了一个 frame有时候它为了凑页数增加了不必要的分页。解决方式在提示词中给出更明确的页面规划例如页面结构 1. 标题页 2. 背景与问题 3. 方法总览 4. Attention 公式页 5. 实验设置 6. 对比表格 7. 结论 8. 参考文献当页面结构固定后模型通常能更准确地按需生成。如果仍然跑偏建议只告诉 Codex 生成某一页而不是一次生成全部页面。7. 把流程固化成自己的工程方法一次性生成 PDF 只是第一步。如果把这套流程用于日常生产比如周报、论文答辩、课程备课建议把提示词和编译流程固化下来减少重复劳动。7.1 可复用的 Beamer 提示词模板以下模板可以保存到一个文本文件中每次替换方括号内容即可请用 Beamer 生成 [页数] 页幻灯片主题是 [主题]。 目标受众[受众]。 要求 1. 主题风格[Madrid / Berlin / 自定义颜色] 2. 页面语言正文 [英文/中文]标题 [中文/英文] 3. 第 [N] 页需要公式[公式描述] 4. 第 [M] 页需要表格[表格内容描述] 5. 输出文件[文件名].tex 6. 使用 xelatex 编译出 PDF报错时自动修复并重新编译。把所有可变信息集中放在开头Codex 解析起来更快也不容易遗漏。7.2 用脚本或 Makefile 固化编译流程即使有 Codex 帮忙手动执行编译命令仍然容易出错。建议在项目目录下放一个Makefile.PHONY: build clean build: xelatex -interactionnonstopmode slides.tex xelatex -interactionnonstopmode slides.tex clean: rm -f slides.aux slides.log slides.nav slides.out slides.snm slides.toc slides.vrb之后生成和清理都只需要执行make build make clean这样做的好处是当 Codex 尝试编译时如果它能在目录里找到已有的编译入口调度会更稳定人工复查时也不会因为记错命令而出错。7.3 发布前检查清单每次用这套流程生成 PPT 后建议按以下清单过一遍是否已经导出正确的环境变量密钥没有写进配置文件生成的.tex文件是否包含预期页面结构和公式编译使用xelatex中文显示正常是否生成了多余辅助文件是否需要加入.gitignore目录中是否存在旧版本slides.pdf是否需要先清理如果加入 Gitslides.tex是否纳入版本管理编译产物是否忽略这份清单同样适合 AI 生成代码的通用流程先检查密钥安全再检查产物结构最后确认可复现性。7.4 向更深层扩展这套组合不仅限于 PPT 生成。方向可以逐步扩展生成 Beamer 讲稿备注和页码标记方便现场演讲让 Codex 把 Markdown 大纲转换成 Beamer 结构在 Beamer 中插入 TikZ 流程图配合 DeepSeek 描述图形结构用脚本批量生成多份模板不同但结构相同的演示文稿在 CI 环境中加入 LaTeX 编译提交.tex后自动产出 PDF最关键的一点是不要只把 DeepSeek 当成“问答机器”。通过 Codex 把它接入到命令行和编译链路里生成能力和工具能力才能真正组合成一条可复现的工程流程。实际项目中建议从一个最小案例开始先跑通“一句话生成 Beamer PDF”再逐步增加内容复杂度。每次增加需求时保持提示词结构清晰这类模型在边界明确、输出要求具体时稳定性会明显提高。
返回列表