Carregar arquivos para um Armazenamento Vetorial
Carregar o conteúdo do arquivo para o Vector Store com operações em lote
Upload files to a vector store.
The ID of the vector store.
The API key for authentication.
The files to upload.
Files uploaded successfully.
Some files failed to upload.
Exemplo de Requisições
curl -X POST \
https://api.rememberizer.ai/api/v1/vector-stores/vs_abc123/documents/upload \
-H "x-api-key: SUA_CHAVE_API" \
-F "files=@/caminho/para/documento1.pdf" \
-F "files=@/caminho/para/documento2.docx"const uploadFiles = async (vectorStoreId, files) => {
const formData = new FormData();
// Adicione múltiplos arquivos aos dados do formulário
for (const file of files) {
formData.append('files', file);
}
const response = await fetch(`https://api.rememberizer.ai/api/v1/vector-stores/${vectorStoreId}/documents/upload`, {
method: 'POST',
headers: {
'x-api-key': 'SUA_CHAVE_API'
// Nota: Não defina o cabeçalho Content-Type, ele será definido automaticamente com o limite correto
},
body: formData
});
const data = await response.json();
console.log(data);
};
// Exemplo de uso com elemento de entrada de arquivo
const fileInput = document.getElementById('fileInput');
uploadFiles('vs_abc123', fileInput.files);Método auxiliar para determinar o tipo de conteúdo
def get_content_type(filename) ext = File.extname(filename).downcase case ext when '.pdf' then 'application/pdf' when '.doc' then 'application/msword' when '.docx' then 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' when '.txt' then 'text/plain' when '.md' then 'text/markdown' when '.json' then 'application/json' else 'application/octet-stream' end end
Exemplo de uso
result = upload_files('vs_abc123', ['/caminho/para/documento1.pdf', '/caminho/para/documento2.docx']) puts result
Se alguns arquivos falharem ao serem enviados, eles serão listados no array errors:
Autenticação
Este endpoint requer autenticação usando uma chave de API no cabeçalho x-api-key.
Formatos de Arquivo Suportados
PDF (
.pdf)Microsoft Word (
.doc,.docx)Microsoft Excel (
.xls,.xlsx)Microsoft PowerPoint (
.ppt,.pptx)Arquivos de texto (
.txt)Markdown (
.md)JSON (
.json)HTML (
.html,.htm)
Limites de Tamanho de Arquivo
Limite de tamanho de arquivo individual: 50MB
Limite de tamanho total da solicitação: 100MB
Número máximo de arquivos por solicitação: 20
Respostas de Erro
400
Solicitação Inválida - Nenhum arquivo fornecido ou formato de solicitação inválido
401
Não Autorizado - Chave de API inválida ou ausente
404
Não Encontrado - Armazenamento Vetorial não encontrado
413
Payload Muito Grande - Arquivos excedem o limite de tamanho
415
Tipo de Mídia Não Suportado - Formato de arquivo não suportado
500
Erro Interno do Servidor
207
Multi-Status - Alguns arquivos foram enviados com sucesso, mas outros falharam
Status de Processamento
Os arquivos são inicialmente aceitos com um status de processing. Você pode verificar o status de processamento dos documentos usando o endpoint Get a List of Documents in a Vector Store. O status final será um dos seguintes:
done: O documento foi processado com sucessoerror: Ocorreu um erro durante o processamentoprocessing: O documento ainda está sendo processado
O tempo de processamento depende do tamanho e da complexidade do arquivo. O tempo de processamento típico varia de 30 segundos a 5 minutos por documento.
Operações em Lote
Para fazer o upload eficiente de vários arquivos para o seu Vector Store, o Rememberizer suporta operações em lote. Essa abordagem ajuda a otimizar o desempenho ao lidar com um grande número de documentos.
Implementação de Upload em Lote
{% tabs %} {% tab title="Python" %}
{% endtab %}
{% tab title="JavaScript" %}
{% endtab %}
{% tab title="Ruby" %}
Melhores Práticas para Upload em Lote
Para otimizar o desempenho e a confiabilidade ao fazer upload de grandes volumes de arquivos:
Gerenciar Tamanho do Lote: Mantenha os tamanhos dos lotes entre 5-10 arquivos para um desempenho ideal. Muitos arquivos em uma única solicitação aumentam o risco de timeouts.
Implementar Limitação de Taxa: Adicione atrasos entre os lotes (2-3 segundos recomendados) para evitar atingir os limites de taxa da API.
Adicionar Lógica de Retentativa de Erros: Para sistemas de produção, implemente lógica de retentativa para uploads falhados com retrocesso exponencial.
Validar Tipos de Arquivo: Pré-filtre os arquivos para garantir que sejam tipos suportados antes de tentar o upload.
Monitorar o Progresso do Lote: Para aplicações voltadas para o usuário, forneça feedback de progresso nas operações de lote.
Lidar com Sucesso Parcial: A API pode retornar um código de status 207 para sucesso parcial. Sempre verifique os status dos documentos individuais.
Limpar Recursos: Certifique-se de que todos os manipuladores de arquivos estejam devidamente fechados, especialmente quando ocorrem erros.
Paralelizar com Sabedoria: Para uploads muito grandes (milhares de arquivos), considere múltiplos processos de lote concorrentes direcionados a diferentes lojas de vetores, e depois combine os resultados mais tarde, se necessário.
Implementar Checksums: Para dados críticos, verifique a integridade do arquivo antes e depois do upload com checksums.
Registrar Resultados Abrangentes: Mantenha logs detalhados de todas as operações de upload para solução de problemas.
Seguindo estas melhores práticas, você pode gerenciar de forma eficiente a ingestão de documentos em grande escala em suas lojas de vetores.
Last updated