Subir archivos a un Almacén de Vectores
Cargar contenido de archivos en Vector Store con operaciones por lotes
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.
Ejemplos de Solicitudes
curl -X POST \
https://api.rememberizer.ai/api/v1/vector-stores/vs_abc123/documents/upload \
-H "x-api-key: YOUR_API_KEY" \
-F "files=@/path/to/document1.pdf" \
-F "files=@/path/to/document2.docx"const uploadFiles = async (vectorStoreId, files) => {
const formData = new FormData();
// Agregar múltiples archivos a los datos del formulario
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': 'YOUR_API_KEY'
// Nota: No establezca el encabezado Content-Type, se establecerá automáticamente con el límite correcto
},
body: formData
});
const data = await response.json();
console.log(data);
};
// Ejemplo de uso con el elemento de entrada de archivo
const fileInput = document.getElementById('fileInput');
uploadFiles('vs_abc123', fileInput.files);Método auxiliar para determinar el tipo de contenido
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
Ejemplo de uso
result = upload_files('vs_abc123', ['/path/to/document1.pdf', '/path/to/document2.docx']) puts result
Si algunos archivos no se pueden cargar, se enumerarán en el array errors:
Autenticación
Este endpoint requiere autenticación utilizando una clave API en el encabezado x-api-key.
Formatos de Archivo Soportados
PDF (
.pdf)Microsoft Word (
.doc,.docx)Microsoft Excel (
.xls,.xlsx)Microsoft PowerPoint (
.ppt,.pptx)Archivos de texto (
.txt)Markdown (
.md)JSON (
.json)HTML (
.html,.htm)
Límites de Tamaño de Archivo
Límite de tamaño de archivo individual: 50MB
Límite de tamaño total de solicitud: 100MB
Número máximo de archivos por solicitud: 20
Respuestas de Error
400
Solicitud Incorrecta - No se proporcionaron archivos o formato de solicitud inválido
401
No Autorizado - Clave API inválida o faltante
404
No Encontrado - Almacén de Vectores no encontrado
413
Carga Útil Demasiado Grande - Los archivos exceden el límite de tamaño
415
Tipo de Medio No Compatible - Formato de archivo no soportado
500
Error Interno del Servidor
207
Multi-Estado - Algunos archivos se subieron con éxito, pero otros fallaron
Estado del Procesamiento
Los archivos son aceptados inicialmente con un estado de processing. Puedes verificar el estado de procesamiento de los documentos utilizando el endpoint Get a List of Documents in a Vector Store. El estado final será uno de:
done: El documento fue procesado con éxitoerror: Ocurrió un error durante el procesamientoprocessing: El documento aún se está procesando
El tiempo de procesamiento depende del tamaño y la complejidad del archivo. El tiempo de procesamiento típico es de entre 30 segundos a 5 minutos por documento.
Operaciones por Lotes
Para cargar eficientemente múltiples archivos en su Almacén de Vectores, Rememberizer admite operaciones por lotes. Este enfoque ayuda a optimizar el rendimiento al tratar con grandes cantidades de documentos.
Implementación de Carga por Lotes
{% tabs %} {% tab title="Python" %}
{% endtab %}
{% tab title="JavaScript" %}
{% endtab %}
{% tab title="Ruby" %}
Mejores Prácticas para Cargas por Lotes
Para optimizar el rendimiento y la fiabilidad al cargar grandes volúmenes de archivos:
Gestionar el Tamaño del Lote: Mantenga los tamaños de lote entre 5-10 archivos para un rendimiento óptimo. Demasiados archivos en una sola solicitud aumentan el riesgo de tiempos de espera.
Implementar Limitación de Tasa: Agregue retrasos entre lotes (se recomiendan 2-3 segundos) para evitar alcanzar los límites de tasa de la API.
Agregar Lógica de Reintento de Errores: Para sistemas de producción, implemente lógica de reintento para cargas fallidas con retroceso exponencial.
Validar Tipos de Archivos: Pre-filtre los archivos para asegurarse de que sean tipos compatibles antes de intentar la carga.
Monitorear el Progreso del Lote: Para aplicaciones orientadas al usuario, proporcione retroalimentación sobre el progreso de las operaciones por lotes.
Manejar Éxitos Parciales: La API puede devolver un código de estado 207 para éxito parcial. Siempre verifique los estados de documentos individuales.
Limpiar Recursos: Asegúrese de que todos los manejadores de archivos estén cerrados correctamente, especialmente cuando ocurren errores.
Paralelizar con Sabiduría: Para cargas muy grandes (miles de archivos), considere múltiples procesos de lotes concurrentes que apunten a diferentes almacenes de vectores, luego combine los resultados más tarde si es necesario.
Implementar Sumas de Comprobación: Para datos críticos, verifique la integridad del archivo antes y después de la carga con sumas de comprobación.
Registrar Resultados Completos: Mantenga registros detallados de todas las operaciones de carga para la solución de problemas.
Siguiendo estas mejores prácticas, puede gestionar de manera eficiente la ingestión de documentos a gran escala en sus almacenes de vectores.
Last updated