2Slides Logo
Araştırmadan Sunuma Pipeline: Tavily, LLM, Slides API (2026)
2Slides Team
14 min read

Araştırmadan Sunuma Boru Hattı: Tavily, LLM, Slides API (2026)

Bir araştırmadan sunuma boru hattı, bir konuyu alır ve kaynak gösterilmiş bir sunum dosyası çıkarır. Bir arama API'si (Tavily veya Exa) 10 ila 20 kaynak toplar, bir LLM numaralandırılmış atıflarla 12 slaytlık bir özet yazar ve 2Slides API bu özeti bir sunuma dönüştürür: düzenlenebilir PPTX için sayfa başına 10 kredi (12 slayt için 120 kredi, yaklaşık 0,30 $) karşılığında POST /api/v1/slides/generate veya görsel tasarımlı slaytlar için sayfa başına 10 + 100 kredi ile create-pdf-slides. Bu, aynı sunumu haftalık olarak gönderen danışmanlık ekipleri, analistler ve araştırma operasyonları için uygundur.

Önemli noktalar

  • 12 slaytlık Fast PPT sunumu 120 kredi tutar, 5 $'lık paket fiyatıyla yaklaşık 0,30 $; görsel tasarımlı versiyon ise 1.210 kredi, yaklaşık 3,03 $ tutar.
  • Boru hattı dört çağrıdan oluşur: bir arama API çağrısı, bir LLM çağrısı, GET /api/v1/themes/search, ardından POST /api/v1/slides/generate.
  • Her 2Slides yanıtı { success, data: { jobId, status, downloadUrl } } biçiminde paketlenir, böylece tek bir ayrıştırıcı hem gönderme hem de sorgulamayı yönetir.
  • Hız sınırı anahtar başına dakikada 6 istektir ve Fast PPT sunumu senkron modda yaklaşık 30 saniyede döner.
  • Atıflar yalnızca LLM istemi numaralandırılmış kaynak listesi zorunlu kıldığında ve uydurma rakamlar yasaklandığında korunur; sunum oluşturucu içeriği biçimlendirir, doğrulamaz.

Kimler için uygun

Bir danışmanlık pratiği, araştırma masası veya içerik operasyonu yürütüyorsunuz ve birkaç günde bir "Avrupa pil geri dönüşüm pazarı hakkında hızlı bir sunum" isteniyor. Araştırma bir saat sürüyor, sunum iki saat daha, ve her seferinde aynı 12 slayt: özet, pazar büyüklüğü, oyuncular, trendler, riskler, öneriler, kaynaklar. Zaten bir n8n örneğiniz veya Python zamanlayıcınız varsa, bu tarif yeni altyapı gerektirmez.

Bu tarifi, özel analiz gerektiren müşteri nihai teslimatları için kullanmayın. Dakikalar içinde kaynak gösterilmiş ilk taslağı üretir; insan hâlâ kaynakları okur ve ne söyleneceğine karar verir.

İş akışına genel bakış

AdımAraçNe olur2Slides uç noktası / kredi
1. Tetiklemen8n Zamanlayıcı veya Form, cron veya CLI argümanıBir konu dizisi boru hattına gireryok
2. AramaTavily /search veya Exa /searchBaşlıklar ve metin parçacıklarıyla 10-20 URL döneryok
3. ÖzetOpenAI veya ClaudeHer istatistik numaralandırılmış 12 slaytlık taslak ve kaynak listesiyok
4. TemaGET /api/v1/themes/search?query=consultingAday themeId değerleri dönerücretsiz, 6 istek/dak
5. SunumPOST /api/v1/slides/generate (veya create-pdf-slides)Özet PPTX'e (veya PDF + sayfa görsellerine) dönüşür10 kredi/sayfa (veya 10 + 100/sayfa)
6. SorgulamaGET /api/v1/jobs/{jobId} her 5-10 snstatus: "success" beklenirücretsiz, 10 istek/dak
7. TeslimGoogle Drive yüklemesi, Slack mesajıEkip link ve kaynak dosyasını alıryok

Adım 1: Araştırma API'si ile 10 ila 20 kaynak topla

Sunum, kaynaklar kadar iyidir; bu yüzden çabanızı buraya harcayın. Tavily sayfa içeriği çıkarılmış sonuçlar döner, bu da LLM'nin hatırlamak yerine atıf yapması için gereklidir. Exa da anlamsal arama ile aynı işi yapar. 10 ila 20 sonuç isteyin ve konu zaman duyarlıysa son 12 ayla sınırlandırın.

Her sonucu { id, url, title, published, snippet } olarak saklayın ve id'leri 1'den numaralandırın. Bu id'ler slaytlardaki atıf işaretleri olur, bu yüzden tüm işlem boyunca aynı diziyi koruyun.

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

Adım 2: Atıflarla 12 slaytlık özet yaz (OpenAI veya Claude)

İstem üç işi yapar: slayt yapısını sabitler, her sayının bir atıf id'si taşımasını zorunlu kılar ve kaynaklarda olmayan rakamları yasaklar. JSON değil düz metin isteyin, çünkü metin doğrudan 2Slides çağrısının userInput alanına gider.

Çoğu danışmanlık özeti için işe yarayan yapı 12 slayt: 1 başlık, 2 yönetici özeti, 3 pazar büyüklüğü, 4-5 ana oyuncular, 6-7 trendler, 8-9 riskler, 10-11 öneriler, 12 kaynaklar. Her slaytta 3 ila 5 madde tutun; Fast PPT şablonları bu yoğunluk için tasarlanmıştır.

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}

Adım 3: Danışmanlık tarzı bir tema seç

Fast PPT sunumları tasarlanmış şablonlardan oluşturulur ve themeId görünümü belirler. Kütüphanede bir kez "consulting" veya "corporate" arayın, bir veya iki id seçin ve boru hattına sabitleyin. Her çalıştırmada arama yapmak sadece kota harcar.

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

Yanıt her temayı themeId, isim ve önizleme ile listeler. Görsel olarak göz atmak için Templates Hub aynı 1.500+ şablonu gösterir.

2Slides Templates Hub for choosing a consulting-style theme
Şekil 1: Templates Hub, burada bir danışmanlık veya kurumsal tema seçip API çağrısı için themeId'sini kopyalarsınız.

Adım 4: 2Slides API ile sunumu oluştur

İki yol var. Düzenlenebilir PPTX için, danışmanın PowerPoint'te yeniden stil verebileceği generate çağrılır. Senkron mod varsayılandır, böylece 12 slaytlık sunum yaklaşık 30 saniyede tek çağrıda downloadUrl ile döner. Birden fazla konu için toplu çalıştırırken mode: "async" geçin ve sorgulayın.

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

Yanıt:

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

Premium, görsel tasarımlı versiyon (PDF ve sayfa başına görseller) için aynı özetle create-pdf-slides çağrılır. Özetle eşleşmesi için page: 12 ayarlayın veya planlayıcının seçmesi için page: 0 kullanın.

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

Her iki yol da aynı zarfı döner. GET https://2slides.com/api/v1/jobs/{jobId} her 5-10 saniyede sorgulanır, data.status success veya failed olana kadar beklenir, sonra data.downloadUrl alınır.

Adım 5: Uygulama A, n8n iş akışı (Tavily n8n sunumu)

n8n, bu işi formdan tetiklenebilen zamanlanmış bir Tavily n8n sunum işi yapmak için en hızlı yoldur. Yedi standart düğüm yeterlidir.

  • Schedule Trigger (haftalık) veya tek "topic" alanlı Form Trigger.
  • Konu ile Tavily /search için HTTP Request, max_results: 15.
  • Adım 2 istemi ile OpenAI düğümü (veya Claude için HTTP Request); numaralandırılmış kaynakları mesajda geçin.
  • { userInput, themeId, responseLanguage: "English", mode: "async" } oluşturan Code düğümü.
  • POST https://2slides.com/api/v1/slides/generate için HTTP Request, başlıkta Authorization: Bearer {{ $env.SLIDES_API_KEY }}. Anahtarı n8n kimlik bilgilerinde tutun, düğüm gövdesinde asla değil.
  • Wait düğümü (10 saniye), sonra GET /api/v1/jobs/{{ $json.data.jobId }} için HTTP Request ve bir IF düğümü: success devam eder, pending veya processing Wait'e döner, failed hatayı Slack'e gönderir.
  • data.downloadUrl ikili olarak indirip Google Drive yüklemesi ve konu ile Slack mesajı.

Adım 1'den sources.json için ikinci bir Google Drive yüklemesi ekleyin; inceleyen kişi sadece Kaynaklar slaytını değil, tam parçacıkları ister. Kimlik bilgileri ve hata dalları n8n + 2Slides: sunum iş akışlarını otomatikleştirme içinde ele alınmıştır.

Adım 6: Uygulama B, tek Python betiği

Bir ekip cron işi tercih ederse, tek bir Python dosyası aynı işi yapar. Bu sürüm Tavily ve OpenAI kullanır; bir fonksiyonu değiştirerek Exa veya Claude ile değiştirebilirsiniz.

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)

Betik her çalıştırmada iki dosya yazar: PPTX ve kaynak listesi ile özet metni içeren .sources.json. JSON, ortak bir ortağın 3. slayttaki rakamın kaynağını sorduğunda denetim izi olur. Toplu işlemler için dakikada 6'dan az gönderim yapın.

Atıf hijyeni: her rakam kaynağını taşır

Otomatik danışmanlık sunumu üretimi tek bir öngörülebilir şekilde başarısız olur: 3. slaytta hiçbir kaynağın içermediği özgüvenli bir rakam. Sunum oluşturucu aldığı içeriği sadece biçimlendirir, bu yüzden kontroller LLM adımında ve sonrasında yapılmalıdır.

  • İşaretçi formatını zorlayın. Her rakam [n] ile biter. Aynı satırda köşeli parantezli id olmadan "%", "B", "M" veya yıl içeren rakam varsa özeti reddedin ve LLM çağrısını yeniden yapın.
  • Id'leri kaynak dizisi ile doğrulayın. Özet içinde [7] varsa ama sadece 6 kaynak varsa model uydurma referans yapmıştır. Çalıştırmayı başarısız sayın.
  • Kaynaklar slaydını tutun. 12. slayt her atıf id'sini [n] Başlık, Yayıncı, URL olarak listeler. İnceleyen kişi önce bunu okur.
  • Yardımcı dosyayı saklayın. .sources.json (veya n8n'deki Drive yüklemesi) modelin gördüğü parçacıkları tutar, böylece inceleyen slayt metnini orijinal pasajla karşılaştırabilir.
  • "Güvenilir rakam bulunamadı" tercih edin. Danışmanlar dürüst boşluğu doldurabilir; uydurma rakamı kolayca tespit edemezler.

Alternatif ajan: Claude Code veya Codex ile 2Slides becerisi veya MCP

Betik boru hattı planlanmış, tekrarlanabilir konular için uygundur. Tek seferlik derinlemesine inceleme için ajan oturumu aynı adımları etkileşimli yapar. Barındırılan 2Slides MCP sunucusunu tek komutla Claude Code'a bağlayın, sonra ajanı web arama aracıyla konuyu araştırmaya, atıflı özeti yazmaya, themes_search ile danışmanlık teması seçmeye ve slides_generate ile sunum oluşturmaya yönlendirin. MCP aynı anahtar ve kredi ile 7 araç sunar, jobs_get dahil, REST API ile aynı.

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

2Slides MCP Server tab with the Streamable HTTP endpoint and the claude mcp add command
Şekil 2: API sayfasındaki MCP Server sekmesi, Streamable HTTP uç noktası ve tek satırlık Claude Code kurulumu.

Codex, Cursor veya becerileri tercih eden başka bir ajan için skills sayfasından Agent Skill'i yükleyin; aynı uç noktaları ve aynı gönderme, sorgulama, indirme döngüsünü öğretir. Karşılaştırmalar için Agent Skills vs MCP servers for presentations ve adım adım kurulum için How to use Claude MCP to generate presentations bakınız.

2Slides Agent Skills page listing Claude Code, OpenAI Codex, Cursor, Google Antigravity, Manus and Openclaw
Şekil 3: Agent Skills sayfası, Claude Code, Codex, Cursor ve diğer ajanlar için kurulum talimatları.

Danışmanlık kalitesinde bir sunum nasıl görünür

2Slides Galerisi, BCG'nin "AI at Work 2025" gibi referans sunumları barındırır; tek satırlık tezle açılır ve metodoloji ile kaynaklarla kapanır, yukarıdaki 12 slaytlık özetle aynı yapıda. Bu galeri sunumları gerçek dünya referanslarıdır, API çıktısı değildir. Tasarım ilhamı olarak kullanın veya görsel tasarımlı yolda referans olarak referenceImageUrl ile bir sayfa görseli verin, böylece tür, renk ve düzen referanstan türetilir.

BCG AI at Work 2025 reference deck from the 2Slides Gallery, a consulting-style structure reference
Şekil 4: 2Slides Galerisi'ndeki BCG AI at Work 2025 referans sunumunun başlık slaytı.

BCG AI at Work 2025 reference deck from the 2Slides Gallery, a consulting-style structure reference
Şekil 5: Aynı sunumdan sonraki bir slayt, danışmanlık izleyicilerinin beklediği tek mesajlı slayt düzenini gösterir.

Danışmanlık işine hangi araçların uyduğuna dair daha geniş bakış için Best AI presentation tools for consultants bakınız. Gamma'nın API sayfası benzer bir n8n + Tavily + OpenAI tarifini belgelemektedir; onun API anahtarları Pro plan gerektirirken, 2Slides anahtarları her hesapta çalışır. 2Slides bizim ürünümüzdür, bu karşılaştırmayı buna göre değerlendirin.

Maliyeti nedir

Krediler kullandıkça öde modelindedir: 5 $ 2.000 kredi alır (kredi başına 0,0025 $) ve 80 $ 40.000 kredi (kredi başına 0,002 $). Arama API'si ve LLM ücretleri sağlayıcılar tarafından faturalandırılır ve aşağıya dahil değildir.

HacimFast PPT generate (12 slayt = 120 kredi)Görsel tasarımlı create-pdf-slides (12 slayt 2K = 1.210 kredi)
Ayda 20 sunum2.400 kredi, yaklaşık 6,00 $ (9,50 $'lık paket yeterli)24.200 kredi, yaklaşık 48 ila 61 $ paket fiyatına göre
Ayda 500 sunum60.000 kredi, yaklaşık 120 $ (iki 80 $'lık paket)605.000 kredi, yaklaşık 1.210 $ (kredi başına 0,002 $)

Yeni hesaplar 500 ücretsiz kredi alır, bu 4 tam Fast PPT test sunumu demektir.

Bu kullanım için Fast PPT mi yoksa görsel tasarımlı slaytlar mı?

  • Fast PPT generate uygundur: danışman PowerPoint'te düzenleyecekse, hacim yüksekse (ayda 500 sunum yaklaşık 120 $ tutar) ve şablon görünümü kabul edilebilirse. Yaklaşık 30 saniyede döner.
  • create-pdf-slides uygundur: sunum müşteriye salt okunur PDF olarak gidiyorsa ve tasarlanmış, slayt başına bir fikir görünümü gerekiyorsa. Maliyet yaklaşık 10 kat daha yüksektir.
  • create-like-this uygundur: firma kendi kurumsal stilini kullanıyorsa; bir markalı slayt görselini referenceImageUrl olarak verin, her çalıştırma ondan renk, tür ve düzen türetir.
  • Anlatım ve MP4 yalnızca görsel tasarımlı işlerde mevcuttur, generate-narration ile sayfa başına 210 kredi. İç araştırma brifingi videosu için faydalı, Fast PPT yolu için değil.

Yaygın tuzaklar

  • Dakikada 6 istek hız sınırı. Toplu çalıştırmaları her 10-12 saniyede bir gönderim olarak sıraya koyun; sorgulama ayrı 10 istek/dak jobs kotasından kullanır.
  • API anahtarı n8n düğüm gövdesinde veya tarayıcı betiğinde. Anahtarı n8n kimlik bilgileri veya sunucu tarafı ortam değişkeninde tutun, istemci tarafı kodda asla değil.
  • Fast PPT sunumunu anlatmaya çalışmak. generate-narration sadece create-pdf-slides veya create-like-this işlerini kabul eder. Fast PPT işleri reddedilir.
  • page: 0 otomatik algılama demektir, sıfır sayfa değil. create-pdf-slides için özet zaten 12 slayt ise page: 12 ayarlayın, yoksa planlayıcıya bırakmak için page: 0 kullanın.
  • Dil kodları yerine isimler. responseLanguage "Spanish" veya "German" alır, "es" veya "de" değil.
  • 20 tam makaleyi userInput olarak göndermek. Önce özetleyin; 2Slides'e ham kaynak değil, özet gider.

Sıkça Sorulan Sorular

Araştırmadan sunuma boru hattı başına maliyet ne kadar?

12 slaytlık Fast PPT sunumu için 2Slides kısmı yaklaşık 0,30 $ (120 kredi, kredi başına 0,0025 $), 12 slaytlık 2K görsel tasarımlı sunum için yaklaşık 3,03 $ (1.210 kredi). Buna bir arama API çağrısı ve bir LLM tamamlaması eklenir, bunlar sağlayıcılar tarafından faturalandırılır. Ayda 500 sunumda Fast PPT yolu kredi olarak yaklaşık 120 $ tutar.

Boru hattı başka bir dilde sunum üretebilir mi?

Evet. responseLanguage olarak "Spanish" veya "Japanese" gibi dil isimleri verin; 20+ dil desteklenir. En temiz kurulum, özeti İngilizce yazar ve 2Slides'in üretim zamanında çeviri yapmasına izin verir, böylece atıflar ve kaynak URL'leri aynı sunumun farklı dil versiyonlarında aynı kalır.

n8n gerekli mi, yoksa iş akışı aracı olmadan çalıştırabilir miyim?

n8n gerekli değil. Adım 6'daki Python betiği aynı işi cron girdisiyle yapar, 2Slides MCP veya beceri ile ajan oturumu etkileşimli yapar. n8n, mühendis olmayanların formdan çalıştırma yapması ve Google Drive ile Slack teslimatı için entegrasyon yazmadan kullanışlıdır.

LLM'nin slaytlarda uydurma istatistik yazmasını nasıl engellerim?

İstemi kısıtlayın ve çıktıyı doğrulayın. Her rakamın [n] atıf id'si ile bitmesini zorunlu kılın, modelden tahmin etmek yerine "no reliable figure found" yazmasını isteyin ve id'ler kaynak sayısını aşarsa özeti reddedin. Kaynak dosyasını sunumun yanında saklayın, böylece inceleyen her slaytı orijinal pasajla karşılaştırabilir.

Firmamın slayt stilini şablon yerine eşleştirebilir miyim?

Evet, create-like-this ile. Mevcut markalı slaytlarınızdan birinin genel URL'sini referenceImageUrl olarak verin, görsel tasarımlı boru hattı renk, tür ve düzeni ondan türetir. Maliyet create-pdf-slides ile aynıdır: planlama için 10 kredi ve sayfa başına 100 kredi (2K çözünürlükte). Düzenlenebilir PPTX için themes/search ile en yakın temayı seçin.

Sonraki adımlar

  • 2slides.com/api adresinden API anahtarı alın. Yeni hesaplar 12 slaytlık 4 test sunumu için yeterli 500 ücretsiz kredi ile başlar.
  • Aynı uç noktaları kullanan diğer ekiplerin nasıl çalıştığını hub yazısında görün: AI presentation API use cases by team.
  • Ekibiniz Claude Code veya Codex kullanıyorsa, Agent Skill yükleyin ve planlamadan önce araştırmadan sunuma boru hattını etkileşimli çalıştırın; n8n + 2Slides iş akışı aracı versiyonunu kapsar.

About 2Slides

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

Try For Free