Ufficio
Trasforma una pagina di ricerca in una presentazione
Estrai la pagina, salvala come contesto LiveDoc, lascia che la PPT Task API costruisca il deck e interroga finché il link è pronto.
Copia il prompt
Sostituisci i campi tra parentesi quadre e incolla in Claude Code, Codex o qualsiasi IA con accesso al terminale. Installa lo skill Felo, chiede prima di spendere crediti ed esegue il workflow.
Trasforma questa fonte in un deck di slide: [URL pubblico o percorso PDF]. Pubblico: [chi guarda]. Slide: [6–10]. Lingua: [lingua]. Tema: [nome tema o «default»]. Usa Web Fetch sulla pagina pubblica (o sul file caricato), salva la fonte come contesto LiveDoc, crea un’attività PPT e interroga fino alla prontezza del deck. Produci: 1. Una struttura con una riga per slide. 2. Il link del deck generato. 3. Il link del LiveDoc usato come contesto. Regole: - Non inventare fatti assenti dalla fonte. Le lacune si scrivono «Non menzionato nella fonte». - Le attività PPT consumano crediti; chiedi prima di inviare. - Tieni insieme URL di origine, struttura e link del deck. - Non pubblicare né condividere il deck fuori dal workspace. - Scrivi la struttura in ./deck-outline.md e riassumila in chat.
La copia include anche i passaggi di installazione e le regole di sicurezza.
Cosa ottieni
Output di esempio di un'esecuzione. Non è generazione dal vivo.
Fonte -> schema del deck
- Perché questo report conta
- Cosa è cambiato questo trimestre
- I tre segmenti di clienti
- Dove le prove sono deboli
- Cosa testare dopo
Deck: https://felo.ai/slides/... Contesto: https://felo.ai/livedoc/...
Le chiamate esatte
Per gli sviluppatori: lo stesso workflow come codice, nell'ordine di esecuzione.
Mostra le chiamate API reali
Estrai la pagina fonte
Con Web Fetch converti la pagina pubblica in Markdown mantenendo titolo e corpo.
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, });Salva come contesto LiveDoc
Crea il LiveDoc, aggiungi la fonte come documento e ottieni lo 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, }, );Invia l’attività slide
Chiama la PPT Task API con contenuto e LiveDoc short_id per ottenere il 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);Output di esempio
{ "data": { "livedoc_short_id": "PvyKouzJirXjFdst4uKRK3", "ppt_business_id": "BfLPuQKmChk9SPmyQawxgr", "task_id": "019cad6d-e874-55ef-d577-686344b5a7e9" } }Interroga fino alla fine
Controlla lo stato fino al completamento e leggi il link delle slide.
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);Output di esempio
{ "task_status": "COMPLETED", "ppt_url": "https://felo.ai/slides/oM8A9iJHg8dT4ZKgHThQTx", "live_doc_url": "https://felo.ai/livedoc/oM8A9iJHg8dT4ZKgHThQTx" }
Cosa include
- Estrazione pulita della pagina in Markdown
- LiveDoc come contesto riutilizzabile
- Attività PPT asincrona e link finale
- Scaletta slide da rivedere prima di condividere
Cosa non fa
- Solo pagina pubblica o file caricato; le pagine con login possono fallire
- Le slide seguono la fonte e non coprono tutto il sistema di marca
- Un deck per esecuzione; più deck richiedono un ciclo
- Non modifica un deck esistente e non garantisce corrispondenza visiva
- Non pubblica né condivide il deck
Domande
Posso usare un PDF invece di un URL?
Sì. Invia l’attività PPT come multipart form data con il file; la piattaforma lo salva come risorsa LiveDoc e crea il deck.
Posso scegliere un tema?
Sì. Elenca i temi e passa l’id del tema alla creazione dell’attività.
Quanto tempo serve per un deck?
È un’attività asincrona. Interroga la cronologia fino al completamento; i deck lunghi richiedono più tempo.
Modifica il mio deck esistente?
No. Crea un nuovo deck dalla fonte; modificare un deck esistente è un altro workflow.
Quanto costa un deck?
La generazione slide è a consumo; le tariffe sono nella pagina prezzi e il prompt chiede approvazione prima di spendere.
Posso riusare la fonte?
Sì. Il LiveDoc conserva la fonte; deck o mindmap successivi possono usare il suo short_id.
Workflow correlati
Trasforma una domanda in un brief di ricerca con fonti
Interroga il web, salva come Markdown le pagine dietro la risposta, aggiungi ciò che dicono i professionisti su X e conserva le prove in un LiveDoc che potrai interrogare di nuovo.
Apri il workflowContenutiPubblica un digest quotidiano di notizie IA che il team legga davvero
Ottieni una rassegna con fonti, aggiungi le discussioni dei professionisti su X, prendi una trascrizione video, componi l’edizione in Markdown e archiviala in un LiveDoc.
Apri il workflowSupportoRispondi alle domande di supporto dalla tua documentazione
Crea un LiveDoc, carica help center e runbook interno, recupera i passaggi che rispondono al ticket e lascia che il modello risponda solo da quelle prove.
Apri il workflowAdattala a te
La stessa ricetta, adattata a come lavori davvero.
Fonte PDF
Carica un PDF via multipart; la piattaforma lo salva prima come risorsa LiveDoc.
Imposta il tema
Elenca i temi disponibili e passa l’id alla creazione.
Riusa nel prossimo deck
Crea una nuova attività PPT con lo stesso LiveDoc short_id.
Continua
Le pagine di riferimento dietro questa ricetta e i prossimi passi.