

Pipeline Riset ke Presentasi: Tavily, LLM, Slides API (2026)
Pipeline riset ke presentasi menerima topik dan menghasilkan deck yang bersumber. API pencarian (Tavily atau Exa) mengumpulkan 10 hingga 20 sumber, LLM menulis ringkasan 12 slide dengan kutipan bernomor, dan API 2Slides mengubah ringkasan menjadi deck: POST /api/v1/slides/generate untuk PPTX yang dapat diedit dengan biaya 10 kredit per halaman (120 kredit, sekitar $0,30, untuk 12 slide), atau create-pdf-slides untuk slide bergambar dengan biaya 10 + 100 kredit per halaman. Cocok untuk tim konsultasi, analis, dan operasi riset yang mengirimkan deck yang sama setiap minggu.
Poin penting
- Deck Fast PPT 12 slide berharga 120 kredit, sekitar $0,30 dengan tarif paket $5; versi bergambar berharga 1.210 kredit, sekitar $3,03.
- Pipeline terdiri dari empat panggilan: satu panggilan API pencarian, satu panggilan LLM,
GET /api/v1/themes/search, laluPOST /api/v1/slides/generate. - Setiap respons 2Slides dibungkus sebagai
{ success, data: { jobId, status, downloadUrl } }, sehingga satu parser menangani pengiriman dan polling. - Batas laju adalah 6 permintaan per menit per kunci, dan deck Fast PPT kembali dalam sekitar 30 detik dalam mode sinkron.
- Kutipan bertahan hanya jika prompt LLM memaksa daftar sumber bernomor dan melarang angka yang dibuat-buat; generator deck memformat konten, tidak memeriksa fakta.
Untuk siapa ini
Anda menjalankan praktik konsultasi, meja riset, atau operasi konten, dan seseorang meminta "deck cepat tentang pasar daur ulang baterai Eropa" setiap beberapa hari. Riset memakan waktu satu jam, deck memakan waktu dua jam lagi, dan itu adalah 12 slide yang sama setiap kali: ringkasan, ukuran pasar, pemain, tren, risiko, rekomendasi, sumber. Jika Anda sudah memiliki instance n8n atau penjadwal Python, resep ini tidak memerlukan infrastruktur baru.
Jangan gunakan resep ini untuk deliverable akhir klien yang membutuhkan analisis khusus. Ini menghasilkan draft pertama yang bersumber dalam hitungan menit; manusia masih membaca sumber dan memutuskan apa yang akan dikatakan.
Alur kerja secara singkat
| Langkah | Alat | Apa yang terjadi | Endpoint 2Slides / kredit |
|---|---|---|---|
| 1. Pemicu | Jadwal n8n atau Formulir, cron, atau argumen CLI | String topik masuk ke pipeline | tidak ada |
| 2. Pencarian | Tavily /search atau Exa /search | 10 hingga 20 URL dengan judul dan cuplikan teks | tidak ada |
| 3. Ringkasan | OpenAI atau Claude | Garis besar 12 slide, setiap statistik diberi tag [n], plus daftar sumber | tidak ada |
| 4. Tema | GET /api/v1/themes/search?query=consulting | Mengembalikan nilai themeId kandidat | gratis, 6 req/menit |
| 5. Deck | POST /api/v1/slides/generate (atau create-pdf-slides) | Ringkasan menjadi PPTX (atau PDF + gambar halaman) | 10 kredit/halaman (atau 10 + 100/halaman) |
| 6. Polling | GET /api/v1/jobs/{jobId} setiap 5 sampai 10 detik | Tunggu status: "success" | gratis, 10 req/menit |
| 7. Pengiriman | Unggah Google Drive, pesan Slack | Tim mendapat tautan dan file sumber | tidak ada |
Langkah 1: Kumpulkan 10 hingga 20 sumber dengan API riset
Deck hanya sebagus sumbernya, jadi habiskan usaha Anda di sini. Tavily mengembalikan hasil dengan konten halaman yang diekstrak, yang dibutuhkan LLM untuk dikutip daripada diingat. Exa melakukan hal yang sama dengan pencarian semantik. Minta 10 hingga 20 hasil dan batasi ke 12 bulan terakhir jika topik sensitif waktu.
Simpan setiap hasil sebagai { id, url, title, published, snippet } dan beri nomor id mulai dari 1. Id tersebut menjadi penanda kutipan di slide, jadi pertahankan array yang sama selama seluruh proses.
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
}'Langkah 2: Tulis ringkasan 12 slide dengan kutipan (OpenAI atau Claude)
Prompt melakukan tiga tugas: memperbaiki struktur slide, memaksa setiap angka membawa id kutipan, dan melarang angka yang tidak muncul di sumber. Minta teks biasa, bukan JSON, karena teks langsung masuk ke userInput pada panggilan 2Slides.
Struktur yang cocok untuk sebagian besar ringkasan konsultasi adalah 12 slide: 1 judul, 2 ringkasan eksekutif, 3 ukuran pasar, 4 sampai 5 pemain utama, 6 sampai 7 tren, 8 sampai 9 risiko, 10 sampai 11 rekomendasi, 12 sumber. Pertahankan 3 sampai 5 poin per slide; template Fast PPT dirancang dengan kepadatan tersebut.
Anda adalah analis riset. Menggunakan HANYA sumber bernomor di bawah ini, tulis briefing 12 slide
tentang: {topic}.
Slide: 1 Judul, 2 Ringkasan eksekutif, 3 Ukuran pasar, 4-5 Pemain utama, 6-7 Tren,
8-9 Risiko, 10-11 Rekomendasi, 12 Sumber.
Aturan:
- Setiap angka, persentase atau tanggal harus diakhiri dengan id sumber dalam tanda kurung, misal "EUR 4.2B by 2030 [3]".
- Jika sumber tidak mengandung angka, tulis "tidak ditemukan angka yang dapat dipercaya" daripada memperkirakan.
- Slide 12 mencantumkan setiap id yang dikutip sebagai "[n] Judul, Penerbit, URL".
- 3 sampai 5 poin per slide, masing-masing kurang dari 20 kata. Mulai setiap slide dengan "Slide N: <judul>".
Sumber:
{sources}Langkah 3: Pilih tema gaya konsultasi
Deck Fast PPT dibangun dari template yang didesain, dan themeId menentukan tampilannya. Cari perpustakaan sekali untuk "consulting" atau "corporate", pilih satu atau dua id, dan hard-code di pipeline. Mencari setiap kali menjalankan hanya menghabiskan kuota batas laju.
curl -s "https://2slides.com/api/v1/themes/search?query=consulting&limit=5" \
-H "Authorization: Bearer $SLIDES_API_KEY"Respons mencantumkan setiap tema dengan themeId, nama, dan pratinjau. Untuk menjelajah secara visual, Templates Hub menampilkan lebih dari 1.500 template yang sama.

Langkah 4: Hasilkan deck dengan API 2Slides
Ada dua jalur. Untuk PPTX yang dapat diedit oleh konsultan di PowerPoint, panggil generate. Defaultnya sinkron, jadi deck 12 slide kembali dengan downloadUrl dalam satu panggilan sekitar 30 detik. Saat memproses beberapa topik sekaligus, gunakan mode: "async" dan lakukan polling.
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"
}'Respons:
{ "success": true, "data": { "jobId": "job_9f3a...", "status": "pending" } }Untuk versi premium bergambar (PDF plus gambar per halaman), panggil create-pdf-slides dengan ringkasan yang sama. Set page: 12 untuk menyesuaikan ringkasan, atau page: 0 agar planner memilih.
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"
}'Kedua jalur mengembalikan amplop yang sama. Poll GET https://2slides.com/api/v1/jobs/{jobId} setiap 5 sampai 10 detik sampai data.status success atau failed, lalu ambil data.downloadUrl.
Langkah 5: Implementasi A, alur kerja n8n (presentasi Tavily n8n)
n8n adalah cara tercepat membuat pekerjaan presentasi Tavily n8n terjadwal yang dapat dipicu oleh non-engineer dari formulir. Tujuh node standar sudah cukup.
- Schedule Trigger (mingguan) atau Form Trigger dengan satu bidang "topic".
- HTTP Request ke Tavily
/searchdengan topik,max_results: 15. - Node OpenAI (atau HTTP Request ke Claude) dengan prompt Langkah 2; kirim sumber bernomor dalam pesan.
- Node Code yang menyusun
{ userInput, themeId, responseLanguage: "English", mode: "async" }dari teks LLM. - HTTP Request ke
POST https://2slides.com/api/v1/slides/generatedengan headerAuthorization: Bearer {{ $env.SLIDES_API_KEY }}. Simpan kunci di kredensial n8n, jangan di body node. - Wait node (10 detik), lalu HTTP Request ke
GET /api/v1/jobs/{{ $json.data.jobId }}dan IF node:successlanjut,pendingatauprocessingkembali ke Wait,failedkirim error ke Slack. - HTTP Request (unduh
data.downloadUrlsebagai binary) lalu unggah ke Google Drive dan kirim pesan Slack dengan tautan Drive dan topik.
Tambahkan unggahan Google Drive kedua untuk sources.json dari Langkah 1; peninjau ingin cuplikan lengkap, bukan hanya slide Sumber. Kredensial dan cabang error dibahas di n8n + 2Slides: otomatisasi alur kerja presentasi.
Langkah 6: Implementasi B, skrip Python tunggal
Untuk tim yang lebih suka cron job, satu file Python melakukan pekerjaan yang sama. Versi ini menggunakan Tavily dan OpenAI; ganti dengan Exa atau Claude dengan mengubah satu fungsi.
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)Skrip menulis dua file per run: PPTX dan .sources.json dengan daftar sumber dan teks ringkasan. JSON adalah jejak audit saat partner bertanya dari mana angka slide 3 berasal. Untuk batch, batasi pengiriman di bawah 6 per menit.
Kebersihan kutipan: setiap angka membawa sumbernya
Generasi deck konsultasi otomatis gagal dalam satu cara yang dapat diprediksi: angka yakin di slide 3 yang tidak ada di sumber manapun. Generator deck hanya memformat apa yang diterima, jadi kontrol ada di langkah LLM dan pemeriksaan setelahnya.
- Paksa format penanda. Setiap angka diakhiri dengan
[n]. Tolak ringkasan (dan jalankan ulang panggilan LLM) jika regex menemukan angka diikuti oleh "%", "B", "M" atau tahun tanpa id dalam tanda kurung di baris yang sama. - Validasi id terhadap array sumber.
[7]dalam ringkasan dengan hanya 6 sumber berarti model membuat referensi. Gagal jalankan. - Pertahankan slide Sumber. Slide 12 mencantumkan
[n] Judul, Penerbit, URLuntuk setiap id yang dikutip. Ini slide pertama yang dibaca peninjau. - Simpan file pendamping.
.sources.json(atau unggahan Drive di n8n) menyimpan cuplikan yang dilihat model, sehingga peninjau dapat membandingkan teks slide dengan bagian asli. - Lebih baik "tidak ditemukan angka yang dapat dipercaya". Konsultan dapat mengisi kekosongan jujur; mereka tidak mudah mendeteksi angka palsu.
Alternatif agen: Claude Code atau Codex dengan skill 2Slides atau MCP
Pipeline skrip cocok untuk topik terjadwal dan berulang. Untuk penyelaman satu kali, sesi agen melakukan langkah yang sama secara interaktif. Hubungkan server MCP 2Slides yang dihosting ke Claude Code dengan satu perintah, lalu minta agen meneliti topik dengan alat pencarian webnya, menulis ringkasan yang dikutip, memanggil themes_search untuk tema konsultasi, dan memanggil slides_generate dengan ringkasan. MCP menyediakan 7 alat, termasuk jobs_get untuk polling, dengan kunci dan kredit yang sama seperti REST API.
claude mcp add --transport http 2slides "https://2slides.com/api/mcp?apikey=YOUR_KEY"
Di Codex, Cursor, atau agen lain yang mendukung skill, pasang Agent Skill dari halaman skills sebagai gantinya; skill mengajarkan endpoint yang sama dan loop submit, polling, download yang sama. Lihat Agent Skills vs MCP servers untuk presentasi untuk perbandingan dan Cara menggunakan Claude MCP untuk menghasilkan presentasi untuk panduan langkah demi langkah.

Seperti apa deck kelas konsultasi
Galeri 2Slides menampung deck referensi seperti "AI at Work 2025" dari BCG, yang dibuka dengan tesis satu baris dan ditutup dengan metodologi dan sumber, bentuk yang sama seperti ringkasan 12 slide di atas. Deck galeri ini adalah referensi dunia nyata yang dihosting di 2Slides, bukan output API. Gunakan sebagai inspirasi desain, atau kirim URL gambar halaman sebagai referenceImageUrl ke create-like-this agar jalur bergambar menurunkan tipe, warna, dan tata letak dari referensi.


Untuk gambaran lebih luas alat mana yang cocok untuk kerja konsultasi, lihat Alat presentasi AI terbaik untuk konsultan. Halaman API Gamma mendokumentasikan resep n8n + Tavily + OpenAI yang sebanding; kunci API-nya memerlukan paket Pro, sementara kunci 2Slides bekerja di semua akun. 2Slides adalah produk kami, jadi timbang perbandingan itu sesuai.
Biaya
Kredit adalah bayar sesuai pemakaian: $5 membeli 2.000 kredit ($0,0025 per kredit) dan $80 membeli 40.000 ($0,002 per kredit). Biaya API pencarian dan LLM ditagih oleh penyedia mereka dan tidak termasuk di bawah ini.
| Volume | Fast PPT generate (12 slide = 120 kredit) | Image-designed create-pdf-slides (12 slide di 2K = 1.210 kredit) |
|---|---|---|
| 20 deck / bulan | 2.400 kredit, sekitar $6,00 (paket $9,50 cukup) | 24.200 kredit, sekitar $48 sampai $61 tergantung paket |
| 500 deck / bulan | 60.000 kredit, sekitar $120 (dua paket $80) | 605.000 kredit, sekitar $1.210 dengan $0,002 per kredit |
Akun baru menerima 500 kredit gratis, cukup untuk 4 deck uji Fast PPT penuh sebelum membeli.
Fast PPT atau slide bergambar untuk kasus ini?
- Fast PPT
generatecocok saat konsultan akan mengedit deck di PowerPoint, volume tinggi (500 deck per bulan sekitar $120), dan tampilan template dapat diterima. Kembali dalam sekitar 30 detik. create-pdf-slidescocok saat deck dikirim ke klien sebagai PDF baca-saja dan membutuhkan tampilan bergambar, satu ide per slide. Biaya sekitar 10 kali lipat per deck.create-like-thiscocok saat perusahaan memiliki gaya rumah: kirim satu gambar slide bermerek sebagaireferenceImageUrldan setiap run mewarisi gaya itu.- Narasi dan MP4 hanya tersedia pada pekerjaan bergambar, melalui
generate-narrationdengan biaya 210 kredit per halaman. Berguna untuk video briefing riset internal, bukan jalur Fast PPT.
Kesalahan umum
- Batas laju 6 permintaan per menit. Antre batch dengan satu pengiriman setiap 10 sampai 12 detik; polling menggunakan kuota terpisah 10 req/menit untuk
jobs. - Kunci API di body node n8n atau skrip browser. Simpan di kredensial n8n atau variabel lingkungan sisi server, jangan di kode sisi klien.
- Mencoba membuat narasi untuk deck Fast PPT.
generate-narrationhanya menerima pekerjaan daricreate-pdf-slidesataucreate-like-this. Pekerjaan Fast PPT ditolak. page: 0berarti deteksi otomatis, bukan nol halaman. Padacreate-pdf-slides, setpage: 12saat ringkasan sudah 12 slide, ataupage: 0agar planner memilih.- Kode bahasa bukan nama.
responseLanguagemenerima"Spanish"atau"German", bukan"es"atau"de". - Mengirim 20 artikel penuh sebagai
userInput. Ringkas dulu; ringkasan, bukan sumber mentah, yang dikirim ke 2Slides.
Pertanyaan yang Sering Diajukan
Berapa biaya pipeline riset ke presentasi per deck?
Sekitar $0,30 untuk bagian 2Slides dari deck Fast PPT 12 slide (120 kredit dengan $0,0025 per kredit), atau sekitar $3,03 untuk deck bergambar 12 slide di 2K (1.210 kredit). Tambahkan satu panggilan API pencarian dan satu penyelesaian LLM, yang ditagih oleh penyedia mereka. Pada 500 deck per bulan, jalur Fast PPT menghabiskan sekitar $120 dalam kredit.
Apakah pipeline bisa menghasilkan deck dalam bahasa lain?
Bisa. Kirim responseLanguage sebagai nama bahasa seperti "Spanish" atau "Japanese"; lebih dari 20 bahasa didukung. Setup paling bersih menulis ringkasan dalam bahasa Inggris dan membiarkan 2Slides menerjemahkan saat pembuatan, sehingga kutipan dan URL sumber tetap identik di versi bahasa yang berbeda dari deck yang sama.
Apakah saya perlu n8n, atau bisa menjalankan ini tanpa alat workflow?
Anda tidak perlu n8n. Skrip Python di Langkah 6 melakukan pekerjaan yang sama dari entri cron, dan sesi agen dengan MCP atau skill 2Slides melakukannya secara interaktif. n8n berguna saat non-engineer harus memicu run dari formulir dan Anda ingin pengiriman Google Drive dan Slack tanpa menulis integrasi tersebut.
Bagaimana cara menghentikan LLM membuat statistik palsu di slide?
Batasi prompt dan validasi output. Minta setiap angka diakhiri dengan id sumber [n], suruh model menulis "tidak ditemukan angka yang dapat dipercaya" daripada memperkirakan, dan tolak ringkasan yang id-nya melebihi jumlah sumber. Simpan file sumber di samping deck agar peninjau dapat memeriksa setiap slide dengan bagian aslinya.
Bisakah saya menyesuaikan gaya slide perusahaan saya daripada template?
Bisa, dengan create-like-this. Kirim URL publik salah satu slide bermerek Anda sebagai referenceImageUrl dan pipeline bergambar menurunkan warna, tipe, dan tata letak dari itu. Biaya sama dengan create-pdf-slides: 10 kredit perencanaan plus 100 kredit per halaman di 2K. Untuk PPTX yang dapat diedit, pilih tema terdekat dari themes/search.
Langkah berikutnya
- Dapatkan kunci API di 2slides.com/api. Akun baru mulai dengan 500 kredit gratis, cukup untuk 4 deck uji 12 slide.
- Lihat bagaimana tim lain menggunakan endpoint yang sama di posting hub, Kasus penggunaan API presentasi AI menurut tim.
- Jika tim Anda bekerja di Claude Code atau Codex, pasang Agent Skill dan jalankan pipeline riset ke presentasi secara interaktif sebelum menjadwalkannya; n8n + 2Slides membahas versi alat workflow.
About 2Slides
Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.
Try For Free