Felo API PlatformFelo API Platform

Ofis

Bir araştırma sayfasını sunuma dönüştürün

Sayfayı çıkarın, LiveDoc bağlamı olarak kaydedin, PPT Task API’nin desteyi kurmasına izin verin ve bitmiş bağlantı gelene kadar sorun.

Süre15 dakikaSeviyeTemelGüncellendi2026-10-29
Kimler içinDanışmanlarSatış ve pazarlamaDahili araçlar

İstemi kopyalayın

Köşeli parantezli alanları değiştirip Claude Code, Codex veya terminal erişimi olan bir AI’ya yapıştırın. Felo becerisini kurar, kredi harcamadan önce sorar ve iş akışını çalıştırır.

Bu kaynağı bir slayt destesine dönüştür: [kamusal URL veya PDF yolu].

Hedef kitle: [kim bakacak]. Slaytlar: [6–10]. Dil: [dil]. Tema: [tema adı veya “default”].

Kamusal sayfada (veya yüklenen dosyada) Web Fetch kullan, kaynağı LiveDoc bağlamı olarak kaydet, bir PPT görevi oluştur ve deste hazır olana kadar sorgula.

Şunları hazırla:
1. Slayt başına bir satırlık ana hat.
2. Oluşturulan destenin bağlantısı.
3. Bağlam olarak kullanılan LiveDoc bağlantısı.

Kurallar:
- Kaynakta olmayan olgu uydurma. Boşlukları “Kaynakta belirtilmemiş” olarak yaz.
- PPT görevleri kredi harcar; göndermeden önce sor.
- Kaynak URL’sini, ana hattı ve deste bağlantısını birlikte tut.
- Desteyi workspace dışında yayımlama veya paylaşma.
- Ana hattı ./deck-outline.md dosyasına yaz ve sohbette özetle.

Kopya kurulum adımlarını ve güvenlik kurallarını da içerir.

Ne elde edersiniz

Bir çalıştırmanın örnek çıktısı. Canlı üretim değil.

Örnek sunum taslağı (alıntı)

Kaynak -> sunum taslağı

  1. Bu rapor neden önemli
  2. Bu çeyrekte ne değişti
  3. Üç müşteri segmenti
  4. Kanıtın zayıf olduğu yer
  5. Sonra ne test edilmeli

Sunum: https://felo.ai/slides/... Bağlam: https://felo.ai/livedoc/...

Tam çağrılar

Geliştiriciler için: aynı iş akışı kod olarak, yürütme sırasıyla.

Gerçek API çağrılarını göster
  1. Kaynak sayfayı çıkarın

    Web Fetch ile kamuya açık sayfayı Markdown’a çevirin, başlık ve gövdeyi koruyun.

    deck.ts
    const BASE = "https://openapi.felo.ai";
    const headers = {
      Authorization: `Bearer ${process.env.FELO_API_KEY}`,
      "Content-Type": "application/json",
    };
    
    async function felo<T>(path: string, body?: unknown): Promise<T> {
      const res = await fetch(`${BASE}${path}`, {
        method: body ? "POST" : "GET",
        headers,
        body: body ? JSON.stringify(body) : undefined,
      });
      if (!res.ok) throw new Error(`${res.status}: ${await res.text()}`);
      return res.json() as Promise<T>;
    }
    
    type ExtractData = { data: { content: string } };
    
    const page = await felo<ExtractData>("/v2/web/extract", {
      url: "https://example.com/research",
      output_format: "markdown",
      with_readability: true,
    });
  2. LiveDoc bağlamı olarak kaydedin

    LiveDoc oluşturun, kaynağı belge olarak ekleyin ve short_id alın.

    deck.ts
    type LiveDocData = { data: { short_id: string } };
    type ResourceData = { data: { id: string } };
    
    const doc = await felo<LiveDocData>("/v2/livedocs", {
      name: "Quarterly research deck",
      description: "Source material for the next deck",
    });
    
    const resource = await felo<ResourceData>(
      `/v2/livedocs/${doc.data.short_id}/resources/doc`,
      {
        title: "Source page",
        content: page.data.content,
      },
    );
  3. Slayt görevini gönderin

    İçerik ve LiveDoc short_id ile PPT Task API’yi çağırıp task_id alın.

    deck.ts
    type PptTaskData = {
      data: { task_id: string; livedoc_short_id: string };
    };
    
    const task = await felo<PptTaskData>("/v2/ppts", {
      query: "Six slides for a product review: findings, evidence, next steps",
      livedoc_short_id: doc.data.short_id,
    });
    
    console.log(task.data.task_id);

    Örnek çıktı

    {
      "data": {
        "livedoc_short_id": "PvyKouzJirXjFdst4uKRK3",
        "ppt_business_id": "BfLPuQKmChk9SPmyQawxgr",
        "task_id": "019cad6d-e874-55ef-d577-686344b5a7e9"
      }
    }
  4. Bitene kadar sorun

    Durumu tamamlanana kadar kontrol edin ve slayt bağlantısını okuyun.

    deck.ts
    type TaskState = {
      data: { task_status: string; ppt_url?: string; live_doc_url?: string };
    };
    
    async function waitForDeck(taskId: string) {
      for (let attempt = 0; attempt < 40; attempt++) {
        const state = await felo<TaskState>(`/v2/tasks/${taskId}/historical`);
        if (state.data.task_status === "COMPLETED") return state.data;
        if (["FAILED", "EXPIRED", "CANCELED"].includes(state.data.task_status)) {
          throw new Error(`Deck task ${state.data.task_status}`);
        }
        await new Promise((resolve) => setTimeout(resolve, 3000));
      }
      throw new Error("Deck task timed out");
    }
    
    const result = await waitForDeck(task.data.task_id);
    console.log(result.ppt_url);

    Örnek çıktı

    {
      "task_status": "COMPLETED",
      "ppt_url": "https://felo.ai/slides/oM8A9iJHg8dT4ZKgHThQTx",
      "live_doc_url": "https://felo.ai/livedoc/oM8A9iJHg8dT4ZKgHThQTx"
    }

Neler dahil

  • Kaynak sayfanın temiz Markdown çıkarımı
  • Yeniden kullanılabilir bağlam olarak LiveDoc
  • Asenkron PPT görevi ve bitmiş bağlantı
  • Paylaşmadan önce incelemek için slayt iskeleti

Neleri yapmaz

  • Yalnızca kamuya açık sayfa veya yüklenen dosya; oturumlu sayfalar başarısız olabilir
  • Slaytlar kaynağı izler ve tüm marka sistemini kapsamaz
  • Çalıştırma başına bir deste; birden çok deste döngü gerektirir
  • Mevcut desteyi düzenlemez ve görsel eşleşme garantisi vermez
  • Desteyi yayımlamaz veya paylaşmaz

Sorular

URL yerine PDF kullanılabilir mi?

Evet. PPT görevini dosyayla multipart form data olarak gönderin; platform onu LiveDoc kaynağı olarak saklar ve desteyi oluşturur.

Tema seçilebilir mi?

Evet. Temaları listeleyin ve görev oluştururken tema id’sini verin.

Bir deste ne kadar sürer?

Asenkron bir görevdir. Bitene kadar geçmişi sorgulayın; uzun desteler daha uzun sürer.

Mevcut destemi düzenler mi?

Hayır. Kaynaktan yeni deste oluşturur; mevcut desteyi düzenlemek başka bir iş akışı.

Bir destenin maliyeti nedir?

Slayt üretimi kullanıma göre faturalanır; güncel tarifeler fiyat sayfasında ve istem harcamadan önce onay ister.

Kaynak yeniden kullanılabilir mi?

Evet. LiveDoc kaynağı tutar; sonraki desteler veya mindmap’ler short_id’sini kullanabilir.

İlgili iş akışları

Kendinize uyarlayın

Aynı tarif, gerçekte nasıl teslim ettiğinize uyarlanmış.

PDF kaynağı

Multipart ile PDF yükleyin; platform önce onu LiveDoc kaynağı olarak saklar.

Tema ayarlayın

Mevcut temaları listeleyin ve görev oluştururken id verin.

Sonraki destede kullanın

Aynı LiveDoc short_id ile yeni PPT görevi oluşturun.

Bu tarifin arkasındaki referans sayfaları ve sonraki adımlar.