Biuro
Zamień stronę badawczą w prezentację
Wyekstrahuj stronę, zapisz jako kontekst LiveDoc, pozwól PPT Task API zbudować deck i pytaj, aż link będzie gotowy.
Skopiuj prompt
Podmień pola w nawiasach kwadratowych i wklej do Claude Code, Codex albo AI z dostępem do terminala. Instaluje skill Felo, pyta przed wydaniem kredytów i uruchamia workflow.
Zamień to źródło w deck slajdów: [publiczny URL lub ścieżka PDF]. Odbiorcy: [kto ogląda]. Slajdy: [6–10]. Język: [język]. Motyw: [nazwa motywu lub „default”]. Użyj Web Fetch na publicznej stronie (lub przesłanym pliku), zapisz źródło jako kontekst LiveDoc, utwórz zadanie PPT i odpytuj aż deck będzie gotowy. Przygotuj: 1. Konspekt z jedną linią na slajd. 2. Link do wygenerowanego decku. 3. Link do LiveDoc użytego jako kontekst. Zasady: - Nie wymyślaj faktów, których nie ma w źródle. Luki zapisuj jako „Nie wspomniano w źródle”. - Zadania PPT zużywają kredyty; pytaj przed wysłaniem. - Trzymaj razem URL źródła, konspekt i link do decku. - Nie publikuj ani nie udostępniaj decku poza workspace. - Zapisz konspekt w ./deck-outline.md i podsumuj go w czacie.
Kopia zawiera też kroki instalacji i zasady bezpieczeństwa.
Co otrzymujesz
Przykładowy wynik jednego uruchomienia. Nie generowanie na żywo.
Źródło -> plan decku
- Dlaczego ten raport jest ważny
- Co zmieniło się w tym kwartale
- Trzy segmenty klientów
- Gdzie dowody są cienkie
- Co testować dalej
Deck: https://felo.ai/slides/... Kontekst: https://felo.ai/livedoc/...
Dokładne wywołania
Dla deweloperów: ten sam workflow jako kod, w kolejności wykonania.
Pokaż rzeczywiste wywołania API
Wyekstrahuj stronę źródłową
Przez Web Fetch zamień publiczną stronę w Markdown, zachowując tytuł i treść.
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, });Zapisz jako kontekst LiveDoc
Utwórz LiveDoc, dodaj źródło jako dokument i weź short_id.
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, }, );Wyślij zadanie slajdów
Wywołaj PPT Task API z treścią i LiveDoc short_id, by dostać task_id.
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);Przykładowy wynik
{ "data": { "livedoc_short_id": "PvyKouzJirXjFdst4uKRK3", "ppt_business_id": "BfLPuQKmChk9SPmyQawxgr", "task_id": "019cad6d-e874-55ef-d577-686344b5a7e9" } }Pytaj do końca
Sprawdzaj status do ukończenia i czytaj link slajdów.
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);Przykładowy wynik
{ "task_status": "COMPLETED", "ppt_url": "https://felo.ai/slides/oM8A9iJHg8dT4ZKgHThQTx", "live_doc_url": "https://felo.ai/livedoc/oM8A9iJHg8dT4ZKgHThQTx" }
Co zawiera
- Czysta ekstrakcja strony źródłowej jako Markdown
- LiveDoc jako kontekst wielokrotnego użytku
- Asynchroniczne zadanie PPT i gotowy link
- Outline slajdów do sprawdzenia przed udostępnieniem
Czego nie robi
- Tylko publiczna strona lub przesłany plik; strony za logowaniem mogą zawieść
- Slajdy podążają za źródłem i nie pokrywają całego systemu marki
- Jeden deck na uruchomienie; kilka decków wymaga pętli
- Nie edytuje istniejącego decku i nie gwarantuje zgodności wizualnej
- Nie publikuje ani nie udostępnia decku
Pytania
Czy można użyć PDF zamiast URL?
Tak. Wyślij zadanie PPT jako multipart form data z plikiem; platforma zapisuje go jako zasób LiveDoc i tworzy deck.
Czy można wybrać motyw?
Tak. Wypisz motywy i podaj id motywu przy tworzeniu zadania.
Ile trwa deck?
To zadanie asynchroniczne. Odpytuj historię do końca; długie decki trwają dłużej.
Czy edytuje mój istniejący deck?
Nie. Tworzy nowy deck ze źródła; edycja istniejącego to inny workflow.
Ile kosztuje jeden deck?
Generowanie slajdów jest rozliczane według użycia; aktualne stawki na stronie cen, a prompt pyta o zgodę przed wydaniem.
Czy można użyć źródła ponownie?
Tak. LiveDoc zachowuje źródło; kolejne decki lub mindmapy mogą użyć jego short_id.
Powiązane workflowy
Zamień jedno pytanie w brief badawczy ze źródłami
Zapytaj web, zapisz strony stojące za odpowiedzią jako Markdown, dodaj to, co mówią praktycy na X, i zachowaj dowody w LiveDoc, który można później przeszukać.
Otwórz workflowTreściPublikuj codzienny digest AI, który zespół naprawdę czyta
Weź podsumowanie ze źródłami, dodaj rozmowy praktyków na X, pobierz transkrypt wideo, złóż wydanie w Markdown i zarchiwizuj w LiveDoc.
Otwórz workflowWsparcieOdpowiadaj na pytania wsparcia z własnej dokumentacji
Utwórz LiveDoc, wczytaj centrum pomocy i wewnętrzny runbook, pobierz fragmenty odpowiadające ticketowi i pozwól modelowi odpowiadać tylko z tych dowodów.
Otwórz workflowDostosuj
Ta sama receptura, dopasowana do tego, jak naprawdę dostarczasz.
Źródło PDF
Prześlij PDF przez multipart; platforma zapisuje go najpierw jako zasób LiveDoc.
Ustaw motyw
Wypisz dostępne motywy i podaj id przy tworzeniu zadania.
Użyj ponownie w kolejnym decku
Utwórz nowe zadanie PPT z tym samym LiveDoc short_id.
Idź dalej
Strony referencyjne za tą recepturą i kolejne kroki.