2Slides Logo
Pipeline de Pesquisa para Apresentação: Tavily, LLM, Slides API (2026)
2Slides Team
17 min read

Pipeline de Pesquisa para Apresentação: Tavily, LLM, Slides API (2026)

Um pipeline de pesquisa para apresentação recebe um tema e retorna um deck com fontes. Uma API de busca (Tavily ou Exa) coleta de 10 a 20 fontes, um LLM escreve um resumo de 12 slides com citações numeradas, e a API 2Slides transforma o resumo em um deck: POST /api/v1/slides/generate para um PPTX editável a 10 créditos por página (120 créditos, cerca de $0,30, para 12 slides), ou create-pdf-slides para slides com design de imagem a 10 + 100 créditos por página. É ideal para equipes de consultoria, analistas e operações de pesquisa que entregam o mesmo deck semanalmente.

Principais pontos

  • Um deck Fast PPT de 12 slides custa 120 créditos, cerca de $0,30 na tarifa do pacote de $5; a versão com design de imagem custa 1.210 créditos, cerca de $3,03.
  • O pipeline consiste em quatro chamadas: uma chamada à API de busca, uma chamada ao LLM, GET /api/v1/themes/search, e depois POST /api/v1/slides/generate.
  • Toda resposta do 2Slides é encapsulada como { success, data: { jobId, status, downloadUrl } }, então um único parser trata tanto o envio quanto a consulta.
  • O limite de requisições é de 6 por minuto por chave, e um deck Fast PPT retorna em cerca de 30 segundos no modo síncrono.
  • As citações sobrevivem apenas se o prompt do LLM forçar uma lista numerada de fontes e proibir números inventados; o gerador do deck formata o conteúdo, não faz verificação de fatos.

Para quem é este conteúdo

Você gerencia uma prática de consultoria, uma mesa de pesquisa ou uma operação de conteúdo, e alguém pede "um deck rápido sobre o mercado europeu de reciclagem de baterias" a cada poucos dias. A pesquisa leva uma hora, o deck mais duas, e são sempre os mesmos 12 slides: resumo, tamanho do mercado, players, tendências, riscos, recomendações, fontes. Se você já possui uma instância n8n ou um agendador Python, a receita não precisa de nova infraestrutura.

Não use esta receita para entregas finais ao cliente que exigem análise personalizada. Ela produz um primeiro rascunho com fontes em minutos; um humano ainda lê as fontes e decide o que dizer.

Fluxo de trabalho em resumo

PassoFerramentaO que aconteceEndpoint 2Slides / créditos
1. GatilhoAgendamento n8n ou Formulário, cron, ou argumento CLIUma string de tema entra no pipelinenenhum
2. BuscaTavily /search ou Exa /search10 a 20 URLs com títulos e trechos de textonenhum
3. ResumoOpenAI ou ClaudeUm esboço de 12 slides, cada estatística marcada [n], mais uma lista de fontesnenhum
4. TemaGET /api/v1/themes/search?query=consultingRetorna valores candidatos de themeIdgrátis, 6 req/min
5. DeckPOST /api/v1/slides/generate (ou create-pdf-slides)Resumo vira um PPTX (ou PDF + imagens por página)10 créditos/página (ou 10 + 100/página)
6. ConsultaGET /api/v1/jobs/{jobId} a cada 5 a 10 sAguarda status: "success"grátis, 10 req/min
7. EntregaUpload no Google Drive, mensagem no SlackA equipe recebe um link e o arquivo de fontesnenhum

Passo 1: Reúna de 10 a 20 fontes com uma API de pesquisa

O deck é tão bom quanto as fontes, então dedique esforço aqui. Tavily retorna resultados com conteúdo extraído da página, que é o que um LLM precisa para citar em vez de apenas recordar. Exa faz o mesmo com busca semântica. Peça de 10 a 20 resultados e restrinja aos últimos 12 meses quando o tema for sensível ao tempo.

Armazene cada resultado como { id, url, title, published, snippet } e numere os ids a partir de 1. Esses ids viram os marcadores de citação nos slides, então mantenha o mesmo array durante toda a execução.

curl -s https://api.tavily.com/search \ -H "Content-Type: application/json" \ -d '{ "api_key": "'"$TAVILY_API_KEY"'", "query": "European battery recycling market size 2026", "search_depth": "advanced", "max_results": 15, "include_raw_content": false }'

Passo 2: Escreva um resumo de 12 slides com citações (OpenAI ou Claude)

O prompt faz três tarefas: fixa a estrutura dos slides, força que todo número carregue um id de citação, e proíbe números que não apareçam nas fontes. Peça texto simples, não JSON, porque o texto vai direto para o userInput da chamada 2Slides.

Uma estrutura que funciona para a maioria dos resumos de consultoria é 12 slides: 1 título, 2 resumo executivo, 3 tamanho do mercado, 4 a 5 principais players, 6 a 7 tendências, 8 a 9 riscos, 10 a 11 recomendações, 12 fontes. Mantenha 3 a 5 tópicos por slide; os templates Fast PPT são projetados para essa densidade.

Você é um analista de pesquisa. Usando SOMENTE as fontes numeradas abaixo, escreva um briefing de 12 slides sobre: {topic}. Slides: 1 Título, 2 Resumo executivo, 3 Tamanho do mercado, 4-5 Principais players, 6-7 Tendências, 8-9 Riscos, 10-11 Recomendações, 12 Fontes. Regras: - Todo número, porcentagem ou data deve terminar com seu id de fonte entre colchetes, ex: "EUR 4.2B até 2030 [3]". - Se as fontes não contiverem um dado, escreva "nenhum dado confiável encontrado" em vez de estimar. - O slide 12 lista cada id citado como "[n] Título, Publicadora, URL". - 3 a 5 tópicos por slide, cada um com menos de 20 palavras. Comece cada slide com "Slide N: <título>". Fontes: {sources}

Passo 3: Escolha um tema no estilo consultoria

Decks Fast PPT são construídos a partir de templates desenhados, e o themeId decide o visual. Busque na biblioteca uma vez por "consulting" ou "corporate", escolha um ou dois ids, e fixe-os no pipeline. Buscar a cada execução só gasta orçamento do limite de requisições.

curl -s "https://2slides.com/api/v1/themes/search?query=consulting&limit=5" \ -H "Authorization: Bearer $SLIDES_API_KEY"

A resposta lista cada tema com seu themeId, nome e pré-visualização. Para navegar visualmente, o Templates Hub mostra os mesmos 1.500+ templates.

2Slides Templates Hub para escolher um tema no estilo consultoria
Figura 1: O Templates Hub, onde você escolhe um tema consultoria ou corporativo e copia seu themeId para a chamada API.

Passo 4: Gere o deck com a API 2Slides

Dois caminhos. Para um PPTX editável que o consultor pode estilizar no PowerPoint, chame generate. O padrão é modo síncrono, então um deck de 12 slides retorna com um downloadUrl em uma chamada em cerca de 30 segundos. Para lotes de vários temas, passe mode: "async" e faça polling.

curl -s -X POST https://2slides.com/api/v1/slides/generate \ -H "Authorization: Bearer $SLIDES_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "userInput": "Slide 1: European Battery Recycling Market 2026\n...\nSlide 12: Sources\n[1] ...", "themeId": "THEME_ID_FROM_SEARCH", "responseLanguage": "English", "mode": "async" }'

Resposta:

{ "success": true, "data": { "jobId": "job_9f3a...", "status": "pending" } }

Para uma versão premium com design de imagem (PDF mais imagens por página), chame create-pdf-slides com o mesmo resumo. Defina page: 12 para coincidir com o resumo, ou page: 0 para deixar o planejador escolher.

curl -s -X POST https://2slides.com/api/v1/slides/create-pdf-slides \ -H "Authorization: Bearer $SLIDES_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "userInput": "Slide 1: European Battery Recycling Market 2026\n...", "designStyle": "consulting deck, navy and white, dense data slides, one chart per slide", "aspectRatio": "16:9", "resolution": "2K", "page": 12, "contentDetail": "standard", "responseLanguage": "English" }'

Ambos os caminhos retornam o mesmo envelope. Faça polling em GET https://2slides.com/api/v1/jobs/{jobId} a cada 5 a 10 segundos até que data.status seja success ou failed, então baixe data.downloadUrl.

Passo 5: Implementação A, o fluxo n8n (apresentação Tavily n8n)

n8n é a forma mais rápida de fazer um trabalho agendado de apresentação Tavily n8n que não engenheiros podem disparar via formulário. Sete nós padrão são suficientes.

  • Gatilho Schedule (semanal) ou Gatilho Formulário com um único campo "tema".
  • Requisição HTTP para Tavily /search com o tema, max_results: 15.
  • Nó OpenAI (ou uma Requisição HTTP para Claude) com o prompt do Passo 2; passe as fontes numeradas na mensagem.
  • Nó Código que monta { userInput, themeId, responseLanguage: "English", mode: "async" } a partir do texto do LLM.
  • Requisição HTTP para POST https://2slides.com/api/v1/slides/generate com cabeçalho Authorization: Bearer {{ $env.SLIDES_API_KEY }}. Mantenha a chave nas credenciais do n8n, nunca no corpo do nó.
  • Nó Espera (10 segundos), depois Requisição HTTP para GET /api/v1/jobs/{{ $json.data.jobId }} e um Nó IF: success continua, pending ou processing volta para Espera, failed envia erro para Slack.
  • Requisição HTTP (baixa data.downloadUrl como binário) depois Upload Google Drive e mensagem no Slack com o link do Drive e o tema.

Adicione um segundo upload no Google Drive para o sources.json do Passo 1; o revisor vai querer os trechos completos, não só o slide de Fontes. Credenciais e tratamento de erros estão cobertos em n8n + 2Slides: automatize fluxos de apresentação.

Passo 6: Implementação B, um script Python único

Para uma equipe que prefere um job cron, um arquivo Python faz o mesmo trabalho. Esta versão usa Tavily e OpenAI; troque para Exa ou Claude mudando uma função.

import os, time, json, requests TAVILY = os.environ["TAVILY_API_KEY"] OPENAI = os.environ["OPENAI_API_KEY"] SLIDES = os.environ["SLIDES_API_KEY"] BASE = "https://2slides.com/api/v1" H = {"Authorization": f"Bearer {SLIDES}", "Content-Type": "application/json"} def search(topic, n=15): r = requests.post("https://api.tavily.com/search", json={ "api_key": TAVILY, "query": topic, "search_depth": "advanced", "max_results": n}) r.raise_for_status() return [{"id": i + 1, "url": s["url"], "title": s["title"], "snippet": s["content"]} for i, s in enumerate(r.json()["results"])] def write_brief(topic, sources): src = "\n".join(f"[{s['id']}] {s['title']} | {s['url']}\n{s['snippet']}" for s in sources) prompt = open("brief_prompt.txt").read().format(topic=topic, sources=src) r = requests.post("https://api.openai.com/v1/chat/completions", headers={"Authorization": f"Bearer {OPENAI}"}, json={"model": "gpt-4.1", "messages": [{"role": "user", "content": prompt}], "temperature": 0.2}) r.raise_for_status() return r.json()["choices"][0]["message"]["content"] def pick_theme(query="consulting"): r = requests.get(f"{BASE}/themes/search", headers=H, params={"query": query, "limit": 5}) r.raise_for_status() return r.json()["data"]["themes"][0]["themeId"] def generate_deck(brief, theme_id, language="English"): r = requests.post(f"{BASE}/slides/generate", headers=H, json={ "userInput": brief, "themeId": theme_id, "responseLanguage": language, "mode": "async"}) r.raise_for_status() body = r.json() assert body["success"], body return body["data"]["jobId"] def wait_for(job_id, every=8, timeout=600): start = time.time() while time.time() - start < timeout: d = requests.get(f"{BASE}/jobs/{job_id}", headers=H).json()["data"] if d["status"] == "success": return d["downloadUrl"] if d["status"] == "failed": raise RuntimeError(f"job {job_id} failed: {d}") time.sleep(every) raise TimeoutError(job_id) if __name__ == "__main__": topic = "European battery recycling market 2026" sources = search(topic) brief = write_brief(topic, sources) url = wait_for(generate_deck(brief, pick_theme())) slug = topic.lower().replace(" ", "-") open(f"{slug}.pptx", "wb").write(requests.get(url).content) json.dump({"topic": topic, "sources": sources, "brief": brief}, open(f"{slug}.sources.json", "w"), indent=2)

O script grava dois arquivos por execução: o PPTX e um .sources.json com a lista de fontes e o texto do resumo. O JSON é a trilha de auditoria quando um sócio pergunta de onde veio a figura do slide 3. Para lotes, mantenha submissões abaixo de 6 por minuto.

Higiene das citações: todo número carrega sua fonte

A geração automática de decks de consultoria falha de forma previsível: um número confiante no slide 3 que nenhuma fonte contém. O gerador do deck só formata o que recebe, então os controles ficam no passo do LLM e numa checagem posterior.

  • Forçar o formato do marcador. Toda figura termina com [n]. Rejeite o resumo (e refaça a chamada LLM) se um regex encontrar um número seguido de "%", "B", "M" ou um ano sem id entre colchetes na mesma linha.
  • Validar ids contra o array de fontes. Um [7] no resumo com apenas 6 fontes significa que o modelo inventou uma referência. Falhe a execução.
  • Manter o slide de Fontes. O slide 12 lista [n] Título, Publicadora, URL para cada id citado. É o slide que o revisor lê primeiro.
  • Armazenar o arquivo acompanhante. O .sources.json (ou o upload no Drive no n8n) mantém os trechos que o modelo viu, para que o revisor compare o texto do slide com a passagem original.
  • Prefira "nenhum dado confiável encontrado". Consultores podem preencher uma lacuna honesta; não detectam facilmente um número fabricado.

A alternativa agente: Claude Code ou Codex com a skill 2Slides ou MCP

O pipeline scriptado é ideal para temas agendados e repetíveis. Para um mergulho único, uma sessão agente faz os mesmos passos interativamente. Conecte o servidor 2Slides MCP hospedado ao Claude Code com um comando, depois peça ao agente para pesquisar o tema com sua ferramenta de busca web, escrever o resumo citado, chamar themes_search para um tema consultoria, e chamar slides_generate com o resumo. O MCP expõe 7 ferramentas, incluindo jobs_get para polling, na mesma chave e créditos da API REST.

claude mcp add --transport http 2slides "https://2slides.com/api/mcp?apikey=YOUR_KEY"

Aba MCP Server do 2Slides na página da API, com o endpoint HTTP Streamable e o comando claude mcp add
Figura 2: Aba MCP Server na página da API, com o endpoint HTTP Streamable e a configuração de uma linha para Claude Code.

No Codex, Cursor ou outro agente que prefira skills, instale a Agent Skill da página de skills em vez disso; ela ensina os mesmos endpoints e o mesmo loop de envio, polling e download. Veja Agent Skills vs MCP servers para apresentações para os trade-offs e Como usar Claude MCP para gerar apresentações para o passo a passo.

Página Agent Skills do 2Slides listando Claude Code, OpenAI Codex, Cursor, Google Antigravity, Manus e Openclaw
Figura 3: Página Agent Skills, com instruções de instalação para Claude Code, Codex, Cursor e outros agentes.

Como é um deck no padrão consultoria

A Galeria 2Slides hospeda decks de referência como o "AI at Work 2025" da BCG, que abre com uma tese em uma linha e fecha com metodologia e fontes, a mesma estrutura do resumo de 12 slides acima. Esses decks da galeria são referências do mundo real hospedadas no 2Slides, não saída da API. Use-os como inspiração de design, ou passe uma URL de imagem de página como referenceImageUrl para create-like-this para que o caminho de design por imagem derive seu tipo, cor e layout da referência.

Deck de referência BCG AI at Work 2025 da Galeria 2Slides, referência de estrutura no estilo consultoria
Figura 4: Slide de título do deck de referência BCG AI at Work 2025 na Galeria 2Slides.

Deck de referência BCG AI at Work 2025 da Galeria 2Slides, referência de estrutura no estilo consultoria
Figura 5: Um slide posterior do mesmo deck, mostrando o layout de uma mensagem por slide esperado pelo público de consultoria.

Para uma visão mais ampla das ferramentas que se encaixam no trabalho de consultoria, veja Melhores ferramentas de apresentação AI para consultores. A página da API do Gamma documenta uma receita comparável n8n + Tavily + OpenAI; suas chaves API exigem plano Pro, enquanto as chaves 2Slides funcionam em qualquer conta. 2Slides é nosso produto, então pese essa comparação adequadamente.

Quanto custa

Créditos são pay-as-you-go: $5 compra 2.000 créditos ($0,0025 por crédito) e $80 compra 40.000 ($0,002 por crédito). Taxas da API de busca e LLM são cobradas pelos provedores e não estão incluídas abaixo.

VolumeFast PPT generate (12 slides = 120 créditos)Image-designed create-pdf-slides (12 slides a 2K = 1.210 créditos)
20 decks / mês2.400 créditos, cerca de $6,00 (pacote de $9,50 cobre)24.200 créditos, cerca de $48 a $61 dependendo do pacote
500 decks / mês60.000 créditos, cerca de $120 (dois pacotes de $80)605.000 créditos, cerca de $1.210 a $0,002 por crédito

Contas novas recebem 500 créditos grátis, o que equivale a 4 decks Fast PPT completos para teste antes de comprar.

Fast PPT ou slides com design de imagem para este caso?

  • Fast PPT generate é adequado quando o consultor vai editar o deck no PowerPoint, quando o volume é alto (500 decks por mês custam cerca de $120), e quando um visual de template é aceitável. Retorna em cerca de 30 segundos.
  • create-pdf-slides é adequado quando o deck vai para o cliente como PDF somente leitura e precisa de um visual desenhado, uma ideia por slide. O custo é cerca de 10 vezes maior por deck.
  • create-like-this é adequado quando a empresa tem um estilo próprio: passe uma imagem de slide com marca como referenceImageUrl e cada execução herda esse estilo.
  • Narração e MP4 estão disponíveis apenas nos jobs com design de imagem, via generate-narration a 210 créditos por página. Útil para vídeo interno de briefing de pesquisa, não para o caminho Fast PPT.

Armadilhas comuns

  • Limite de taxa de 6 requisições por minuto. Faça filas de execuções em lotes com uma submissão a cada 10 a 12 segundos; o polling usa o orçamento separado de 10 req/min para jobs.
  • Chave API no corpo do nó n8n ou script de navegador. Mantenha na credencial do n8n ou variável de ambiente do servidor, nunca no código cliente.
  • Tentar narrar um deck Fast PPT. generate-narration aceita apenas jobs de create-pdf-slides ou create-like-this. Jobs Fast PPT são rejeitados.
  • page: 0 significa auto-detectar, não zero páginas. Em create-pdf-slides, defina page: 12 quando o resumo já tem 12 slides, ou page: 0 para deixar o planejador decidir.
  • Códigos de idioma em vez de nomes. responseLanguage aceita "Spanish" ou "German", não "es" ou "de".
  • Enviar 20 artigos completos como userInput. Resuma primeiro; o resumo, não as fontes brutas, vai para 2Slides.

Perguntas Frequentes

Quanto custa um pipeline de pesquisa para apresentação por deck?

Cerca de $0,30 para a parte 2Slides de um deck Fast PPT de 12 slides (120 créditos a $0,0025 por crédito), ou cerca de $3,03 para um deck de 12 slides com design de imagem a 2K (1.210 créditos). Adicione uma chamada à API de busca e uma conclusão LLM, cobradas pelos seus provedores. A 500 decks por mês, o caminho Fast PPT custa cerca de $120 em créditos.

O pipeline pode gerar um deck em outro idioma?

Sim. Passe responseLanguage como nome de idioma, por exemplo "Spanish" ou "Japanese"; mais de 20 idiomas são suportados. A configuração mais limpa escreve o resumo em inglês e deixa o 2Slides traduzir na geração, assim citações e URLs das fontes permanecem idênticos entre versões do mesmo deck.

Preciso do n8n ou posso rodar sem uma ferramenta de workflow?

Você não precisa do n8n. O script Python do Passo 6 faz o mesmo trabalho a partir de um job cron, e uma sessão agente com o MCP ou skill 2Slides faz interativamente. O n8n vale a pena quando não engenheiros devem disparar execuções via formulário e você quer entrega no Google Drive e Slack sem escrever essas integrações.

Como evitar que o LLM invente estatísticas nos slides?

Constrinja o prompt e valide a saída. Exija que toda figura termine com um id de fonte [n], diga ao modelo para escrever "nenhum dado confiável encontrado" em vez de estimar, e rejeite qualquer resumo cujos ids excedam o número de fontes. Armazene o arquivo de fontes junto ao deck para que o revisor confira cada slide com sua passagem.

Posso combinar o estilo de slides da minha empresa em vez de usar um template?

Sim, com create-like-this. Passe uma URL pública de um dos seus slides com marca como referenceImageUrl e o pipeline com design de imagem deriva suas cores, tipo e layout dele. O custo é o mesmo de create-pdf-slides: 10 créditos de planejamento mais 100 créditos por página a 2K. Para um PPTX editável, escolha o tema mais próximo em themes/search.

Próximos passos

  • Obtenha uma chave API em 2slides.com/api. Contas novas começam com 500 créditos grátis, suficientes para 4 decks de teste de 12 slides.
  • Veja como outras equipes usam os mesmos endpoints no post do hub, Casos de uso da API de apresentação AI por equipe.
  • Se sua equipe trabalha em Claude Code ou Codex, instale a Agent Skill e rode o pipeline de pesquisa para apresentação interativamente antes de agendá-lo; n8n + 2Slides cobre a versão com ferramenta de workflow.

About 2Slides

Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.

Try For Free