Passando arquivos

O Seeyu Agent Studio facilita o trabalho com arquivos em todos os seus workflows. Os blocks podem receber arquivos, processá-los e passá-los para outros blocks sem atrito.

Objetos de arquivo

Quando blocks produzem arquivos (como anexos do Gmail, imagens geradas ou documentos processados), eles retornam um objeto de arquivo padronizado:

{
  "name": "report.pdf",
  "url": "https://...",
  "base64": "JVBERi0xLjQK...",
  "type": "application/pdf",
  "size": 245678
}

Você pode acessar qualquer uma dessas propriedades ao referenciar arquivos de blocks anteriores.

O block File

O block File é o ponto de entrada universal de arquivos nos seus workflows. Ele aceita arquivos de qualquer origem e produz objetos de arquivo padronizados que funcionam com todas as integrações.

Entradas:

  • Arquivos enviados - Arraste e solte ou selecione arquivos diretamente
  • URLs externas - Qualquer URL de arquivo publicamente acessível
  • Arquivos de outros blocks - Passe arquivos de anexos do Gmail, downloads do Slack, etc.

Saídas:

  • Uma lista de objetos UserFile com estrutura consistente (name, url, base64, type, size)
  • combinedContent - Conteúdo de texto extraído de todos os arquivos (para documentos)

Exemplo de uso:

// Get all files from the File block
<file.files>

// Get the first file
<file.files[0]>

// Get combined text content from parsed documents
<file.combinedContent>

O block File automaticamente:

  • Detecta tipos de arquivo a partir de URLs e extensões
  • Extrai texto de PDFs, CSVs e documentos
  • Gera a codificação base64 para arquivos binários
  • Cria URLs pré-assinadas para acesso seguro

Use o block File quando você precisa normalizar arquivos de origens diferentes antes de passá-los para outros blocks, como Vision, STT ou integrações de e-mail.

Passando arquivos entre blocks

Referencie arquivos de blocks anteriores usando o dropdown de tags. Clique em qualquer campo de entrada de arquivo e digite < para ver as saídas disponíveis.

Padrões comuns:

// Single file from a block
<gmail.attachments[0]>

// Pass the whole file object
<file_parser.files[0]>

// Access specific properties
<gmail.attachments[0].name>
<gmail.attachments[0].base64>

A maioria dos blocks aceita o objeto de arquivo completo e extrai o que precisa automaticamente. Na maior parte dos casos, você não precisa extrair base64 ou url manualmente.

Disparando workflows com arquivos

Ao chamar via API um workflow que espera um arquivo como entrada, inclua os arquivos na sua requisição:

curl -X POST "https://agent-studio.seeyu.ai/api/workflows/YOUR_WORKFLOW_ID/execute" \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
    "document": {
      "name": "report.pdf",
      "base64": "JVBERi0xLjQK...",
      "type": "application/pdf"
    }
  }'
curl -X POST "https://agent-studio.seeyu.ai/api/workflows/YOUR_WORKFLOW_ID/execute" \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
    "document": {
      "name": "report.pdf",
      "url": "https://example.com/report.pdf",
      "type": "application/pdf"
    }
  }'

O block Start do workflow deve ter um campo de entrada configurado para receber o parâmetro do arquivo.

Recebendo arquivos em respostas de API

Quando um workflow produz arquivos, eles vêm incluídos na resposta:

{
  "success": true,
  "output": {
    "generatedFile": {
      "name": "output.png",
      "url": "https://...",
      "base64": "iVBORw0KGgo...",
      "type": "image/png",
      "size": 34567
    }
  }
}

Use url para downloads diretos ou base64 para processamento inline.

Blocks que trabalham com arquivos

Entradas de arquivo:

  • File - Processa documentos, imagens e arquivos de texto
  • Vision - Analisa imagens com modelos de IA
  • Mistral Parser - Extrai texto de PDFs

Saídas de arquivo:

  • Gmail - Anexos de e-mail
  • Slack - Arquivos baixados
  • TTS - Arquivos de áudio gerados
  • Video Generator - Vídeos gerados
  • Image Generator - Imagens geradas

Armazenamento de arquivos:

  • Supabase - Upload/download do storage
  • S3 - Operações no AWS S3
  • Google Drive - Operações com arquivos do Drive
  • Dropbox - Operações com arquivos do Dropbox

Os arquivos ficam automaticamente disponíveis para os blocks seguintes. O motor cuida de todo o transporte de arquivos e da conversão de formatos.

Boas práticas

  1. Use os objetos de arquivo diretamente - Passe o objeto de arquivo completo em vez de extrair propriedades individuais. Os blocks fazem a conversão automaticamente.

  2. Confira os tipos de arquivo - Garanta que o tipo do arquivo corresponde ao que o block receptor espera. O block Vision precisa de imagens; o block File lida com documentos.

  3. Considere o tamanho do arquivo - Arquivos grandes aumentam o tempo de execução. Para arquivos muito grandes, considere usar blocks de armazenamento (S3, Supabase) como área intermediária.

Common Questions

O tamanho máximo de arquivo processado durante uma execução de workflow é 20 MB. Arquivos que excedem esse limite são rejeitados com um erro indicando o tamanho real do arquivo. Para arquivos maiores, use blocks de armazenamento como S3 ou Supabase como área intermediária.
Ao disparar um workflow via API, você pode enviar arquivos como dados codificados em base64 (usando um data URI no formato 'data:{mime};base64,{data}') ou como uma URL que aponte para um arquivo publicamente acessível. Nos dois casos, inclua o nome do arquivo e o tipo MIME na requisição.
Os arquivos são representados como objetos UserFile padronizados, com as propriedades name, url, base64, type e size. A maioria dos blocks aceita o objeto de arquivo completo e extrai o que precisa automaticamente, então normalmente você passa o objeto inteiro em vez de propriedades individuais.
O Gmail produz anexos de e-mail, o Slack produz arquivos baixados, o TTS gera arquivos de áudio, e o Video Generator e o Image Generator produzem arquivos de mídia. Blocks de armazenamento como S3, Supabase, Google Drive e Dropbox também podem recuperar arquivos para uso em blocks seguintes.
Não. A maioria dos blocks aceita o objeto de arquivo completo e faz a conversão de formato automaticamente. Basta passar a referência inteira do arquivo (por exemplo, <gmail.attachments[0]>) e o block receptor extrai os dados de que precisa.
Quando você define um campo com o tipo 'file[]' no formato de entrada do block Start, o motor processa automaticamente os dados de arquivo recebidos (base64 ou URL) e os envia para o storage, convertendo-os em objetos UserFile antes de o workflow executar.