

从研究到演示的流程:Tavily、LLM、Slides API(2026)
一个从研究到演示的流程,输入一个主题,输出一个带有来源的幻灯片。搜索 API(Tavily 或 Exa)收集 10 到 20 个来源,LLM 撰写带编号引用的 12 张幻灯片简报,2Slides API 将简报转换成幻灯片:POST /api/v1/slides/generate 生成可编辑的 PPTX,每页 10 积分(12 张幻灯片共 120 积分,约 0.30 美元),或 create-pdf-slides 生成图片设计幻灯片,每页 10 + 100 积分。适合每周交付同一套幻灯片的咨询团队、分析师和研究运营。
主要要点
- 12 张幻灯片的 Fast PPT 成本为 120 积分,约 0.30 美元(按 5 美元套餐计);图片设计版本成本为 1,210 积分,约 3.03 美元。
- 流程共四次调用:一次搜索 API,一次 LLM,一次
GET /api/v1/themes/search,最后一次POST /api/v1/slides/generate。 - 每个 2Slides 响应都封装为
{ success, data: { jobId, status, downloadUrl } },一个解析器即可处理提交和轮询。 - 速率限制为每个密钥每分钟 6 次请求,Fast PPT 幻灯片在同步模式下约 30 秒返回。
- 只有当 LLM 提示强制编号来源列表且禁止虚构数据时,引用才会保留;幻灯片生成器负责格式化内容,不做事实核查。
适用对象
您运营咨询业务、研究部门或内容运营,且有人每隔几天就要求“关于欧洲电池回收市场的快速幻灯片”。研究花费一小时,制作幻灯片再花两小时,每次都是同样的 12 张幻灯片:摘要、市场规模、参与者、趋势、风险、建议、来源。如果您已有 n8n 实例或 Python 定时任务,这个方案无需新基础设施。
请勿将此方案用于需要定制分析的客户最终交付物。它能在几分钟内生成带来源的初稿;仍需人工阅读来源并决定内容。
流程概览
| 步骤 | 工具 | 发生了什么 | 2Slides 端点 / 积分 |
|---|---|---|---|
| 1. 触发 | n8n 定时或表单,cron,或命令行参数 | 主题字符串进入流程 | 无 |
| 2. 搜索 | Tavily /search 或 Exa /search | 返回 10 到 20 个带标题和文本摘要的 URL | 无 |
| 3. 简报 | OpenAI 或 Claude | 12 张幻灯片大纲,每个数据带编号 [n],加来源列表 | 无 |
| 4. 主题 | GET /api/v1/themes/search?query=consulting | 返回候选 themeId | 免费,6 次请求/分钟 |
| 5. 幻灯片 | POST /api/v1/slides/generate(或 create-pdf-slides) | 简报生成 PPTX(或 PDF + 页面图片) | 每页 10 积分(或 10 + 100 积分/页) |
| 6. 轮询 | GET /api/v1/jobs/{jobId} 每 5-10 秒 | 等待 status: "success" | 免费,10 次请求/分钟 |
| 7. 交付 | 上传到 Google Drive,发送 Slack 消息 | 团队获得链接和来源文件 | 无 |
第 1 步:用研究 API 收集 10 到 20 个来源
幻灯片质量取决于来源,务必投入精力。Tavily 返回带提取页面内容的结果,LLM 需要引用这些内容而非凭记忆。Exa 通过语义搜索实现同样功能。请求 10 到 20 条结果,若主题时效性强,限制为最近 12 个月。
将每条结果存为 { id, url, title, published, snippet },id 从 1 开始编号。id 即幻灯片上的引用标记,整个流程保持同一数组。
curl -s https://api.tavily.com/search \
-H "Content-Type: application/json" \
-d '{
"api_key": "'"$TAVILY_API_KEY"'",
"query": "European battery recycling market size 2026",
"search_depth": "advanced",
"max_results": 15,
"include_raw_content": false
}'第 2 步:用带引用的 LLM 写 12 张幻灯片简报(OpenAI 或 Claude)
提示完成三项任务:固定幻灯片结构,强制每个数字带引用 id,禁止出现未在来源中出现的数字。请求纯文本而非 JSON,因为文本直接传给 2Slides 的 userInput。
适合大多数咨询简报的结构是 12 张幻灯片:1 标题,2 执行摘要,3 市场规模,4-5 主要参与者,6-7 趋势,8-9 风险,10-11 建议,12 来源。每张幻灯片保持 3 到 5 条要点;Fast PPT 模板设计即基于此密度。
You are a research analyst. Using ONLY the numbered sources below, write a 12-slide
briefing on: {topic}.
Slides: 1 Title, 2 Executive summary, 3 Market size, 4-5 Key players, 6-7 Trends,
8-9 Risks, 10-11 Recommendations, 12 Sources.
Rules:
- Every number, percentage or date must end with its source id in brackets, e.g. "EUR 4.2B by 2030 [3]".
- If the sources do not contain a figure, write "no reliable figure found" instead of estimating.
- Slide 12 lists every cited id as "[n] Title, Publisher, URL".
- 3 to 5 bullets per slide, each under 20 words. Start each slide with "Slide N: <heading>".
Sources:
{sources}第 3 步:选择咨询风格主题
Fast PPT 幻灯片基于设计模板,themeId 决定外观。搜索一次“consulting”或“corporate”,选一两个 id,硬编码到流程中。每次运行搜索会消耗速率限制额度。
curl -s "https://2slides.com/api/v1/themes/search?query=consulting&limit=5" \
-H "Authorization: Bearer $SLIDES_API_KEY"响应列出每个主题的 themeId、名称和预览。要视觉浏览,可访问模板中心,展示同样的 1,500+ 模板。

第 4 步:用 2Slides API 生成幻灯片
两条路径。若需可编辑 PPTX,调用 generate。默认同步模式,12 张幻灯片约 30 秒返回带 downloadUrl 的响应。批量多个主题时,传 mode: "async" 并轮询。
curl -s -X POST https://2slides.com/api/v1/slides/generate \
-H "Authorization: Bearer $SLIDES_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"userInput": "Slide 1: European Battery Recycling Market 2026\n...\nSlide 12: Sources\n[1] ...",
"themeId": "THEME_ID_FROM_SEARCH",
"responseLanguage": "English",
"mode": "async"
}'响应:
{ "success": true, "data": { "jobId": "job_9f3a...", "status": "pending" } }若需高级图片设计版本(PDF 及每页图片),调用 create-pdf-slides,传入相同简报。设置 page: 12 与简报页数匹配,或 page: 0 让规划器决定。
curl -s -X POST https://2slides.com/api/v1/slides/create-pdf-slides \
-H "Authorization: Bearer $SLIDES_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"userInput": "Slide 1: European Battery Recycling Market 2026\n...",
"designStyle": "consulting deck, navy and white, dense data slides, one chart per slide",
"aspectRatio": "16:9",
"resolution": "2K",
"page": 12,
"contentDetail": "standard",
"responseLanguage": "English"
}'两条路径返回相同格式。每 5 到 10 秒轮询 GET https://2slides.com/api/v1/jobs/{jobId},直到 data.status 为 success 或 failed,然后获取 data.downloadUrl。
第 5 步:实现方案 A,n8n 工作流(Tavily n8n 演示)
n8n 是最快的方式,将其做成定时 Tavily n8n 演示任务,非工程师可通过表单触发。七个标准节点足够。
- 定时触发(每周)或带单个“topic”字段的表单触发。
- HTTP 请求调用 Tavily
/search,传入主题,max_results: 15。 - OpenAI 节点(或 HTTP 请求调用 Claude)使用第 2 步提示,传入编号来源。
- 代码节点组装
{ userInput, themeId, responseLanguage: "English", mode: "async" }。 - HTTP 请求调用
POST https://2slides.com/api/v1/slides/generate,头部Authorization: Bearer {{ $env.SLIDES_API_KEY }}。密钥保存在 n8n 凭据中,绝不放节点体。 - 等待节点(10 秒),然后 HTTP 请求调用
GET /api/v1/jobs/{{ $json.data.jobId }},IF 节点判断:success继续,pending或processing回到等待,failed发送错误到 Slack。 - HTTP 请求(下载
data.downloadUrl为二进制),然后上传到 Google Drive,发送带链接和主题的 Slack 消息。
额外上传第 1 步的 sources.json,审阅者需要完整摘要,不仅是来源幻灯片。凭据和错误分支详见 n8n + 2Slides:自动化演示工作流。
第 6 步:实现方案 B,单个 Python 脚本
适合喜欢用 cron 任务的团队,一个 Python 文件完成相同工作。此版本用 Tavily 和 OpenAI;换成 Exa 或 Claude 只需改一个函数。
import os, time, json, requests
TAVILY = os.environ["TAVILY_API_KEY"]
OPENAI = os.environ["OPENAI_API_KEY"]
SLIDES = os.environ["SLIDES_API_KEY"]
BASE = "https://2slides.com/api/v1"
H = {"Authorization": f"Bearer {SLIDES}", "Content-Type": "application/json"}
def search(topic, n=15):
r = requests.post("https://api.tavily.com/search", json={
"api_key": TAVILY, "query": topic, "search_depth": "advanced", "max_results": n})
r.raise_for_status()
return [{"id": i + 1, "url": s["url"], "title": s["title"], "snippet": s["content"]}
for i, s in enumerate(r.json()["results"])]
def write_brief(topic, sources):
src = "\n".join(f"[{s['id']}] {s['title']} | {s['url']}\n{s['snippet']}" for s in sources)
prompt = open("brief_prompt.txt").read().format(topic=topic, sources=src)
r = requests.post("https://api.openai.com/v1/chat/completions",
headers={"Authorization": f"Bearer {OPENAI}"},
json={"model": "gpt-4.1", "messages": [{"role": "user", "content": prompt}], "temperature": 0.2})
r.raise_for_status()
return r.json()["choices"][0]["message"]["content"]
def pick_theme(query="consulting"):
r = requests.get(f"{BASE}/themes/search", headers=H, params={"query": query, "limit": 5})
r.raise_for_status()
return r.json()["data"]["themes"][0]["themeId"]
def generate_deck(brief, theme_id, language="English"):
r = requests.post(f"{BASE}/slides/generate", headers=H, json={
"userInput": brief, "themeId": theme_id,
"responseLanguage": language, "mode": "async"})
r.raise_for_status()
body = r.json()
assert body["success"], body
return body["data"]["jobId"]
def wait_for(job_id, every=8, timeout=600):
start = time.time()
while time.time() - start < timeout:
d = requests.get(f"{BASE}/jobs/{job_id}", headers=H).json()["data"]
if d["status"] == "success":
return d["downloadUrl"]
if d["status"] == "failed":
raise RuntimeError(f"job {job_id} failed: {d}")
time.sleep(every)
raise TimeoutError(job_id)
if __name__ == "__main__":
topic = "European battery recycling market 2026"
sources = search(topic)
brief = write_brief(topic, sources)
url = wait_for(generate_deck(brief, pick_theme()))
slug = topic.lower().replace(" ", "-")
open(f"{slug}.pptx", "wb").write(requests.get(url).content)
json.dump({"topic": topic, "sources": sources, "brief": brief},
open(f"{slug}.sources.json", "w"), indent=2)脚本每次运行写两个文件:PPTX 和 .sources.json,后者包含来源列表和简报文本。JSON 是审计轨迹,方便合伙人追溯第 3 张幻灯片数据来源。批量时保持提交频率低于每分钟 6 次。
引用规范:每个数字都带来源
自动生成咨询幻灯片的常见失败是:第 3 张幻灯片出现无来源的自信数字。幻灯片生成器只格式化收到的内容,控制点在 LLM 步骤及其后校验。
- 强制标记格式。 每个数字后必须带
[n]。若正则检测到数字后跟“%”、“B”、“M”或年份但无括号内 id,拒绝简报并重跑 LLM。 - 验证 id 是否在来源数组内。 简报中出现
[7],但只有 6 个来源,说明模型虚构了引用。失败该次运行。 - 保留来源幻灯片。 第 12 张幻灯片列出所有引用的
[n] 标题,出版商,URL。审阅者首看此页。 - 存储伴随文件。
.sources.json(或 n8n 中上传的 Drive 文件)保存模型看到的摘要,方便审阅者对照幻灯片文本和原文。 - 优先写“no reliable figure found”。 咨询师可填补真实空白,难以识别虚构数字。
代理方案:Claude Code 或 Codex 搭配 2Slides 技能或 MCP
脚本流程适合定时、重复主题。一次性深度调研可用代理交互式完成。用一条命令将托管的 2Slides MCP 服务器连接到 Claude Code,然后让代理用其网页搜索工具调研主题,写带引用简报,调用 themes_search 选咨询主题,再用简报调用 slides_generate。MCP 提供 7 个工具,包括轮询用的 jobs_get,使用同一密钥和积分,与 REST API 相同。
claude mcp add --transport http 2slides "https://2slides.com/api/mcp?apikey=YOUR_KEY"
在 Codex、Cursor 或其他偏好技能的代理中,改为安装 技能页面上的代理技能;它教同样的端点和提交、轮询、下载循环。详见 代理技能 vs MCP 服务器的演示对比 和 如何使用 Claude MCP 生成演示 的分步教程。

咨询级幻灯片长什么样
2Slides 画廊托管参考幻灯片,如 BCG 的“AI at Work 2025”,开头一句话阐述主题,结尾附方法论和来源,结构与上文 12 张幻灯片简报相同。画廊幻灯片为真实案例,非 API 输出。可用作设计灵感,或将页面图片 URL 传给 create-like-this,图片设计路径据此派生类型、颜色和布局。


想了解更多适合咨询工作的工具,见 咨询师最佳 AI 演示工具。Gamma API 页面记录了类似的 n8n + Tavily + OpenAI 方案;其 API 密钥需 Pro 计划,而 2Slides 密钥适用于任何账户。2Slides 是我们的产品,请据此权衡比较。
成本
积分按用量付费:5 美元买 2,000 积分(0.0025 美元/积分),80 美元买 40,000 积分(0.002 美元/积分)。搜索 API 和 LLM 费用由各自提供商计费,不含于下表。
| 量级 | Fast PPT generate(12 张幻灯片 = 120 积分) | 图片设计 create-pdf-slides(12 张幻灯片 2K = 1,210 积分) |
|---|---|---|
| 每月 20 套 | 2,400 积分,约 6.00 美元(5 美元套餐可覆盖) | 24,200 积分,约 48 至 61 美元,视套餐而定 |
| 每月 500 套 | 60,000 积分,约 120 美元(两个 80 美元套餐) | 605,000 积分,约 1,210 美元(0.002 美元/积分) |
新账户赠送 500 积分,相当于 4 套完整 Fast PPT 测试幻灯片。
该用 Fast PPT 还是图片设计幻灯片?
- Fast PPT
generate适合:咨询师需在 PowerPoint 中编辑幻灯片,量大(每月 500 套约 120 美元),且模板外观可接受。约 30 秒返回。 create-pdf-slides适合:幻灯片作为只读 PDF 给客户,需设计感强、每页一条主旨。成本约为 Fast PPT 的 10 倍。create-like-this适合:公司有自有风格,传入一张品牌幻灯片图片 URL,图片设计路径据此继承样式。成本同create-pdf-slides:10 规划积分加每页 100 积分(2K 分辨率)。- 旁白和 MP4 仅图片设计作业支持,通过
generate-narration,每页 210 积分。适合内部研究简报视频,不适用于 Fast PPT 路径。
常见陷阱
- 速率限制为每分钟 6 次请求。 批量运行时,提交间隔保持 10 到 12 秒;轮询使用独立的 10 次/分钟
jobs配额。 - API 密钥放在 n8n 节点体或浏览器脚本中。 应保存在 n8n 凭据或服务器环境变量,绝不放客户端代码。
- 尝试为 Fast PPT 幻灯片生成旁白。
generate-narration只接受create-pdf-slides或create-like-this作业,Fast PPT 会被拒绝。 page: 0表示自动检测,不是零页。create-pdf-slides中,简报已 12 页时设page: 12,或设page: 0让规划器决定。- 语言代码非语言名称。
responseLanguage需传"Spanish"或"German",而非"es"或"de"。 - 传入 20 篇完整文章作为
userInput。 应先摘要,传给 2Slides 的应是简报而非原始来源。
常见问题解答
研究到演示流程每套幻灯片成本多少?
12 张 Fast PPT 幻灯片的 2Slides 部分约 0.30 美元(120 积分,0.0025 美元/积分),12 张图片设计幻灯片(2K)约 3.03 美元(1,210 积分)。另加一次搜索 API 调用和一次 LLM 完成,由各自提供商计费。每月 500 套时,Fast PPT 路径积分成本约 120 美元。
流程能输出其他语言的幻灯片吗?
可以。传入 responseLanguage,值为语言名称,如 "Spanish" 或 "Japanese",支持 20 多种语言。最干净的做法是先用英文写简报,生成时让 2Slides 翻译,确保不同语言版本幻灯片的引用和来源 URL 保持一致。
我需要 n8n 吗?能否不用工作流工具运行?
不需要。第 6 步的 Python 脚本可通过 cron 任务完成相同工作,2Slides MCP 或技能的代理会话可交互完成。n8n 适合非工程师通过表单触发运行,且想要 Google Drive 和 Slack 交付而无需自己写集成。
如何防止 LLM 在幻灯片上虚构统计数据?
限制提示并校验输出。要求每个数字后带 [n] 来源 id,告诉模型“无可靠数据时写‘no reliable figure found’”,拒绝任何引用 id 超出来源数量的简报。将来源文件与幻灯片一起存储,方便审阅者核对每张幻灯片与原文。
可以匹配我公司的幻灯片风格而非模板吗?
可以,使用 create-like-this。传入一张已有品牌幻灯片的公开 URL 作为 referenceImageUrl,图片设计路径据此派生颜色、字体和布局。成本与 create-pdf-slides 相同:10 规划积分加每页 100 积分(2K)。若需可编辑 PPTX,选择 themes/search 中最接近的主题。
后续步骤
- 在 2slides.com/api 获取 API 密钥。新账户赠送 500 积分,足够测试 4 套 12 张幻灯片的演示。
- 参阅其他团队如何使用相同端点,见中心文章 按团队划分的 AI 演示 API 用例。
- 如果团队使用 Claude Code 或 Codex,安装 代理技能,先交互式运行研究到演示流程,再安排定时任务;n8n + 2Slides 涵盖工作流工具版本。
About 2Slides
Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.
Try For Free