2Slides Logo
Pipeline od badań do prezentacji: Tavily, LLM, Slides API (2026)
2Slides Team
15 min read

Pipeline od badań do prezentacji: Tavily, LLM, Slides API (2026)

Pipeline od badań do prezentacji przyjmuje temat i zwraca gotową prezentację z podanymi źródłami. API wyszukiwania (Tavily lub Exa) zbiera 10 do 20 źródeł, LLM tworzy 12-slajdowy brief z ponumerowanymi cytatami, a API 2Slides zamienia brief w prezentację: POST /api/v1/slides/generate dla edytowalnego PPTX po 10 kredytów za stronę (120 kredytów, około 0,30 USD za 12 slajdów) lub create-pdf-slides dla slajdów zaprojektowanych jako obrazy po 10 + 100 kredytów za stronę. To rozwiązanie dla zespołów konsultingowych, analityków i działów badawczych, które co tydzień dostarczają tę samą prezentację.

Kluczowe wnioski

  • 12-slajdowa prezentacja Fast PPT kosztuje 120 kredytów, około 0,30 USD przy pakiecie za 5 USD; wersja obrazkowa kosztuje 1 210 kredytów, około 3,03 USD.
  • Pipeline składa się z czterech wywołań: jedno wywołanie API wyszukiwania, jedno wywołanie LLM, GET /api/v1/themes/search, a następnie POST /api/v1/slides/generate.
  • Każda odpowiedź 2Slides jest opakowana jako { success, data: { jobId, status, downloadUrl } }, więc jeden parser obsługuje zarówno przesłanie, jak i odpytywanie.
  • Limit zapytań to 6 żądań na minutę na klucz, a prezentacja Fast PPT zwraca wynik w około 30 sekund w trybie synchronicznym.
  • Cytaty zachowują się tylko wtedy, gdy prompt LLM wymusza listę źródeł z numeracją i zabrania wymyślania liczb; generator prezentacji formatuje treść, nie weryfikuje faktów.

Dla kogo to jest

Prowadzisz praktykę konsultingową, dział badawczy lub operacje contentowe, a ktoś co kilka dni prosi o „szybką prezentację na temat europejskiego rynku recyklingu baterii”. Badania zajmują godzinę, prezentacja dwie kolejne, a to te same 12 slajdów za każdym razem: podsumowanie, wielkość rynku, gracze, trendy, ryzyka, rekomendacje, źródła. Jeśli masz już instancję n8n lub harmonogram w Pythonie, ten przepis nie wymaga nowej infrastruktury.

Nie używaj tego przepisu do finalnych materiałów dla klienta, które wymagają indywidualnej analizy. Tworzy on źródłowy pierwszy szkic w kilka minut; człowiek nadal czyta źródła i decyduje, co powiedzieć.

Przebieg pracy w skrócie

KrokNarzędzieCo się dziejePunkt końcowy 2Slides / kredyty
1. WyzwalaczHarmonogram n8n lub Formularz, cron lub argument CLIDo pipeline trafia ciąg znaków z tematembrak
2. WyszukiwanieTavily /search lub Exa /search10 do 20 URL-i z tytułami i fragmentami tekstubrak
3. BriefOpenAI lub Claude12-slajdowy szkic, każda statystyka oznaczona [n], plus lista źródełbrak
4. MotywGET /api/v1/themes/search?query=consultingZwraca kandydatów themeIddarmowe, 6 zapytań/min
5. PrezentacjaPOST /api/v1/slides/generate (lub create-pdf-slides)Brief zamienia się w PPTX (lub PDF + obrazy stron)10 kredytów/strona (lub 10 + 100/strona)
6. OdpytywanieGET /api/v1/jobs/{jobId} co 5-10 sCzekaj na status: "success"darmowe, 10 zapytań/min
7. DostarczenieUpload do Google Drive, wiadomość na SlackZespół otrzymuje link i plik źródełbrak

Krok 1: Zbierz 10 do 20 źródeł za pomocą API badawczego

Prezentacja jest tak dobra, jak źródła, więc tu poświęć najwięcej uwagi. Tavily zwraca wyniki z wyodrębnioną treścią strony, co jest potrzebne LLM do cytowania, a nie tylko przypominania. Exa robi to samo za pomocą wyszukiwania semantycznego. Poproś o 10 do 20 wyników i ogranicz do ostatnich 12 miesięcy, gdy temat jest czasowo wrażliwy.

Zapisz każdy wynik jako { id, url, title, published, snippet } i ponumeruj id od 1. Te id stają się znacznikami cytatów na slajdach, więc zachowaj tę samą tablicę przez cały przebieg.

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 }'

Krok 2: Napisz 12-slajdowy brief z cytatami (OpenAI lub Claude)

Prompt wykonuje trzy zadania: ustala strukturę slajdów, wymusza, by każda liczba miała id cytatu, i zabrania liczb nieobecnych w źródłach. Poproś o zwykły tekst, nie JSON, ponieważ tekst trafia bezpośrednio do userInput wywołania 2Slides.

Struktura, która działa dla większości briefów konsultingowych, to 12 slajdów: 1 tytuł, 2 streszczenie wykonawcze, 3 wielkość rynku, 4-5 kluczowi gracze, 6-7 trendy, 8-9 ryzyka, 10-11 rekomendacje, 12 źródła. Zachowaj 3 do 5 punktów na slajd; szablony Fast PPT są zaprojektowane pod taką gęstość.

Jesteś analitykiem badawczym. Używając WYŁĄCZNIE ponumerowanych źródeł poniżej, napisz 12-slajdowy brief na temat: {topic}. Slajdy: 1 Tytuł, 2 Streszczenie wykonawcze, 3 Wielkość rynku, 4-5 Kluczowi gracze, 6-7 Trendy, 8-9 Ryzyka, 10-11 Rekomendacje, 12 Źródła. Zasady: - Każda liczba, procent lub data musi kończyć się id źródła w nawiasach, np. "EUR 4.2B do 2030 [3]". - Jeśli źródła nie zawierają danych liczbowych, napisz "brak wiarygodnej liczby" zamiast szacować. - Slajd 12 wymienia każde cytowane id jako "[n] Tytuł, Wydawca, URL". - 3 do 5 punktów na slajd, każdy poniżej 20 słów. Zacznij każdy slajd od "Slide N: <nagłówek>". Źródła: {sources}

Krok 3: Wybierz motyw w stylu konsultingowym

Prezentacje Fast PPT są budowane z zaprojektowanych szablonów, a themeId decyduje o wyglądzie. Wyszukaj w bibliotece raz „consulting” lub „corporate”, wybierz jedno lub dwa id i zakoduj je na stałe w pipeline. Wyszukiwanie przy każdym uruchomieniu zużywa limit zapytań.

curl -s "https://2slides.com/api/v1/themes/search?query=consulting&limit=5" \ -H "Authorization: Bearer $SLIDES_API_KEY"

Odpowiedź zawiera listę motywów z themeId, nazwą i podglądem. Aby przeglądać wizualnie, Templates Hub pokazuje te same 1 500+ szablonów.

2Slides Templates Hub do wyboru motywu w stylu konsultingowym
Rysunek 1: Templates Hub, gdzie wybierasz motyw konsultingowy lub korporacyjny i kopiujesz jego themeId do wywołania API.

Krok 4: Wygeneruj prezentację za pomocą API 2Slides

Są dwie ścieżki. Dla edytowalnego PPTX, który konsultant może zmienić w PowerPoint, wywołaj generate. Domyślnie działa synchronicznie, więc 12-slajdowa prezentacja wraca z downloadUrl w jednym wywołaniu w około 30 sekund. Przy większej liczbie tematów przekaż mode: "async" i odpytywaj wynik.

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" }'

Odpowiedź:

{ "success": true, "data": { "jobId": "job_9f3a...", "status": "pending" } }

Dla wersji premium, zaprojektowanej jako obrazy (PDF plus obrazy stron), wywołaj create-pdf-slides z tym samym briefem. Ustaw page: 12, aby dopasować do briefu, lub page: 0, aby pozwolić planerowi wybrać.

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" }'

Obie ścieżki zwracają ten sam format odpowiedzi. Odpytywaj GET https://2slides.com/api/v1/jobs/{jobId} co 5-10 sekund, aż data.status będzie success lub failed, a następnie pobierz data.downloadUrl.

Krok 5: Implementacja A, workflow n8n (prezentacja Tavily n8n)

n8n to najszybszy sposób, by zrobić zaplanowane zadanie prezentacji Tavily n8n, które mogą wywołać osoby niebędące programistami z formularza. Wystarczy siedem standardowych węzłów.

  • Schedule Trigger (tygodniowo) lub Form Trigger z jednym polem „topic”.
  • HTTP Request do Tavily /search z tematem, max_results: 15.
  • Węzeł OpenAI (lub HTTP Request do Claude) z promptem z Kroku 2; przekaż ponumerowane źródła w wiadomości.
  • Węzeł Code, który składa { userInput, themeId, responseLanguage: "English", mode: "async" } z tekstu LLM.
  • HTTP Request do POST https://2slides.com/api/v1/slides/generate z nagłówkiem Authorization: Bearer {{ $env.SLIDES_API_KEY }}. Klucz trzymaj w poświadczeniach n8n, nigdy w ciele węzła.
  • Węzeł Wait (10 sekund), potem HTTP Request do GET /api/v1/jobs/{{ $json.data.jobId }} i IF node: success kontynuuje, pending lub processing wraca do Wait, failed wysyła błąd na Slack.
  • HTTP Request (pobierz data.downloadUrl jako binarny), potem upload do Google Drive i wiadomość na Slack z linkiem i tematem.

Dodaj drugi upload do Google Drive dla sources.json z Kroku 1; recenzent będzie chciał pełne fragmenty, nie tylko slajd Źródła. Poświadczenia i obsługa błędów są opisane w n8n + 2Slides: automatyzacja workflow prezentacji.

Krok 6: Implementacja B, pojedynczy skrypt Python

Dla zespołu, który woli zadanie cron, jeden plik Python robi to samo. Ta wersja używa Tavily i OpenAI; zamień na Exa lub Claude, zmieniając jedną funkcję.

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)

Skrypt zapisuje dwa pliki na każde uruchomienie: PPTX i .sources.json z listą źródeł i tekstem briefu. JSON to ścieżka audytu, gdy partner pyta, skąd pochodzi liczba ze slajdu 3. Przy większych partiach trzymaj zgłoszenia poniżej 6 na minutę.

Higiena cytowania: każda liczba ma swoje źródło

Automatyczne generowanie prezentacji konsultingowej zawodzi w przewidywalny sposób: pewna liczba na slajdzie 3, której nie ma w żadnym źródle. Generator prezentacji tylko formatuje otrzymaną treść, więc kontrola należy do kroku LLM i weryfikacji po nim.

  • Wymuszaj format znacznika. Każda liczba kończy się [n]. Odrzuć brief (i ponownie wywołaj LLM), jeśli regex znajdzie liczbę z "%", "B", "M" lub rokiem bez nawiasowego id w tym samym wierszu.
  • Weryfikuj id względem tablicy źródeł. [7] w briefie przy 6 źródłach oznacza wymyślony cytat. Zakończ błąd.
  • Zachowaj slajd Źródła. Slajd 12 wymienia [n] Tytuł, Wydawca, URL dla każdego cytowanego id. To pierwszy slajd, który czyta recenzent.
  • Przechowuj plik towarzyszący. .sources.json (lub upload do Drive w n8n) zawiera fragmenty, które widział model, więc recenzent może porównać tekst slajdu z oryginałem.
  • Preferuj „brak wiarygodnej liczby”. Konsultanci mogą uzupełnić uczciwą lukę; trudniej wykryć wymyśloną liczbę.

Alternatywa agenta: Claude Code lub Codex z umiejętnością 2Slides lub MCP

Skryptowy pipeline jest dobry dla zaplanowanych, powtarzalnych tematów. Dla jednorazowego, głębokiego badania sesja agenta wykonuje te same kroki interaktywnie. Podłącz hostowany serwer MCP 2Slides do Claude Code jednym poleceniem, potem poproś agenta o zbadanie tematu za pomocą narzędzia wyszukiwania w sieci, napisanie briefu z cytatami, wywołanie themes_search dla motywu konsultingowego i slides_generate z briefem. MCP udostępnia 7 narzędzi, w tym jobs_get do odpytywania, na tym samym kluczu i kredytach co REST API.

claude mcp add --transport http 2slides "https://2slides.com/api/mcp?apikey=YOUR_KEY"

Zakładka MCP Server na stronie API z endpointem Streamable HTTP i poleceniem claude mcp add
Rysunek 2: Zakładka MCP Server na stronie API, z endpointem Streamable HTTP i jednowierszową konfiguracją Claude Code.

W Codex, Cursor lub innym agencie preferującym umiejętności, zainstaluj zamiast tego Agent Skill ze strony umiejętności; uczy tych samych endpointów i tej samej pętli przesłania, odpytywania i pobierania. Zobacz Agent Skills vs MCP servers for presentations dla porównań i How to use Claude MCP to generate presentations dla instrukcji krok po kroku.

Strona Agent Skills z listą Claude Code, OpenAI Codex, Cursor, Google Antigravity, Manus i Openclaw
Rysunek 3: Strona Agent Skills z instrukcjami instalacji dla Claude Code, Codex, Cursor i innych agentów.

Jak wygląda prezentacja na poziomie konsultingowym

Galeria 2Slides hostuje przykładowe prezentacje, takie jak „AI at Work 2025” BCG, która zaczyna się od tezy w jednym zdaniu i kończy metodologią oraz źródłami, w tym samym układzie co 12-slajdowy brief powyżej. Te prezentacje w galerii to rzeczywiste materiały hostowane na 2Slides, nie wynik API. Używaj ich jako inspiracji projektowej lub przekaż URL obrazu slajdu jako referenceImageUrl do create-like-this, aby ścieżka obrazkowa odziedziczyła typ, kolor i układ po referencji.

Prezentacja BCG AI at Work 2025 z galerii 2Slides, wzór struktury w stylu konsultingowym
Rysunek 4: Slajd tytułowy prezentacji BCG AI at Work 2025 w galerii 2Slides.

Prezentacja BCG AI at Work 2025 z galerii 2Slides, wzór struktury w stylu konsultingowym
Rysunek 5: Późniejszy slajd z tej samej prezentacji, pokazujący układ „jedna wiadomość na slajd”, oczekiwany przez odbiorców konsultingowych.

Dla szerszego spojrzenia na narzędzia pasujące do pracy konsultingowej zobacz Najlepsze narzędzia AI do prezentacji dla konsultantów. Strona API Gamma dokumentuje porównywalny przepis n8n + Tavily + OpenAI; ich klucze API wymagają planu Pro, podczas gdy klucze 2Slides działają na każdym koncie. 2Slides to nasz produkt, więc uwzględnij to przy porównaniu.

Koszty

Kredyty są płatne według zużycia: 5 USD kupuje 2 000 kredytów (0,0025 USD za kredyt), a 80 USD kupuje 40 000 (0,002 USD za kredyt). Opłaty za API wyszukiwania i LLM są naliczane przez ich dostawców i nie są uwzględnione poniżej.

WolumenFast PPT generate (12 slajdów = 120 kredytów)Obrazkowe create-pdf-slides (12 slajdów w 2K = 1 210 kredytów)
20 prezentacji / miesiąc2 400 kredytów, około 6,00 USD (pakiet za 9,50 USD wystarcza)24 200 kredytów, około 48 do 61 USD w zależności od pakietu
500 prezentacji / miesiąc60 000 kredytów, około 120 USD (dwa pakiety po 80 USD)605 000 kredytów, około 1 210 USD przy 0,002 USD za kredyt

Nowe konta otrzymują 500 darmowych kredytów, co wystarcza na 4 pełne testowe prezentacje Fast PPT.

Fast PPT czy obrazkowe slajdy do tego zastosowania?

  • Fast PPT generate pasuje, gdy konsultant będzie edytował prezentację w PowerPoint, gdy wolumen jest wysoki (500 prezentacji miesięcznie kosztuje około 120 USD) i gdy akceptowalny jest wygląd szablonu. Zwraca wynik w około 30 sekund.
  • create-pdf-slides pasuje, gdy prezentacja trafia do klienta jako PDF tylko do odczytu i potrzebny jest zaprojektowany wygląd z jedną ideą na slajd. Koszt jest około 10 razy wyższy za prezentację.
  • create-like-this pasuje, gdy firma ma styl firmowy: przekaż jeden obraz slajdu z brandem jako referenceImageUrl, a każda prezentacja odziedziczy jego cechy.
  • Narracja i MP4 są dostępne tylko w zadaniach obrazkowych, przez generate-narration po 210 kredytów za stronę. Przydatne do wewnętrznych briefingów wideo, nie dla ścieżki Fast PPT.

Typowe pułapki

  • Limit zapytań 6 na minutę. Kolejkuj uruchomienia co 10-12 sekund; odpytywanie używa osobnego limitu 10 zapytań/min dla jobs.
  • Klucz API w ciele węzła n8n lub skrypcie przeglądarkowym. Trzymaj go w poświadczeniach n8n lub zmiennej środowiskowej po stronie serwera, nigdy w kodzie klienta.
  • Próba narracji prezentacji Fast PPT. generate-narration akceptuje tylko zadania z create-pdf-slides lub create-like-this. Zadania Fast PPT są odrzucane.
  • page: 0 oznacza auto-wykrywanie, nie zero stron. W create-pdf-slides ustaw page: 12, gdy brief ma 12 slajdów, lub page: 0, by pozwolić planerowi zdecydować.
  • Kody języków zamiast nazw. responseLanguage przyjmuje "Spanish" lub "German", nie "es" czy "de".
  • Wysyłanie 20 pełnych artykułów jako userInput. Najpierw podsumuj; do 2Slides idzie brief, nie surowe źródła.

Najczęściej zadawane pytania

Ile kosztuje pipeline od badań do prezentacji za jedną prezentację?

Około 0,30 USD za część 2Slides 12-slajdowej prezentacji Fast PPT (120 kredytów po 0,0025 USD za kredyt) lub około 3,03 USD za 12-slajdową prezentację obrazkową w 2K (1 210 kredytów). Do tego dochodzi jedno wywołanie API wyszukiwania i jedno wywołanie LLM, rozliczane przez ich dostawców. Przy 500 prezentacjach miesięcznie ścieżka Fast PPT kosztuje około 120 USD w kredytach.

Czy pipeline może wygenerować prezentację w innym języku?

Tak. Przekaż responseLanguage jako nazwę języka, np. "Spanish" lub "Japanese"; obsługiwanych jest ponad 20 języków. Najczystsze rozwiązanie to napisać brief po angielsku i pozwolić 2Slides przetłumaczyć go podczas generowania, dzięki czemu cytaty i URL-e źródeł pozostają identyczne we wszystkich wersjach językowych tej samej prezentacji.

Czy potrzebuję n8n, czy mogę uruchomić to bez narzędzia workflow?

Nie potrzebujesz n8n. Skrypt Python z Kroku 6 robi to samo z poziomu zadania cron, a sesja agenta z MCP 2Slides lub umiejętnością robi to interaktywnie. n8n jest przydatne, gdy osoby niebędące programistami mają wywoływać uruchomienia z formularza i chcesz dostarczać pliki na Google Drive i Slack bez pisania integracji.

Jak powstrzymać LLM przed wymyślaniem statystyk na slajdach?

Ogranicz prompt i zweryfikuj wynik. Wymagaj, by każda liczba kończyła się id źródła [n], nakazuj modelowi pisać „brak wiarygodnej liczby” zamiast szacować i odrzucaj brief, jeśli id przekracza liczbę źródeł. Przechowuj plik źródeł obok prezentacji, aby recenzent mógł sprawdzić każdy slajd względem oryginału.

Czy mogę dopasować styl slajdów mojej firmy zamiast szablonu?

Tak, z create-like-this. Przekaż publiczny URL jednego z istniejących firmowych slajdów jako referenceImageUrl, a pipeline obrazkowy odziedziczy kolory, typografię i układ. Koszt jest taki sam jak create-pdf-slides: 10 kredytów planowania plus 100 kredytów za stronę w 2K. Dla edytowalnego PPTX wybierz najbliższy motyw z themes/search.

Kolejne kroki

  • Uzyskaj klucz API na 2slides.com/api. Nowe konta zaczynają z 500 darmowymi kredytami, co wystarcza na 4 testowe prezentacje po 12 slajdów.
  • Zobacz, jak inne zespoły używają tych samych endpointów w poście hubowym, Przypadki użycia API prezentacji AI według zespołu.
  • Jeśli Twój zespół pracuje w Claude Code lub Codex, zainstaluj Agent Skill i uruchom pipeline od badań do prezentacji interaktywnie przed zaplanowaniem; n8n + 2Slides opisuje wersję z narzędziem workflow.

About 2Slides

Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.

Try For Free