Bureau
Transformez une page de recherche en présentation
Extrayez la page, enregistrez-la comme contexte LiveDoc, laissez l’API PPT Task construire le deck et interrogez jusqu’au lien final.
Copier le prompt
Remplacez les champs entre crochets, puis collez dans Claude Code, Codex ou toute IA avec accès au terminal. Elle installe le skill Felo, demande avant de dépenser des crédits et exécute le workflow.
Transforme cette source en deck de slides : [URL publique ou chemin PDF]. Public : [qui regarde]. Nombre de slides : [6–10]. Langue : [langue]. Thème : [nom du thème ou « default »]. Utilise Web Fetch sur la page publique (ou le fichier téléversé), enregistre la source comme contexte LiveDoc, crée une tâche PPT et interroge jusqu’à ce que le deck soit prêt. Produis : 1. Un plan d’une ligne par slide. 2. Le lien du deck généré. 3. Le lien du LiveDoc utilisé comme contexte. Règles : - N’invente aucun fait absent de la source. Les manques s’écrivent « Non mentionné dans la source ». - Les tâches PPT consomment des crédits ; demande avant de soumettre. - Conserve ensemble l’URL source, le plan et le lien du deck. - Ne publie ni ne partage le deck en dehors de l’espace de travail. - Écris le plan dans ./deck-outline.md et résume-le dans le chat.
La copie inclut aussi les étapes d'installation et les règles de sécurité.
Ce que vous obtenez
Exemple de sortie d'une exécution. Pas de génération en direct.
Source -> plan de deck
- Pourquoi ce rapport compte
- Ce qui a changé ce trimestre
- Les trois segments clients
- Là où les preuves sont minces
- Ce qu’il faut tester ensuite
Deck : https://felo.ai/slides/... Contexte : https://felo.ai/livedoc/...
Les appels exacts
Pour les développeurs : le même workflow en code, dans l'ordre d'exécution.
Afficher les appels API
Extrayez la page source
Utilisez Web Fetch pour convertir la page publique en Markdown en gardant titre et corps.
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, });Enregistrez comme contexte LiveDoc
Créez le LiveDoc, ajoutez la source comme document et récupérez le 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, }, );Envoyez la tâche de slides
Appelez l’API PPT Task avec le contenu et le LiveDoc short_id pour obtenir le 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);Exemple de sortie
{ "data": { "livedoc_short_id": "PvyKouzJirXjFdst4uKRK3", "ppt_business_id": "BfLPuQKmChk9SPmyQawxgr", "task_id": "019cad6d-e874-55ef-d577-686344b5a7e9" } }Interrogez jusqu’à la fin
Vérifiez le statut jusqu’à la fin et lisez le lien des slides.
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);Exemple de sortie
{ "task_status": "COMPLETED", "ppt_url": "https://felo.ai/slides/oM8A9iJHg8dT4ZKgHThQTx", "live_doc_url": "https://felo.ai/livedoc/oM8A9iJHg8dT4ZKgHThQTx" }
Ce qui est inclus
- Extraction propre de la page source en Markdown
- LiveDoc comme contexte réutilisable
- Tâche PPT asynchrone et lien final
- Plan de slides à relire avant partage
Ce qu'elle ne fait pas
- Source publique ou fichier envoyé uniquement ; les pages derrière login peuvent échouer
- Les slides suivent la source et ne couvrent pas tout le système de marque
- Un deck par exécution ; plusieurs nécessitent une boucle
- N’édite pas un deck existant et ne garantit pas la correspondance visuelle
- Ne publie ni ne partage le deck
Questions
Puis-je utiliser un PDF au lieu d’une URL ?
Oui. Envoyez la tâche PPT en multipart form data avec le fichier ; la plateforme le stocke comme ressource LiveDoc et crée le deck.
Puis-je choisir un thème ?
Oui. Listez les thèmes puis passez l’id du thème à la création de la tâche.
Combien de temps pour un deck ?
C’est une tâche asynchrone. Interrogez l’historique jusqu’à la fin ; les longs decks prennent plus de temps.
Édite-t-il mon deck existant ?
Non. Il crée un nouveau deck depuis la source ; éditer un deck existant est un autre workflow.
Combien coûte un deck ?
La génération de slides est facturée à l’usage ; les tarifs actuels sont sur la page des prix, et le prompt demande votre accord avant dépense.
Puis-je réutiliser la source ?
Oui. Le LiveDoc garde la source ; les decks ou mindmaps suivants peuvent réutiliser son short_id.
Workflows liés
Transformez une question en brief de recherche sourcé
Interrogez le web, récupérez les pages derrière la réponse en Markdown, ajoutez ce que disent les praticiens sur X, puis conservez les preuves dans un LiveDoc que vous pourrez interroger plus tard.
Ouvrir le workflowContenuPubliez un résumé quotidien d’actualité IA que votre équipe lit vraiment
Obtenez une synthèse sourcée, ajoutez ce que publient les praticiens sur X, récupérez une transcription vidéo, composez l’édition en Markdown et archivez-la dans un LiveDoc.
Ouvrir le workflowSupportRépondez aux questions support depuis votre propre documentation
Créez un LiveDoc, chargez le centre d’aide et le runbook interne, récupérez les passages qui répondent au ticket et laissez le modèle répondre uniquement à partir de ces preuves.
Ouvrir le workflowAdaptez-la
La même recette, adaptée à votre façon de livrer.
Source PDF
Envoyez un PDF en multipart ; la plateforme le stocke d’abord comme ressource LiveDoc.
Définir le thème
Listez les thèmes disponibles et passez l’id à la création de la tâche.
Réutiliser pour le prochain deck
Créez une nouvelle tâche PPT avec le même LiveDoc short_id.
Aller plus loin
Les pages de référence derrière cette recette et la suite.