Rememberizer Docs
anmeldenMelden Sie sich anKontaktiere uns
Deutsch
Deutsch
  • Warum Rememberizer?
  • Hintergrund
    • Was sind Vektor-Embeddings und Vektor-Datenbanken?
    • Glossar
    • Standardisierte Terminologie
  • Persönliche Nutzung
    • Erste Schritte
      • Durchsuche dein Wissen
      • Zugriff auf Mementos-Filter
      • Allgemeines Wissen
      • Verwalte dein eingebettetes Wissen
  • Integrationen
    • Rememberizer App
    • Rememberizer Slack-Integration
    • Rememberizer Google Drive-Integration
    • Rememberizer Dropbox-Integration
    • Rememberizer Gmail-Integration
    • Rememberizer Memory-Integration
    • Rememberizer MCP-Server
    • Drittanbieter-Apps verwalten
  • Entwicklerressourcen
    • Entwicklerübersicht
  • Integrationsoptionen
    • Registrierung und Verwendung von API-Schlüsseln
    • Registrierung von Rememberizer-Apps
    • Autorisierung von Rememberizer-Apps
    • Erstellung eines Rememberizer GPT
    • LangChain-Integration
    • Vektor-Speicher
    • Talk-to-Slack die Beispiel-Webanwendung
  • Unternehmensintegration
    • Muster der Unternehmensintegration
  • API-Referenz
    • API-Dokumentation Startseite
    • Authentifizierung
  • Kern-APIs
    • Dokumente nach semantischer Ähnlichkeit suchen
    • Dokumente abrufen
    • Inhalte von Dokumenten abrufen
    • Slack-Inhalte abrufen
    • Inhalte an Rememberizer merken
  • Konto & Konfiguration
    • Aktuelle Kontodetails des Benutzers abrufen
    • Verfügbare Datenquellenintegrationen auflisten
    • Mementos
    • Alle hinzugefügten öffentlichen Kenntnisse abrufen
  • Vektor-Speicher-APIs
    • Dokumentation zum Vektor-Speicher
    • Vektor-Speicherinformationen abrufen
    • Liste der Dokumente in einem Vektor-Speicher abrufen
    • Dokumentinformationen abrufen
    • Neues Textdokument zu einem Vektor-Speicher hinzufügen
    • Dateien in einen Vektor-Speicher hochladen
    • Dateiinhalte in einem Vektor-Speicher aktualisieren
    • Ein Dokument im Vektor-Speicher entfernen
    • Nach Dokumenten im Vektor-Speicher anhand semantischer Ähnlichkeit suchen
  • Zusätzliche Ressourcen
    • Hinweise
      • Nutzungsbedingungen
      • Datenschutzrichtlinie
      • B2B
        • Über Reddit Agent
  • Veröffentlichungen
    • Versionshinweise Startseite
  • 2025 Veröffentlichungen
    • 25. Apr 2025
    • 18. Apr 2025
    • 11. Apr 2025
    • 4. Apr 2025
    • 28. Mär 2025
    • 21. Mär 2025
    • 14. Mär 2025
    • 17. Jan 2025
  • 2024 Veröffentlichungen
    • 27. Dez 2024
    • 20. Dez 2024
    • 13. Dez 2024
    • 6. Dez 2024
  • 29. Nov 2024
  • 22. Nov 2024
  • 15. Nov 2024
  • 8. Nov 2024
  • 1. Nov 2024
  • 25. Okt 2024
  • 18. Okt 2024
  • 11. Okt 2024
  • 4. Okt 2024
  • 27. Sep 2024
  • 20. Sep 2024
  • 13. Sep 2024
  • 16. Aug 2024
  • 9. Aug 2024
  • 2. Aug 2024
  • 26. Juli 2024
  • 12. Juli 2024
  • 28. Juni 2024
  • 14. Juni 2024
  • 31. Mai 2024
  • 17. Mai 2024
  • 10. Mai 2024
  • 26. Apr 2024
  • 19. Apr 2024
  • 12. Apr 2024
  • 5. Apr 2024
  • 25. März 2024
  • 18. März 2024
  • 11. März 2024
  • 4. März 2024
  • 26. Feb 2024
  • 19. Feb 2024
  • 12. Feb 2024
  • 5. Feb 2024
  • 29. Jan 2024
  • 22. Jan 2024
  • 15. Jan 2024
  • LLM-Dokumentation
    • Rememberizer LLM Bereit Dokumentation
Powered by GitBook
On this page
  1. Vektor-Speicher-APIs

Dateien in einen Vektor-Speicher hochladen

Dateiinhalt in den Vektor-Speicher mit Batch-Operationen hochladen

PreviousNeues Textdokument zu einem Vektor-Speicher hinzufügenNextDateiinhalte in einem Vektor-Speicher aktualisieren

Last updated 22 days ago

Beispielanfragen

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"

Ersetzen Sie YOUR_API_KEY durch Ihren tatsächlichen Vector Store API-Schlüssel, vs_abc123 durch Ihre Vector Store-ID und geben Sie die Pfade zu Ihren lokalen Dateien an.

const uploadFiles = async (vectorStoreId, files) => {
  const formData = new FormData();
  
  // Fügen Sie mehrere Dateien zu den Formulardaten hinzu
  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'
      // Hinweis: Setzen Sie den Content-Type-Header nicht, er wird automatisch mit dem richtigen Boundary gesetzt
    },
    body: formData
  });
  
  const data = await response.json();
  console.log(data);
};

// Beispielverwendung mit einem Dateieingabeelement
const fileInput = document.getElementById('fileInput');
uploadFiles('vs_abc123', fileInput.files);

Ersetzen Sie YOUR_API_KEY durch Ihren tatsächlichen Vector Store API-Schlüssel und vs_abc123 durch Ihre Vector Store-ID.

import requests

def upload_files(vector_store_id, file_paths):
    headers = {
        "x-api-key": "YOUR_API_KEY"
    }
    
    files = [('files', (file_path.split('/')[-1], open(file_path, 'rb'))) for file_path in file_paths]
    
    response = requests.post(
        f"https://api.rememberizer.ai/api/v1/vector-stores/{vector_store_id}/documents/upload",
        headers=headers,
        files=files
    )
    
    data = response.json()
    print(data)

upload_files('vs_abc123', ['/path/to/document1.pdf', '/path/to/document2.docx'])

Ersetzen Sie YOUR_API_KEY durch Ihren tatsächlichen Vector Store API-Schlüssel, vs_abc123 durch Ihre Vector Store-ID und geben Sie die Pfade zu Ihren lokalen Dateien an.

require 'net/http'
require 'uri'
require 'json'

def upload_files(vector_store_id, file_paths)
  uri = URI("https://api.rememberizer.ai/api/v1/vector-stores/#{vector_store_id}/documents/upload")
  
  # Erstellen Sie ein neues HTTP-Objekt
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true
  
  # Erstellen Sie eine Multipart-Form-Anfrage
  request = Net::HTTP::Post.new(uri)
  request['x-api-key'] = 'YOUR_API_KEY'
  
  # Erstellen Sie ein Multipart-Boundary
  boundary = "RubyFormBoundary#{rand(1000000)}"
  request['Content-Type'] = "multipart/form-data; boundary=#{boundary}"
  
  # Erstellen Sie den Anfragekörper
  body = []
  file_paths.each do |file_path|
    file_name = File.basename(file_path)
    file_content = File.read(file_path, mode: 'rb')
    
    body << "--#{boundary}\r\n"
    body << "Content-Disposition: form-data; name=\"files\"; filename=\"#{file_name}\"\r\n"
    body << "Content-Type: #{get_content_type(file_name)}\r\n\r\n"
    body << file_content
    body << "\r\n"
  end
  body << "--#{boundary}--\r\n"
  
  request.body = body.join
  
  # Senden Sie die Anfrage
  response = http.request(request)
  
  # Analysieren und geben Sie die Antwort zurück
  JSON.parse(response.body)
end

Hilfsmethode zur Bestimmung des Inhalts Typs

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

Beispielverwendung

result = upload_files('vs_abc123', ['/path/to/document1.pdf', '/path/to/document2.docx']) puts result


<div data-gb-custom-block data-tag="hint" data-style='info'>

Ersetzen Sie `YOUR_API_KEY` durch Ihren tatsächlichen Vector Store API-Schlüssel, `vs_abc123` durch Ihre Vector Store-ID und geben Sie die Pfade zu Ihren lokalen Dateien an.

</div>

</div>

</div>

## Pfadparameter

| Parameter          | Typ    | Beschreibung                                                      |
|--------------------|--------|------------------------------------------------------------------|
| vector-store-id    | string | **Erforderlich.** Die ID des Vektor-Speichers, in den Dateien hochgeladen werden sollen. |

## Anfragekörper

Dieser Endpunkt akzeptiert eine `multipart/form-data`-Anfrage mit einer oder mehreren Dateien im Feld `files`.

## Antwortformat

```json
{
  "documents": [
    {
      "id": 1234,
      "name": "document1.pdf",
      "type": "application/pdf",
      "size": 250000,
      "status": "processing",
      "created": "2023-06-15T10:15:00Z",
      "vector_store": "vs_abc123"
    },
    {
      "id": 1235,
      "name": "document2.docx",
      "type": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
      "size": 180000,
      "status": "processing",
      "created": "2023-06-15T10:15:00Z",
      "vector_store": "vs_abc123"
    }
  ],
  "errors": []
}

Wenn einige Dateien nicht hochgeladen werden können, werden sie im errors-Array aufgelistet:

{
  "documents": [
    {
      "id": 1234,
      "name": "document1.pdf",
      "type": "application/pdf",
      "size": 250000,
      "status": "processing",
      "created": "2023-06-15T10:15:00Z",
      "vector_store": "vs_abc123"
    }
  ],
  "errors": [
    {
      "file": "document2.docx",
      "error": "Dateiformat nicht unterstützt"
    }
  ]
}

Authentifizierung

Dieser Endpunkt erfordert eine Authentifizierung mit einem API-Schlüssel im x-api-key-Header.

Unterstützte Dateiformate

  • PDF (.pdf)

  • Microsoft Word (.doc, .docx)

  • Microsoft Excel (.xls, .xlsx)

  • Microsoft PowerPoint (.ppt, .pptx)

  • Textdateien (.txt)

  • Markdown (.md)

  • JSON (.json)

  • HTML (.html, .htm)

Dateigrößenbeschränkungen

  • Maximale Dateigröße pro Datei: 50MB

  • Maximale Gesamtgröße der Anfrage: 100MB

  • Maximale Anzahl von Dateien pro Anfrage: 20

Fehlerantworten

Statuscode
Beschreibung

400

Ungültige Anfrage - Keine Dateien bereitgestellt oder ungültiges Anfrageformat

401

Nicht autorisiert - Ungültiger oder fehlender API-Schlüssel

404

Nicht gefunden - Vektor-Speicher nicht gefunden

413

Payload zu groß - Dateien überschreiten das Größenlimit

415

Nicht unterstützter Medientyp - Dateiformat wird nicht unterstützt

500

Interner Serverfehler

207

Multi-Status - Einige Dateien wurden erfolgreich hochgeladen, andere sind fehlgeschlagen

Verarbeitungsstatus

  • done: Dokument wurde erfolgreich verarbeitet

  • error: Während der Verarbeitung ist ein Fehler aufgetreten

  • processing: Dokument wird noch verarbeitet

Die Verarbeitungszeit hängt von der Dateigröße und -komplexität ab. Die typische Verarbeitungszeit liegt zwischen 30 Sekunden und 5 Minuten pro Dokument.

Batch-Operationen

Um mehrere Dateien effizient in Ihren Vector Store hochzuladen, unterstützt Rememberizer Batch-Operationen. Dieser Ansatz hilft, die Leistung beim Umgang mit einer großen Anzahl von Dokumenten zu optimieren.

Batch-Upload-Implementierung

import os
import requests
import time
import concurrent.futures
from pathlib import Path

def batch_upload_to_vector_store(vector_store_id, folder_path, batch_size=5, file_types=None):
    """
    Laden Sie alle Dateien aus einem Verzeichnis in Chargen in einen Vektorstore hoch
    
    Args:
        vector_store_id: ID des Vektorstores
        folder_path: Pfad zum Ordner mit den hochzuladenden Dateien
        batch_size: Anzahl der Dateien, die in jeder Charge hochgeladen werden sollen
        file_types: Optionale Liste von Dateierweiterungen zum Filtern (z.B. ['.pdf', '.docx'])
        
    Returns:
        Liste der Upload-Ergebnisse
    """
    api_key = "YOUR_API_KEY"
    headers = {"x-api-key": api_key}
    
    # Liste der Dateien im Verzeichnis abrufen
    files = []
    for entry in os.scandir(folder_path):
        if entry.is_file():
            file_path = Path(entry.path)
            # Nach Dateierweiterung filtern, falls angegeben
            if file_types is None or file_path.suffix.lower() in file_types:
                files.append(file_path)
    
    print(f"Gefunden {len(files)} Dateien zum Hochladen")
    results = []
    
    # Dateien in Chargen verarbeiten
    for i in range(0, len(files), batch_size):
        batch = files[i:i+batch_size]
        print(f"Verarbeite Charge {i//batch_size + 1}/{(len(files) + batch_size - 1)//batch_size}: {len(batch)} Dateien")
        
        # Charge hochladen
        upload_files = []
        for file_path in batch:
            upload_files.append(('files', (file_path.name, open(file_path, 'rb'))))
        
        try:
            response = requests.post(
                f"https://api.rememberizer.ai/api/v1/vector-stores/{vector_store_id}/documents/upload",
                headers=headers,
                files=upload_files
            )
            
            # Alle Datei-Handles schließen
            for _, (_, file_obj) in upload_files:
                file_obj.close()
            
            if response.status_code in (200, 201, 207):
                batch_result = response.json()
                results.append(batch_result)
                print(f"Charge erfolgreich hochgeladen - {len(batch_result.get('documents', []))} Dokumente verarbeitet")
                
                # Auf Fehler überprüfen
                if batch_result.get('errors') and len(batch_result['errors']) > 0:
                    print(f"Aufgetretene Fehler: {len(batch_result['errors'])}")
                    for error in batch_result['errors']:
                        print(f"- {error['file']}: {error['error']}")
            else:
                print(f"Batch-Upload fehlgeschlagen mit Statuscode {response.status_code}: {response.text}")
                results.append({"error": f"Batch fehlgeschlagen: {response.text}"})
                
        except Exception as e:
            print(f"Ausnahme während des Batch-Uploads: {str(e)}")
            results.append({"error": str(e)})
            
            # Alle verbleibenden Datei-Handles im Falle einer Ausnahme schließen
            for _, (_, file_obj) in upload_files:
                try:
                    file_obj.close()
                except:
                    pass
        
        # Ratenbegrenzung - Pause zwischen den Chargen
        if i + batch_size < len(files):
            print("Pause vor der nächsten Charge...")
            time.sleep(2)
    
    return results

# Beispielverwendung
results = batch_upload_to_vector_store(
    'vs_abc123',
    '/path/to/documents/folder',
    batch_size=5,
    file_types=['.pdf', '.docx', '.txt']
)
/**
 * Dateien in Batches in einen Vektor-Speicher hochladen
 * 
 * @param {string} vectorStoreId - ID des Vektor-Speichers
 * @param {FileList|File[]} files - Zu ladende Dateien
 * @param {Object} options - Konfigurationsoptionen
 * @returns {Promise<Array>} - Liste der Upload-Ergebnisse
 */
async function batchUploadToVectorStore(vectorStoreId, files, options = {}) {
  const {
    batchSize = 5,
    delayBetweenBatches = 2000,
    onProgress = null
  } = options;
  
  const apiKey = 'YOUR_API_KEY';
  const results = [];
  const fileList = Array.from(files);
  const totalBatches = Math.ceil(fileList.length / batchSize);
  
  console.log(`Bereite den Upload von ${fileList.length} Dateien in ${totalBatches} Batches vor`);
  
  // Dateien in Batches verarbeiten
  for (let i = 0; i < fileList.length; i += batchSize) {
    const batch = fileList.slice(i, i + batchSize);
    const batchNumber = Math.floor(i / batchSize) + 1;
    
    console.log(`Verarbeite Batch ${batchNumber}/${totalBatches}: ${batch.length} Dateien`);
    
    if (onProgress) {
      onProgress({
        currentBatch: batchNumber,
        totalBatches: totalBatches,
        filesInBatch: batch.length,
        totalFiles: fileList.length,
        completedFiles: i
      });
    }
    
    // FormData für diesen Batch erstellen
    const formData = new FormData();
    batch.forEach(file => {
      formData.append('files', file);
    });
    
    try {
      const response = await fetch(
        `https://api.rememberizer.ai/api/v1/vector-stores/${vectorStoreId}/documents/upload`,
        {
          method: 'POST',
          headers: {
            'x-api-key': apiKey
          },
          body: formData
        }
      );
      
      if (response.ok) {
        const batchResult = await response.json();
        results.push(batchResult);
        
        console.log(`Batch erfolgreich hochgeladen - ${batchResult.documents?.length || 0} Dokumente verarbeitet`);
        
        // Auf Fehler prüfen
        if (batchResult.errors && batchResult.errors.length > 0) {
          console.warn(`Fehler aufgetreten: ${batchResult.errors.length}`);
          batchResult.errors.forEach(error => {
            console.warn(`- ${error.file}: ${error.error}`);
          });
        }
      } else {
        console.error(`Batch-Upload fehlgeschlagen mit Status ${response.status}: ${await response.text()}`);
        results.push({ error: `Batch fehlgeschlagen mit Status: ${response.status}` });
      }
    } catch (error) {
      console.error(`Ausnahme während des Batch-Uploads: ${error.message}`);
      results.push({ error: error.message });
    }
    
    // Verzögerung zwischen den Batches hinzufügen, um Ratenbegrenzung zu vermeiden
    if (i + batchSize < fileList.length) {
      console.log(`Pause für ${delayBetweenBatches}ms vor dem nächsten Batch...`);
      await new Promise(resolve => setTimeout(resolve, delayBetweenBatches));
    }
  }
  
  console.log(`Upload abgeschlossen. ${fileList.length} Dateien verarbeitet.`);
  return results;
}

// Beispielverwendung mit Dateieingabeelement
document.getElementById('upload-button').addEventListener('click', async () => {
  const fileInput = document.getElementById('file-input');
  const vectorStoreId = 'vs_abc123';
  
  const progressBar = document.getElementById('progress-bar');
  
  try {
    const results = await batchUploadToVectorStore(vectorStoreId, fileInput.files, {
      batchSize: 5,
      onProgress: (progress) => {
        // Fortschritts-UI aktualisieren
        const percentage = Math.round((progress.completedFiles / progress.totalFiles) * 100);
        progressBar.style.width = `${percentage}%`;
        progressBar.textContent = `${percentage}% (Batch ${progress.currentBatch}/${progress.totalBatches})`;
      }
    });
    
    console.log('Vollständige Upload-Ergebnisse:', results);
  } catch (error) {
    console.error('Upload fehlgeschlagen:', error);
  }
});
require 'net/http'
require 'uri'
require 'json'
require 'mime/types'

# Dateien in Chargen in einen Vektor-Store hochladen
#
# @param vector_store_id [String] ID des Vektor-Speichers
# @param folder_path [String] Pfad zum Ordner, der die hochzuladenden Dateien enthält
# @param batch_size [Integer] Anzahl der Dateien, die in jedem Batch hochgeladen werden sollen
# @param file_types [Array<String>] Optionales Array von Dateierweiterungen zur Filterung
# @param delay_between_batches [Float] Sekunden, die zwischen den Batches gewartet werden sollen
# @return [Array] Liste der Upload-Ergebnisse
def batch_upload_to_vector_store(vector_store_id, folder_path, batch_size: 5, file_types: nil, delay_between_batches: 2.0)
  api_key = 'YOUR_API_KEY'
  results = []
  
  # Liste der Dateien im Verzeichnis abrufen
  files = Dir.entries(folder_path)
    .select { |f| File.file?(File.join(folder_path, f)) }
    .select { |f| file_types.nil? || file_types.include?(File.extname(f).downcase) }
    .map { |f| File.join(folder_path, f) }
  
  puts "Gefunden: #{files.count} Dateien zum Hochladen"
  total_batches = (files.count.to_f / batch_size).ceil
  
  # Dateien in Batches verarbeiten
  files.each_slice(batch_size).with_index do |batch, batch_index|
    puts "Verarbeite Batch #{batch_index + 1}/#{total_batches}: #{batch.count} Dateien"
    
    # HTTP-Anfrage vorbereiten
    uri = URI("https://api.rememberizer.ai/api/v1/vector-stores/#{vector_store_id}/documents/upload")
    request = Net::HTTP::Post.new(uri)
    request['x-api-key'] = api_key
    
    # Erstelle eine Multipart-Form-Grenze
    boundary = "RubyBoundary#{rand(1000000)}"
    request['Content-Type'] = "multipart/form-data; boundary=#{boundary}"
    
    # Baue den Anfragekörper
    body = []
    batch.each do |file_path|
      file_name = File.basename(file_path)
      mime_type = MIME::Types.type_for(file_path).first&.content_type || 'application/octet-stream'
      
      begin
        file_content = File.binread(file_path)
        
        body << "--#{boundary}\r\n"
        body << "Content-Disposition: form-data; name=\"files\"; filename=\"#{file_name}\"\r\n"
        body << "Content-Type: #{mime_type}\r\n\r\n"
        body << file_content
        body << "\r\n"
      rescue => e
        puts "Fehler beim Lesen der Datei #{file_path}: #{e.message}"
      end
    end
    body << "--#{boundary}--\r\n"
    
    request.body = body.join
    
    # Anfrage senden
    begin
      http = Net::HTTP.new(uri.host, uri.port)
      http.use_ssl = true
      response = http.request(request)
      
      if response.code.to_i == 200 || response.code.to_i == 201 || response.code.to_i == 207
        batch_result = JSON.parse(response.body)
        results << batch_result
        
        puts "Batch erfolgreich hochgeladen - #{batch_result['documents']&.count || 0} Dokumente verarbeitet"
        
        # Auf Fehler prüfen
        if batch_result['errors'] && !batch_result['errors'].empty?
          puts "Aufgetretene Fehler: #{batch_result['errors'].count}"
          batch_result['errors'].each do |error|
            puts "- #{error['file']}: #{error['error']}"
          end
        end
      else
        puts "Batch-Upload fehlgeschlagen mit Statuscode #{response.code}: #{response.body}"
        results << { "error" => "Batch fehlgeschlagen: #{response.body}" }
      end
    rescue => e
      puts "Ausnahme während des Batch-Uploads: #{e.message}"
      results << { "error" => e.message }
    end
    
    # Ratenbegrenzung - Pause zwischen Batches
    if batch_index < total_batches - 1
      puts "Pause für #{delay_between_batches} Sekunden vor dem nächsten Batch..."
      sleep(delay_between_batches)
    end
  end
  
  puts "Upload abgeschlossen. Verarbeitet: #{files.count} Dateien."
  results
end

# Beispielverwendung
results = batch_upload_to_vector_store(
  'vs_abc123',
  '/path/to/documents/folder',
  batch_size: 5,
  file_types: ['.pdf', '.docx', '.txt'],
  delay_between_batches: 2.0
)

Batch-Upload-Best Practices

Um die Leistung und Zuverlässigkeit beim Hochladen großer Dateimengen zu optimieren:

  1. Batch-Größe verwalten: Halten Sie die Batch-Größen zwischen 5-10 Dateien für optimale Leistung. Zu viele Dateien in einer einzigen Anfrage erhöhen das Risiko von Zeitüberschreitungen.

  2. Ratenbegrenzung implementieren: Fügen Sie zwischen den Batches Verzögerungen hinzu (2-3 Sekunden empfohlen), um API-Ratenlimits zu vermeiden.

  3. Fehler-Wiederholungslogik hinzufügen: Implementieren Sie für Produktionssysteme eine Wiederholungslogik für fehlgeschlagene Uploads mit exponentiellem Backoff.

  4. Dateitypen validieren: Filtern Sie Dateien vorab, um sicherzustellen, dass es sich um unterstützte Typen handelt, bevor Sie den Upload versuchen.

  5. Batch-Fortschritt überwachen: Bieten Sie für benutzerorientierte Anwendungen Rückmeldungen zum Fortschritt bei Batch-Operationen.

  6. Teilweise Erfolge behandeln: Die API kann einen Statuscode 207 für teilweise Erfolge zurückgeben. Überprüfen Sie immer die Status einzelner Dokumente.

  7. Ressourcen bereinigen: Stellen Sie sicher, dass alle Dateihandles ordnungsgemäß geschlossen werden, insbesondere wenn Fehler auftreten.

  8. Weise parallelisieren: Bei sehr großen Uploads (Tausende von Dateien) sollten Sie mehrere gleichzeitige Batch-Prozesse in verschiedene Vektor-Speicher anvisieren und die Ergebnisse später bei Bedarf kombinieren.

  9. Prüfziffern implementieren: Überprüfen Sie für kritische Daten die Dateiintegrität vor und nach dem Upload mit Prüfziffern.

  10. Umfassende Ergebnisse protokollieren: Führen Sie detaillierte Protokolle aller Upload-Operationen zur Fehlersuche.

Durch die Befolgung dieser Best Practices können Sie die großflächige Dokumentenaufnahme in Ihre Vektor-Speicher effizient verwalten.

Dateien werden zunächst mit dem Status processing akzeptiert. Sie können den Verarbeitungsstatus der Dokumente über den Endpunkt überprüfen. Der endgültige Status wird einer der folgenden sein:

Get a List of Documents in a Vector Store
  • POST/vector-stores/{vector-store-id}/documents/upload
  • Beispielanfragen
post

Upload files to a vector store.

Path parameters
vector-store-idstringRequired

The ID of the vector store.

Header parameters
x-api-keystringRequired

The API key for authentication.

Body
filesstring · binary[]Optional

The files to upload.

Responses
201
Files uploaded successfully.
application/json
207
Some files failed to upload.
post
POST /api/v1/vector-stores/{vector-store-id}/documents/upload HTTP/1.1
Host: api.rememberizer.ai
x-api-key: text
Content-Type: multipart/form-data
Accept: */*
Content-Length: 20

{
  "files": [
    "binary"
  ]
}
{
  "documents": [
    {
      "id": 1,
      "name": "text"
    }
  ],
  "errors": [
    {
      "file": "text",
      "error": "text"
    }
  ]
}