Escritório
Transforme uma página de pesquisa em apresentação
Extraia a página, salve como contexto do LiveDoc, deixe o PPT Task API montar o deck e consulte até a tarefa retornar o link pronto.
Copiar o prompt
Substitua os campos entre colchetes e cole no Claude Code, Codex ou qualquer IA com acesso ao terminal. Ela instala a skill da Felo, pergunta antes de gastar créditos e executa o fluxo.
Transforme esta fonte em um deck de slides: [URL pública ou caminho PDF]. Público: [quem assiste]. Slides: [6–10]. Idioma: [idioma]. Tema: [nome do tema ou “default”]. Use Web Fetch na página pública (ou no arquivo enviado), salve a fonte como contexto LiveDoc, crie uma tarefa PPT e consulte até o deck ficar pronto. Produza: 1. Um esqueleto com uma linha por slide. 2. O link do deck gerado. 3. O link do LiveDoc usado como contexto. Regras: - Não invente fatos ausentes da fonte. Lacunas são “Não mencionado na fonte”. - Tarefas PPT consomem créditos; pergunte antes de enviar. - Mantenha juntos a URL de origem, o esqueleto e o link do deck. - Não publique nem compartilhe o deck fora do workspace. - Grave o esqueleto em ./deck-outline.md e resuma no chat.
A cópia também inclui os passos de instalação e as regras de segurança.
O que você recebe
Saída de exemplo de uma execução. Não é geração ao vivo.
Fonte -> esboço do deck
- Por que este relatório importa
- O que mudou neste trimestre
- Os três segmentos de cliente
- Onde a evidência é fraca
- O que testar depois
Deck: https://felo.ai/slides/... Contexto: https://felo.ai/livedoc/...
As chamadas exatas
Para desenvolvedores: o mesmo fluxo em código, na ordem de execução.
Mostrar as chamadas reais da API
Extraia a página de origem
Use o Web Fetch para transformar a página pública em Markdown, mantendo título 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, });Salve como contexto no LiveDoc
Crie o LiveDoc, adicione a origem como documento e obtenha o 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, }, );Envie a tarefa de slides
Chame o PPT Task API com o conteúdo e o LiveDoc short_id para receber o 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);Saída de exemplo
{ "data": { "livedoc_short_id": "PvyKouzJirXjFdst4uKRK3", "ppt_business_id": "BfLPuQKmChk9SPmyQawxgr", "task_id": "019cad6d-e874-55ef-d577-686344b5a7e9" } }Consulte até concluir
Verifique o status até concluir e leia o link dos 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);Saída de exemplo
{ "task_status": "COMPLETED", "ppt_url": "https://felo.ai/slides/oM8A9iJHg8dT4ZKgHThQTx", "live_doc_url": "https://felo.ai/livedoc/oM8A9iJHg8dT4ZKgHThQTx" }
O que está incluído
- Extração limpa da página de origem em Markdown
- LiveDoc com contexto reutilizável
- Tarefa PPT assíncrona e link final
- Esboço de slides para revisar antes de compartilhar
O que não faz
- A origem precisa ser página pública ou arquivo enviado; páginas só para login podem falhar
- Os slides seguem a origem e não cobrem todo o sistema de marca
- Um deck por execução; vários exigem loop
- Não edita deck existente nem garante correspondência visual
- Não publica nem compartilha o deck
Perguntas
Posso usar PDF em vez de URL?
Sim. Envie a tarefa PPT como multipart form data com o arquivo; a plataforma salva como recurso do LiveDoc e cria o deck.
Posso escolher um tema?
Sim. Liste os temas e passe o id do tema ao criar a tarefa.
Quanto tempo leva um deck?
É uma tarefa assíncrona. Consulte o histórico até concluir; decks longos demoram mais.
Ele edita meu deck existente?
Não. Ele cria um novo deck a partir da origem; editar um deck existente é outro fluxo.
Quanto custa um deck?
A geração de slides é cobrada por uso; as tarifas atuais estão na página de preços, e o prompt pede aprovação antes de gastar.
Posso reutilizar a origem?
Sim. O LiveDoc guarda a origem; próximos decks ou mindmaps podem usar o short_id.
Fluxos relacionados
Transforme uma pergunta em um briefing de pesquisa com fontes
Pergunte à web, salve as páginas por trás da resposta como Markdown, adicione o que os praticantes dizem no X e mantenha as evidências em um LiveDoc que você pode consultar depois.
Abrir o fluxo de trabalhoConteúdoPublique um resumo diário de IA que a equipe realmente lê
Obtenha um resumo com fontes, adicione o que os praticantes publicam no X, pegue uma transcrição de vídeo, monte a edição em Markdown e arquive no LiveDoc.
Abrir o fluxo de trabalhoSuporteResponda perguntas de suporte com a sua própria documentação
Crie um LiveDoc, carregue a central de ajuda e o runbook interno, recupere os trechos que respondem ao ticket e deixe o modelo responder apenas com essas evidências.
Abrir o fluxo de trabalhoFaça do seu jeito
A mesma receita, adaptada ao seu processo real.
Origem em PDF
Envie um PDF via multipart; a plataforma o salva como recurso do LiveDoc primeiro.
Defina o tema
Liste os temas disponíveis e passe o id ao criar a tarefa.
Reutilize no próximo deck
Crie uma nova tarefa PPT com o mesmo LiveDoc short_id.
Continue
As páginas de referência por trás desta receita e para onde ir depois.