

Research-to-Präsentations-Pipeline: Tavily, LLM, Slides API (2026)
Eine Research-to-Präsentations-Pipeline nimmt ein Thema entgegen und liefert ein quellenbasiertes Deck aus. Eine Such-API (Tavily oder Exa) sammelt 10 bis 20 Quellen, ein LLM schreibt ein 12-Folien-Briefing mit nummerierten Zitaten, und die 2Slides API verwandelt das Briefing in ein Deck: POST /api/v1/slides/generate für eine editierbare PPTX zu 10 Credits pro Seite (120 Credits, ca. 0,30 $ für 12 Folien) oder create-pdf-slides für bildgestaltete Folien zu 10 + 100 Credits pro Seite. Es eignet sich für Beratungsteams, Analysten und Research-Operations, die wöchentlich dasselbe Deck ausliefern.
Wichtigste Erkenntnisse
- Ein 12-Folien-Fast-PPT-Deck kostet 120 Credits, ca. 0,30 $ beim 5-$-Paketpreis; die bildgestaltete Version kostet 1.210 Credits, ca. 3,03 $.
- Die Pipeline besteht aus vier Aufrufen: ein Such-API-Aufruf, ein LLM-Aufruf,
GET /api/v1/themes/searchund dannPOST /api/v1/slides/generate. - Jede 2Slides-Antwort ist als
{ success, data: { jobId, status, downloadUrl } }verpackt, sodass ein Parser sowohl das Absenden als auch das Abfragen übernimmt. - Das Rate-Limit liegt bei 6 Anfragen pro Minute pro Schlüssel, und ein Fast-PPT-Deck wird im Sync-Modus in etwa 30 Sekunden zurückgegeben.
- Zitate bleiben nur erhalten, wenn das LLM-Prompt eine nummerierte Quellenliste erzwingt und erfundene Zahlen verbietet; der Deck-Generator formatiert den Inhalt, prüft ihn aber nicht auf Fakten.
Für wen ist das?
Sie betreiben eine Beratungsfirma, ein Research-Desk oder eine Content-Operation, und jemand fragt alle paar Tage nach „einem schnellen Deck zum europäischen Batterierecyclingmarkt“. Die Recherche dauert eine Stunde, das Deck zwei weitere, und es sind immer dieselben 12 Folien: Zusammenfassung, Marktgröße, Akteure, Trends, Risiken, Empfehlungen, Quellen. Wenn Sie bereits eine n8n-Instanz oder einen Python-Scheduler besitzen, benötigt das Rezept keine neue Infrastruktur.
Verwenden Sie dieses Rezept nicht für kundenfertige Deliverables, die maßgeschneiderte Analysen erfordern. Es erzeugt in Minuten einen quellenbasierten ersten Entwurf; ein Mensch liest die Quellen und entscheidet, was gesagt wird.
Der Workflow auf einen Blick
| Schritt | Tool | Was passiert | 2Slides-Endpunkt / Credits |
|---|---|---|---|
| 1. Auslöser | n8n Schedule oder Formular, cron oder CLI-Argument | Ein Themenstring wird in die Pipeline eingespeist | keine |
| 2. Suche | Tavily /search oder Exa /search | 10 bis 20 URLs mit Titeln und Textausschnitten | keine |
| 3. Briefing | OpenAI oder Claude | Ein 12-Folien-Outline, jede Zahl mit [n] markiert, plus Quellenliste | keine |
| 4. Theme | GET /api/v1/themes/search?query=consulting | Gibt Kandidaten-themeId-Werte zurück | kostenlos, 6 Anfragen/Min |
| 5. Deck | POST /api/v1/slides/generate (oder create-pdf-slides) | Briefing wird zu einer PPTX (oder PDF + Seitenbilder) | 10 Credits/Seite (oder 10 + 100/Seite) |
| 6. Abfrage | GET /api/v1/jobs/{jobId} alle 5 bis 10 Sek. | Warten auf status: "success" | kostenlos, 10 Anfragen/Min |
| 7. Lieferung | Google Drive Upload, Slack-Nachricht | Team erhält Link und Quellen-Datei | keine |
Schritt 1: 10 bis 20 Quellen mit einer Research-API sammeln
Das Deck ist nur so gut wie die Quellen, investieren Sie hier Ihre Mühe. Tavily liefert Ergebnisse mit extrahiertem Seiteninhalt, den ein LLM zitieren kann, statt ihn nur zu erinnern. Exa macht das Gleiche mit semantischer Suche. Fordern Sie 10 bis 20 Ergebnisse an und beschränken Sie die Suche auf die letzten 12 Monate, wenn das Thema zeitkritisch ist.
Speichern Sie jedes Ergebnis als { id, url, title, published, snippet } und nummerieren Sie die IDs ab 1. Diese IDs werden zu den Zitationsmarkern auf den Folien, also behalten Sie dasselbe Array während des gesamten Laufs.
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
}'Schritt 2: Ein 12-Folien-Briefing mit Zitaten schreiben (OpenAI oder Claude)
Das Prompt erfüllt drei Aufgaben: Es fixiert die Folienstruktur, zwingt jede Zahl, eine Quellen-ID zu tragen, und verbietet Zahlen, die nicht in den Quellen stehen. Fordern Sie reinen Text an, kein JSON, da der Text direkt in userInput des 2Slides-Aufrufs geht.
Eine Struktur, die für die meisten Beratungs-Briefings funktioniert, sind 12 Folien: 1 Titel, 2 Executive Summary, 3 Marktgröße, 4 bis 5 Hauptakteure, 6 bis 7 Trends, 8 bis 9 Risiken, 10 bis 11 Empfehlungen, 12 Quellen. Halten Sie 3 bis 5 Stichpunkte pro Folie; Fast-PPT-Vorlagen sind auf diese Dichte ausgelegt.
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}Schritt 3: Ein Consulting-Theme auswählen
Fast-PPT-Decks basieren auf gestalteten Vorlagen, und die themeId bestimmt das Aussehen. Suchen Sie einmalig in der Bibliothek nach „consulting“ oder „corporate“, wählen Sie ein oder zwei IDs aus und kodieren Sie diese fest in die Pipeline. Eine Suche bei jedem Lauf verbraucht nur unnötig das Rate-Limit.
curl -s "https://2slides.com/api/v1/themes/search?query=consulting&limit=5" \
-H "Authorization: Bearer $SLIDES_API_KEY"Die Antwort listet jedes Theme mit themeId, Name und Vorschau auf. Zum visuellen Durchstöbern zeigt der Templates Hub dieselben 1.500+ Vorlagen.

Schritt 4: Das Deck mit der 2Slides API generieren
Zwei Wege. Für eine editierbare PPTX, die ein Berater in PowerPoint nachbearbeiten kann, rufen Sie generate auf. Es ist standardmäßig synchron, sodass ein 12-Folien-Deck in etwa 30 Sekunden mit einer downloadUrl in einem Aufruf zurückkommt. Bei mehreren Themen im Batch-Modus übergeben Sie mode: "async" und fragen den Jobstatus ab.
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"
}'Antwort:
{ "success": true, "data": { "jobId": "job_9f3a...", "status": "pending" } }Für eine Premium-Version mit bildgestalteten Folien (PDF plus Seitenbilder) rufen Sie create-pdf-slides mit demselben Briefing auf. Setzen Sie page: 12, um zum Briefing zu passen, oder page: 0, damit der Planer entscheidet.
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"
}'Beide Wege liefern dieselbe Hülle zurück. Fragen Sie GET https://2slides.com/api/v1/jobs/{jobId} alle 5 bis 10 Sekunden ab, bis data.status success oder failed ist, und laden Sie dann data.downloadUrl herunter.
Schritt 5: Implementierung A, der n8n-Workflow (Tavily n8n Präsentation)
n8n ist der schnellste Weg, um diesen Prozess als geplanten Tavily n8n-Präsentationsjob einzurichten, den Nicht-Techniker per Formular auslösen können. Sieben Standardknoten genügen.
- Schedule Trigger (wöchentlich) oder Form Trigger mit einem einzigen „topic“-Feld.
- HTTP Request an Tavily
/searchmit dem Thema,max_results: 15. - OpenAI-Knoten (oder HTTP Request an Claude) mit dem Prompt aus Schritt 2; übergeben Sie die nummerierten Quellen in der Nachricht.
- Code-Knoten, der
{ userInput, themeId, responseLanguage: "English", mode: "async" }aus dem LLM-Text zusammenstellt. - HTTP Request an
POST https://2slides.com/api/v1/slides/generatemit HeaderAuthorization: Bearer {{ $env.SLIDES_API_KEY }}. Bewahren Sie den Schlüssel in n8n-Credentials, niemals im Node-Body. - Wait-Knoten (10 Sekunden), dann HTTP Request an
GET /api/v1/jobs/{{ $json.data.jobId }}und ein IF-Knoten:successgeht weiter,pendingoderprocessinggeht zurück zu Wait,failedpostet den Fehler an Slack. - HTTP Request (Download von
data.downloadUrlals Binärdatei), dann Google Drive Upload und eine Slack-Nachricht mit dem Drive-Link und dem Thema.
Fügen Sie einen zweiten Google Drive Upload für die sources.json aus Schritt 1 hinzu; der Prüfer möchte die vollständigen Ausschnitte, nicht nur die Quellenfolie. Credentials und Fehlerzweige sind in n8n + 2Slides: automate presentation workflows beschrieben.
Schritt 6: Implementierung B, ein einzelnes Python-Skript
Für Teams, die lieber einen Cron-Job nutzen, erledigt eine Python-Datei dieselbe Arbeit. Diese Version verwendet Tavily und OpenAI; tauschen Sie Exa oder Claude durch Ändern einer Funktion aus.
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)Das Skript schreibt pro Lauf zwei Dateien: die PPTX und eine .sources.json mit der Quellenliste und dem Briefingtext. Das JSON ist die Audit-Trail, wenn ein Partner fragt, woher die Zahl auf Folie 3 stammt. Für Batch-Läufe halten Sie die Einreichungen unter 6 pro Minute.
Zitationshygiene: Jede Zahl trägt ihre Quelle
Automatisierte Beratungsdeck-Generierung scheitert auf eine vorhersehbare Weise: Eine selbstbewusste Zahl auf Folie 3, die keine Quelle enthält. Der Deck-Generator formatiert nur, was er erhält, also liegen die Kontrollen im LLM-Schritt und einer Prüfung danach.
- Erzwingen Sie das Markierungsformat. Jede Zahl endet mit
[n]. Lehnen Sie das Briefing ab (und führen Sie den LLM-Aufruf erneut aus), wenn ein Regex eine Zahl findet, gefolgt von "%", "B", "M" oder einem Jahr ohne eckige Klammern auf derselben Zeile. - Validieren Sie IDs gegen das Quellenarray. Ein
[7]im Briefing bei nur 6 Quellen bedeutet, dass das Modell eine Referenz erfunden hat. Stoppen Sie den Lauf. - Behalten Sie die Quellenfolie. Folie 12 listet
[n] Titel, Herausgeber, URLfür jede zitierte ID. Das ist die Folie, die ein Prüfer zuerst liest. - Speichern Sie die Begleitdatei. Die
.sources.json(oder der Drive-Upload in n8n) enthält die Ausschnitte, die das Modell gesehen hat, sodass ein Prüfer den Folientext mit dem Original vergleichen kann. - Bevorzugen Sie „no reliable figure found“. Berater können ehrliche Lücken füllen; erfundene Zahlen sind schwer zu erkennen.
Die Agenten-Alternative: Claude Code oder Codex mit 2Slides Skill oder MCP
Die skriptgesteuerte Pipeline eignet sich für geplante, wiederholbare Themen. Für eine einmalige Deep-Dive-Analyse erledigt eine Agenten-Session dieselben Schritte interaktiv. Verbinden Sie den gehosteten 2Slides MCP-Server mit Claude Code per einem Befehl, und bitten Sie den Agenten, das Thema mit seinem Web-Suchtool zu recherchieren, das zitierte Briefing zu schreiben, themes_search für ein Consulting-Theme aufzurufen und slides_generate mit dem Briefing auszuführen. Der MCP stellt 7 Tools bereit, darunter jobs_get zum Abfragen, mit demselben Schlüssel und Credits wie die REST-API.
claude mcp add --transport http 2slides "https://2slides.com/api/mcp?apikey=YOUR_KEY"
In Codex, Cursor oder einem anderen Agenten, der Skills bevorzugt, installieren Sie stattdessen den Agent Skill von der Skills-Seite; er vermittelt dieselben Endpunkte und dieselbe Submit-Poll-Download-Schleife. Siehe Agent Skills vs MCP Server für Präsentationen für Vor- und Nachteile und Wie man Claude MCP für Präsentationen nutzt für die Schritt-für-Schritt-Anleitung.

Wie ein Beratungsdeck in Profiqualität aussieht
Die 2Slides Gallery hostet Referenzdecks wie BCGs „AI at Work 2025“, das mit einer einzeiligen These beginnt und mit Methodik und Quellen endet – dieselbe Struktur wie das 12-Folien-Briefing oben. Diese Gallery-Decks sind reale Referenzen auf 2Slides, keine API-Ausgabe. Nutzen Sie sie als Design-Inspiration oder übergeben Sie eine Seitenbild-URL als referenceImageUrl an create-like-this, damit der bildgestaltete Pfad Typ, Farbe und Layout vom Referenzbild ableitet.


Für einen breiteren Überblick, welche Tools für Beratungsarbeit passen, siehe Beste KI-Präsentationstools für Berater. Gamma’s API-Seite dokumentiert ein vergleichbares n8n + Tavily + OpenAI Rezept; deren API-Schlüssel erfordern einen Pro-Plan, während 2Slides-Schlüssel auf jedem Konto funktionieren. 2Slides ist unser Produkt, bewerten Sie den Vergleich entsprechend.
Was es kostet
Credits sind Pay-as-you-go: 5 $ kaufen 2.000 Credits (0,0025 $ pro Credit) und 80 $ kaufen 40.000 (0,002 $ pro Credit). Such-API- und LLM-Gebühren werden von deren Anbietern berechnet und sind hier nicht enthalten.
| Volumen | Fast PPT generate (12 Folien = 120 Credits) | Bildgestaltete create-pdf-slides (12 Folien bei 2K = 1.210 Credits) |
|---|---|---|
| 20 Decks / Monat | 2.400 Credits, ca. 6,00 $ (9,50 $ Paket deckt es) | 24.200 Credits, ca. 48 bis 61 $ je nach Paket |
| 500 Decks / Monat | 60.000 Credits, ca. 120 $ (zwei 80-$-Pakete) | 605.000 Credits, ca. 1.210 $ bei 0,002 $ pro Credit |
Neue Accounts erhalten 500 Gratis-Credits, genug für 4 vollständige Fast-PPT-Testdecks vor dem Kauf.
Fast PPT oder bildgestaltete Folien für diesen Anwendungsfall?
- Fast PPT
generatepasst, wenn der Berater das Deck in PowerPoint nachbearbeiten will, das Volumen hoch ist (500 Decks/Monat kosten ca. 120 $) und ein Template-Look akzeptabel ist. Es liefert in ca. 30 Sekunden. create-pdf-slidespasst, wenn das Deck als schreibgeschütztes PDF an den Kunden geht und ein gestalteter Look mit einer Idee pro Folie gewünscht ist. Die Kosten sind etwa zehnmal höher pro Deck.create-like-thispasst, wenn die Firma einen Hausstil hat: Übergeben Sie ein gebrandetes Folienbild alsreferenceImageUrlund jede Ausführung erbt dessen Stil.- Erzählung und MP4 sind nur bei bildgestalteten Jobs verfügbar, via
generate-narrationzu 210 Credits pro Seite. Nützlich für interne Research-Briefing-Videos, nicht für den Fast-PPT-Pfad.
Häufige Stolperfallen
- Rate-Limit bei 6 Anfragen pro Minute. Planen Sie Batch-Läufe mit einer Einreichung alle 10 bis 12 Sekunden; das Abfragen nutzt das separate 10 req/min
jobs-Kontingent. - API-Schlüssel im n8n-Node-Body oder Browser-Script. Bewahren Sie ihn in n8n-Credentials oder serverseitigen Umgebungsvariablen auf, niemals im Client-Code.
- Versuch, ein Fast-PPT-Deck zu vertonen.
generate-narrationakzeptiert nur Jobs voncreate-pdf-slidesodercreate-like-this. Fast-PPT-Jobs werden abgelehnt. page: 0bedeutet Auto-Erkennung, nicht null Seiten. Beicreate-pdf-slidessetzen Siepage: 12, wenn das Briefing 12 Folien hat, oderpage: 0, damit der Planer entscheidet.- Sprachcodes statt Namen.
responseLanguageerwartet"Spanish"oder"German", nicht"es"oder"de". - 20 vollständige Artikel als
userInputsenden. Fassen Sie zuerst zusammen; das Briefing, nicht die Rohquellen, geht an 2Slides.
Häufig gestellte Fragen
Wie viel kostet eine Research-to-Präsentations-Pipeline pro Deck?
Ca. 0,30 $ für den 2Slides-Teil eines 12-Folien-Fast-PPT-Decks (120 Credits zu 0,0025 $ pro Credit) oder ca. 3,03 $ für ein 12-Folien-bildgestaltetes Deck bei 2K (1.210 Credits). Hinzu kommen ein Such-API-Aufruf und eine LLM-Komplettierung, die von deren Anbietern berechnet werden. Bei 500 Decks pro Monat kostet der Fast-PPT-Pfad ca. 120 $ in Credits.
Kann die Pipeline ein Deck in einer anderen Sprache ausgeben?
Ja. Übergeben Sie responseLanguage als Sprachname wie "Spanish" oder "Japanese"; über 20 Sprachen werden unterstützt. Die sauberste Einrichtung schreibt das Briefing auf Englisch und lässt 2Slides bei der Generierung übersetzen, sodass Zitate und Quellen-URLs in allen Sprachversionen identisch bleiben.
Brauche ich n8n oder kann ich das ohne Workflow-Tool ausführen?
n8n ist nicht erforderlich. Das Python-Skript in Schritt 6 erledigt dieselbe Arbeit per Cron, und eine Agenten-Session mit 2Slides MCP oder Skill macht es interaktiv. n8n lohnt sich, wenn Nicht-Techniker Läufe per Formular auslösen sollen und Sie Google Drive und Slack ohne eigene Integration nutzen wollen.
Wie verhindere ich, dass das LLM Statistiken auf Folien erfindet?
Beschränken Sie das Prompt und validieren Sie die Ausgabe. Fordern Sie, dass jede Zahl mit einer [n]-Quellen-ID endet, sagen Sie dem Modell, „no reliable figure found“ statt zu schätzen, und lehnen Sie jedes Briefing ab, dessen IDs die Quellenanzahl überschreiten. Speichern Sie die Quellen-Datei neben dem Deck, damit ein Prüfer jede Folie mit der Originalquelle abgleichen kann.
Kann ich den Folienstil meiner Firma statt einer Vorlage verwenden?
Ja, mit create-like-this. Übergeben Sie eine öffentliche URL einer Ihrer gebrandeten Folien als referenceImageUrl und die bildgestaltete Pipeline leitet Farben, Schrift und Layout davon ab. Die Kosten entsprechen create-pdf-slides: 10 Planungscodes plus 100 Credits pro Seite bei 2K. Für eine editierbare PPTX wählen Sie stattdessen das nächstliegende Theme aus themes/search.
Nächste Schritte
- Holen Sie sich einen API-Schlüssel unter 2slides.com/api. Neue Accounts starten mit 500 Gratis-Credits, genug für 4 Testdecks mit 12 Folien.
- Sehen Sie, wie andere Teams dieselben Endpunkte nutzen im Hub-Post AI presentation API use cases by team.
- Wenn Ihr Team mit Claude Code oder Codex arbeitet, installieren Sie den Agent Skill und führen Sie die Research-to-Präsentations-Pipeline interaktiv aus, bevor Sie sie planen; n8n + 2Slides beschreibt die Workflow-Tool-Version.
About 2Slides
Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.
Try For Free