Pular para o conteúdo

Arquivos e Mídia

Faça upload e gerencie arquivos a partir do código do seu app. Cada arquivo recebe uma URL pública permanente.

O Proyecta disponibiliza uma Files API via SDK para gerenciamento programático de arquivos a partir do código do seu app.

O campo de chat aceita imagens diretamente — cole um screenshot ou arraste um arquivo de imagem para o campo. Formatos suportados: PNG, JPEG, WebP, GIF, AVIF. Tamanho máximo: 10 MB por imagem.

Anexos de chat fazem parte da mensagem, não da sua biblioteca de arquivos. Para armazenamento persistente, use o SDK.

Todo app Proyecta publicado tem acesso a uma API de armazenamento de arquivos por meio do SDK do Proyecta. O SDK oferece suporte para listagem, busca e upload de arquivos. Os arquivos enviados recebem uma URL pública permanente que pode ser referenciada no seu app.

import Proyecta from '@proyecta-ai/sdk';
const proyecta = new Proyecta({ apiKey: process.env.PROYECTA_API_KEY });
// List files (supports limit and starting_after for pagination)
const files = await proyecta.files.list();
// Fetch a single file by ID
const file = await proyecta.files.get('1234567890123456789');
console.log(file.url); // permanent public URL
// Upload a file (two-step)
// Step 1: create a placeholder and get a signed upload URL
const { id: fileId, upload_url } = await proyecta.files.create({
filename: 'avatar.png',
mime_type: 'image/png',
});
// Step 2: PUT the file bytes directly to the signed URL
await fetch(upload_url, {
method: 'PUT',
body: fileBytes,
headers: { 'Content-Type': 'image/png' },
});
// Step 3: finalize to get the permanent file record
const uploaded = await proyecta.files.finalize({ fileId });
console.log(uploaded.url); // permanent public URL, now populated

Cada arquivo contém:

CampoDescrição
idIdentificador único (string numérica no formato snowflake)
urlURL pública permanente (preenchida após a etapa de finalização)
filenameNome original do arquivo no momento do upload
mime_typeimage/jpeg, application/pdf, etc.
sizeTamanho em bytes
pathCaminho de pasta opcional (ex.: /images/blog)
content_hashSHA-256 do conteúdo do arquivo
metadataMetadados arbitrários em chave/valor
createdTimestamp de criação no formato ISO 8601
updatedTimestamp da última atualização no formato ISO 8601

Os uploads de arquivos são feitos por meio do AI builder. Peça à IA para montar o fluxo de upload:

  • "Let users upload a profile photo and store it in Proyecta Files"
  • "Add an image gallery where signed-in users can upload and view their photos"
  • "Let me attach PDF invoices to orders"

A IA configura o upload no código do seu app usando a API de upload em duas etapas do SDK e referencia a URL pública retornada. Você também pode chamar files.create() / files.finalize() diretamente do seu próprio código.

As URLs dos arquivos são públicas?

Sim. Qualquer arquivo retornado pela Files API possui uma URL pública permanente. Não faça upload de nada que você não queira expor.

Qual é o tamanho máximo de um arquivo?

Os limites por arquivo dependem do seu plano. Anexos de chat têm limite de 10 MB por imagem.

Posso redimensionar ou recortar imagens pela URL?

Transformações de imagem em tempo real (redimensionamento, recorte, conversão de formato) estão no roadmap.

  • Transformações de imagem via parâmetros de URL (redimensionamento, recorte, conversão de formato)
  • Organização em pastas — crie e gerencie caminhos de pasta no painel
  • “Add to Chat” a partir de uma linha de arquivo, para que os assets da biblioteca possam ser inseridos na conversa com a IA