Komponenten

Ein DataVault-Deployment besteht aus mehreren Komponenten, die zusammenarbeiten, um Daten zu erfassen, zu verarbeiten und zu speichern. Die folgende Übersicht zeigt die wichtigsten Komponenten und ihre Funktionen.

DataVault

Der DataVault ist das Herzstück eines DataVault-Deployments. Seine Hauptaufgabe ist es, Daten aus verschiedensten Quellen zu lesen, zu verarbeiten und in der Vektordatenbank zu speichern, sowie Suchanfragen von meinGPT zu beantworten. Dazu werden die Daten mittels eines speziellen KI-Modells, dem Embedding-Modell, in Vektoren umgewandelt, die in der Vektordatenbank gespeichert werden. Dies erlaubt eine effiziente Suche nach semantisch ähnlichen Textstellen über tausende von Dokumenten hinweg.

Der DataVault wird als Docker-Image über Docker Hub unter https://hub.docker.com/r/meingpt/datavault bereitgestellt und kann auf jedem beliebigen System betrieben werden, das Docker unterstützt.

Vektor-Datenbank

Die Vektor-Datenbank speichert die vom Embedding-Modell erstellten Vektoren und ermöglicht eine effiziente Suche nach ähnlichen Vektoren. Der meinGPT DataVault nutzt die Weaviate Vektor-Datenbank, die speziell für diese Art von Anwendung entwickelt wurde.

Weaviate bietet dabei:

  • Effiziente Ähnlichkeitssuche über Millionen von Vektoren
  • Horizontale Skalierbarkeit für große Datenmengen
  • Persistente Speicherung der Vektoren und Metadaten
  • Einfache Integration über REST-API und gRPC
  • Unterstützung für verschiedene Ähnlichkeitsmetriken (Cosine, Dot Product, Euclidean)
  • Filterung der Suchergebnisse basierend auf Metadaten

Die Vektordatenbank wird als Docker-Container bereitgestellt und kann zusammen mit dem DataVault auf dem gleichen System betrieben werden.

Embedding-Modell

Das Embedding-Modell ist ein KI-Modell, das Text in mathematische Vektoren (Embeddings) umwandelt. Diese Vektoren repräsentieren die Bedeutung des Textes in einem hochdimensionalen Raum, sodass semantisch ähnliche Texte auch ähnliche Vektoren erzeugen.

Die Qualität des Embedding-Modells hat einen direkten Einfluss auf die Qualität der Suchergebnisse:

  • Je besser das Modell, desto besser versteht es die Bedeutung der Texte
  • Je mehr Dimensionen die Vektoren haben, desto genauer können Bedeutungsnuancen abgebildet werden
  • Je größer das Modell, desto mehr Rechenleistung wird benötigt

Der DataVault unterstützt verschiedene Embedding-Modelle:

  • Cloud-basierte Modelle von OpenAI, Azure und Nebius
  • Lokale Modelle von HuggingFace

Mehr Informationen zur Auswahl eines Embedding-Modells

Piko (VPN-Proxy)

Piko ist ein Reverse-Proxy, der eine sichere Verbindung zu Diensten ermöglicht, die nicht öffentlich erreichbar sind. Der DataVault nutzt Piko, um eine sichere Verbindung zwischen meinGPT und dem DataVault herzustellen.

Dabei öffnet der DataVault eine ausgehende Verbindung (Tunnel) zu Piko, über die dann der gesamte Datenverkehr abgewickelt wird. Dies hat mehrere Vorteile:

  • Der DataVault benötigt keine öffentlich erreichbare IP-Adresse oder Port
  • Die Verbindung ist verschlüsselt und authentifiziert
  • Der DataVault kann hinter einer Firewall oder NAT betrieben werden
  • Es werden nur ausgehende Verbindungen benötigt

Piko ist als Open-Source-Alternative zu Ngrok konzipiert und bietet:

  • Clustering für Ausfallsicherheit und horizontale Skalierung
  • Zero-Downtime Deployments
  • Einfache Integration in Kubernetes
  • Monitoring über Prometheus

Mehr Informationen zu Piko auf GitHub