Zum Hauptinhalt springen
Warnung

Dieses Tutorial ist ein Community-Beitrag und wird vom Open WebUI-Team nicht unterstützt. Es dient lediglich als Demonstration, wie Open WebUI für Ihren spezifischen Anwendungsfall angepasst werden kann. Möchten Sie beitragen? Schauen Sie sich das Tutorial zum Beitragen an.

🪣 Wechsel zu S3-Speicher

Diese Anleitung bietet Anweisungen zum Wechseln des standardmäßigen lokalen Speichers in der Open WebUI-Konfiguration zu Amazon S3.

Voraussetzungen

Um dieses Tutorial befolgen zu können, müssen Sie Folgendes besitzen

  • Ein aktives AWS-Konto
  • Ein aktiver AWS Access Key und Secret Key
  • IAM-Berechtigungen in AWS zum Erstellen und Hochladen von Objekten in S3
  • Docker auf Ihrem System installiert

Was ist Amazon S3

Direkt von der AWS-Website

"Amazon S3 ist ein Objektspeicher-Service, der branchenführende Skalierbarkeit, Datenverfügbarkeit, Sicherheit und Leistung bietet. Speichern und schützen Sie beliebige Datenmengen für eine Reihe von Anwendungsfällen, wie z. B. Data Lakes, Websites, Cloud-native Anwendungen, Backups, Archive, maschinelles Lernen und Analysen. Amazon S3 ist für eine Haltbarkeit von 99,999999999 % (11 Neunen) ausgelegt und speichert Daten für Millionen von Kunden auf der ganzen Welt."

Um mehr über S3 zu erfahren, besuchen Sie: Offizielle Seite von Amazon S3

Einrichtung

1. Erforderliche Umgebungsvariablen

Um diese Option zu konfigurieren, müssen Sie die folgenden Umgebungsvariablen sammeln

Open-WebUI UmgebungsvariableBeispielwert
S3_ACCESS_KEY_IDABC123
S3_SECRET_ACCESS_KEYSuperGeheim
S3_ENDPOINT_URLhttps://s3.us-east-1.amazonaws.com
S3_REGION_NAMEus-east-1
S3_BUCKET_NAMEmein-toller-bucket-name
  • S3_ACCESS_KEY_ID: Dies ist ein Identifikator für den Zugriffsschlüssel Ihres AWS-Kontos. Sie erhalten diesen von der AWS Management Console oder der AWS CLI bei der Erstellung eines Zugriffsschlüssels.
  • S3_SECRET_ACCESS_KEY: Dies ist der geheime Teil Ihres AWS-Zugriffsschlüsselpaars. Er wird bei der Erstellung eines Zugriffsschlüssels in AWS bereitgestellt und sollte sicher aufbewahrt werden.
  • S3_ENDPOINT_URL: Diese URL verweist auf den Endpunkt Ihres S3-Dienstes und kann typischerweise in der AWS-Diensteverwaltung oder den Kontoeinstellungen gefunden werden.
  • S3_REGION_NAME: Dies ist die AWS-Region, in der sich Ihr S3-Bucket befindet, z. B. "us-east-1". Sie können dies in der AWS Management Console unter den Details Ihres S3-Buckets identifizieren.
  • S3_BUCKET_NAME: Dies ist der eindeutige Name Ihres S3-Buckets, den Sie bei der Erstellung des Buckets in AWS angegeben haben.

Eine vollständige Liste der verfügbaren S3-Endpunkt-URLs finden Sie unter: Amazon S3 Reguläre Endpunkte

Sehen Sie sich alle Cloud Storage-Konfigurationsoptionen hier an: Open-WebUI Cloud Storage Konfiguration

2. Open-WebUI ausführen

Bevor wir unsere Instanz von Open-WebUI starten, müssen wir noch eine letzte Umgebungsvariable namens STORAGE_PROVIDER festlegen. Diese Variable teilt Open-WebUI mit, welchen Anbieter Sie verwenden möchten. Standardmäßig ist STORAGE_PROVIDER leer, was bedeutet, dass Open-WebUI lokalen Speicher verwendet.

SpeicheranbieterTypBeschreibungStandard
lokalstrStandardmäßig lokaler Speicher, wenn ein leerer String (' ') angegeben wirdJa
s3strVerwendet die S3-Clientbibliothek und zugehörige Umgebungsvariablen, die in Amazon S3 Storage erwähnt werden.Nein
gcsstrVerwendet die GCS-Clientbibliothek und zugehörige Umgebungsvariablen, die in Google Cloud Storage erwähnt werden.Nein

Um Amazon S3 zu verwenden, müssen wir STORAGE_PROVIDER auf "S3" setzen, zusammen mit allen Umgebungsvariablen, die wir in Schritt 1 gesammelt haben (S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY, S3_ENDPOINT_URL, S3_REGION_NAME, S3_BUCKET_NAME).

Hier setze ich auch ENV auf "dev", was uns ermöglicht, die Open-WebUI Swagger-Dokumente anzuzeigen, damit wir die S3-Speichereinrichtung weiter testen und bestätigen können, ob sie wie erwartet funktioniert.

docker run -d \
-p 3000:8080 \
-v open-webui:/app/backend/data \
-e STORAGE_PROVIDER="s3" \
-e S3_ACCESS_KEY_ID="ABC123" \
-e S3_SECRET_ACCESS_KEY="SuperSecret" \
-e S3_ENDPOINT_URL="https://s3.us-east-1.amazonaws.com" \
-e S3_REGION_NAME="us-east-1" \
-e S3_BUCKET_NAME="my-awesome-bucket-name" \
-e ENV="dev" \
--name open-webui \
ghcr.io/open-webui/open-webui:main

3. Testen der Einrichtung

Nachdem wir nun Open-WebUI ausführen, laden wir eine einfache Hallo, Welt-Textdatei hoch und testen unsere Einrichtung.

Upload a file in Open-WebUI

Und bestätigen, dass wir eine Antwort vom ausgewählten LLM erhalten.

Get a response in Open-WebUI

Großartig! Es sieht so aus, als ob alles wie erwartet in Open-WebUI funktioniert hat. Lassen Sie uns nun überprüfen, ob die Textdatei tatsächlich hochgeladen und im angegebenen S3-Bucket gespeichert wurde. Mit der AWS Management Console können wir sehen, dass sich nun eine Datei im S3-Bucket befindet. Zusätzlich zum Namen der von uns hochgeladenen Datei (hello.txt) sehen Sie, dass dem Objektnamen eine eindeutige ID angehängt wurde. So verfolgt Open-WebUI alle hochgeladenen Dateien.

Get a response in Open-WebUI

Mithilfe der Swagger-Dokumente von Open-WebUI können wir alle Informationen zu dieser Datei über den Endpunkt /api/v1/files/{id} abrufen, indem wir die eindeutige ID (4405fabb-603e-4919-972b-2b39d6ad7f5b) übergeben.

Inspect the file by ID