

研究到簡報流程: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 或 CLI 參數 | 輸入主題字串 | 無 |
| 2. 搜尋 | Tavily /search 或 Exa /search | 取得 10 到 20 個帶標題與摘要的網址 | 無 |
| 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 也提供語意搜尋。若主題時間敏感,請限制只取近 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:用引用寫出 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、名稱與預覽。若想視覺瀏覽,Templates Hub 提供相同的 1,500+ 範本。

步驟 4:用 2Slides API 產生簡報
兩條路徑。若要可編輯的 PPTX,顧問可用 PowerPoint 重新設計,呼叫 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 簡報任務的方式。七個標準節點足夠。
- Schedule Trigger(每週)或帶單一「topic」欄位的 Form Trigger。
- HTTP Request 呼叫 Tavily
/search,帶入主題,max_results: 15。 - OpenAI 節點(或 HTTP Request 呼叫 Claude)用步驟 2 的提示語,傳入編號來源。
- Code 節點 組合
{ userInput, themeId, responseLanguage: "English", mode: "async" }。 - HTTP Request 呼叫
POST https://2slides.com/api/v1/slides/generate,標頭帶Authorization: Bearer {{ $env.SLIDES_API_KEY }}。API 金鑰存在 n8n 憑證,絕不放在節點內容。 - Wait 節點(10 秒),接著 HTTP Request 呼叫
GET /api/v1/jobs/{{ $json.data.jobId }},再用 IF 節點 判斷:success繼續,pending或processing回到 Wait,failed發錯誤到 Slack。 - HTTP Request(下載
data.downloadUrl為二進位檔)後,Google Drive 上傳與 Slack 發訊息,附帶 Drive 連結與主題。
另加第二個 Google Drive 上傳步驟,存放步驟 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 是審核軌跡,當合夥人問第三頁數字來源時可查。批次執行時,提交速率保持每分鐘不超過 6 次。
引用規範:每個數字都帶來源
自動化顧問簡報產生常見失敗點是:第三頁出現來源沒有的自信數字。簡報產生器只格式化收到的內容,控管需在 LLM 步驟與後續檢查。
- 強制標記格式。 每個數字結尾都帶
[n]。若正則表達式發現數字後有%、B、M或年份,卻同一行沒有括號內的 id,則拒絕摘要並重跑 LLM。 - 驗證 id 是否在來源陣列中。 摘要中出現
[7],但只有 6 個來源,代表模型虛構引用。流程失敗。 - 保留來源頁。 第 12 頁列出
[n] 標題, 出版者, URL,是審核者第一眼看的頁面。 - 存放來源檔案。
.sources.json(或 n8n 的 Drive 上傳)保存模型看到的摘要,方便審核者比對簡報文字與原文。 - 優先用「無可靠數字」替代。 顧問可補足誠實缺口,但難以辨識虛構數字。
代理方案: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 或其他偏好技能的代理中,改安裝 Agent Skill;它教導相同端點與提交、輪詢、下載迴圈。詳見 Agent Skills 與 MCP 伺服器簡報比較 及 如何使用 Claude MCP 產生簡報 的詳細設定。

顧問級簡報長什麼樣
2Slides Gallery 提供參考簡報,如 BCG 的「AI at Work 2025」,開頭一句論點,結尾附方法論與來源,與上述 12 頁摘要結構相同。這些 Gallery 簡報是實際案例,不是 API 輸出。可作為設計靈感,或將頁面圖片 URL 當作 referenceImageUrl 傳給 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 美元(9.50 美元點數包可涵蓋) | 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,或設 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,告訴模型遇不到數字就寫「無可靠數字」,拒絕任何超出來源數量的 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,安裝 Agent Skill 並先互動執行研究到簡報流程,再排程;n8n + 2Slides 涵蓋工作流程工具版本。
About 2Slides
Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.
Try For Free