Vector Assist ist eine AlloyDB for PostgreSQL-Erweiterung, die ein deklaratives SQL-Framework für die Bereitstellung und Verwaltung von Vektorsuch-Arbeitslasten bietet. Anstatt die Einbettungsgenerierung, Indexparameter und Abfrageoptimierung manuell zu konfigurieren, deklarieren Sie Ihre Arbeitslastanforderungen wie die Zieltabelle, die Quelltextspalte und das Recall-Ziel mithilfe von SQL-Funktionen.
Basierend auf Ihrer Vektorspezifikation verwendet Vector Assist einen Algorithmus zur automatischen Abstimmung, um optimierte SQL-Empfehlungen mit Erläuterungen zu generieren, die Sie prüfen, ändern und anwenden können. Mit diesem Workflow können Sie produktionsreife semantische Suchanwendungen mit minimalem manuellem Einrichtungsaufwand prototypisieren und bereitstellen.
So funktioniert die Vektorunterstützung
Für Vector Assist müssen Sie Ihre Vektorspezifikationen definieren. Das Framework verwendet diese Vektorspezifikationen, um die Schritte zu generieren, die zum Erstellen eines Vektorindex erforderlich sind. Der Vektorassistent gibt die Schritte, die zum Bereitstellen Ihrer Vektorarbeitslast erforderlich sind, als Empfehlungen aus. Jedes Mal, wenn Sie Ihre Vektorspezifikation ändern, werden die Empfehlungen von Vector Assist neu generiert.
Nachdem Sie den Vektorindex mit diesen empfohlenen Schritten generiert haben, können Sie mit dem Vektorassistenten optimierte Suchanfragen generieren.
Spezifikation für Vector Assist
Der erste Schritt bei der Verwendung von Vector Assist ist das Einrichten der Vektorindexspezifikation oder Vektorspezifikation. Eine Vektorspezifikation ist ein Objekt, in dem Sie die Absicht und die Anforderungen für Ihre Vektorarbeitslast definieren. Sie enthält alle erforderlichen Informationen, einschließlich der folgenden:
- Tabellen und relevante Spalten (Text oder Vektor)
- Einstellungen für das Einbettungsmodell (wenn die Einbettungsgenerierung verwendet wird)
- Bevorzugter Indextyp:
HNSWoderIVFFlat.ScaNNwird nicht unterstützt. - Ziel-Recall für Suchanfragen
- Einschränkungen der gemerkten Informationen
Sie definieren die Vektorspezifikation mit der Funktion vector_assist.define_spec und können sie jederzeit ändern. Das System weist jeder Spezifikation eine eindeutige ID zu und speichert sie in einer Tabelle namens vector_assist.VECTOR_SPECS.
Vector Assist leitet die Spezifikationseingaben und einen optimierten Algorithmus für die automatische Abstimmung ab, der die optimale Indexkonfiguration berechnet. Obwohl Vector Assist diese Werte verwendet, um den Entwicklungsprozess zu vereinfachen, können Sie sie an Ihre Anforderungen anpassen.
Vector Assist-Empfehlungen
Nachdem Sie die Vektorspezifikation definiert haben, verarbeitet der Vektorassistent Ihre Eingabe und generiert Empfehlungen. Diese Empfehlungen sind eine sortierte Liste nützlicher Schritte, in der Regel SQL-Befehle, die Sie ausführen müssen, um Ihre Vektorarbeitslast gemäß Ihren Spezifikationen bereitzustellen. Jede Empfehlung enthält Folgendes:
- Die auszuführende SQL-Abfrage.
- Eine detaillierte Erklärung dazu, was die Abfrage bewirkt und warum sie empfohlen wird.
- Informationen zu potenziellen Kompromissen oder Kosten, z. B. zur geschätzten Indexgröße oder Erstellungszeit.
Vector Assist speichert Empfehlungen in einer Tabelle namens vector_assist.RECOMMENDATIONS. Sie können sie einzeln oder insgesamt prüfen, ändern und anwenden.
Jedes Mal, wenn Sie die Vektorspezifikation für Ihre Arbeitslast ändern, generiert Vector Assist die Empfehlungen neu, um den aktualisierten Spezifikationen zu entsprechen.
Beschränkungen
Beachten Sie bei der Verwendung des Vektorassistenten mit Ihren AlloyDB-Instanzen die folgenden Einschränkungen:
- Der Vektorassistent unterstützt nur PostgreSQL-Versionen ab 17.
- Obwohl Vector Assist alle
pgvector-Versionen unterstützt, empfehlen wir die Verwendung der neuesten Version, um eine optimale Leistung und Funktionsunterstützung zu erzielen. Weitere Informationen finden Sie impgvector-Änderungsprotokoll. - Wenn Ihre Instanz die Erweiterung
google_ml_integrationzum Generieren von Einbettungen verwendet, gelten die Einschränkungen auch, wenn Sie die Vektorunterstützung verwenden. Weitere Informationen finden Sie unter Remote-KI-Modelle in AlloyDB registrieren und aufrufen – Übersicht. - Der Vektorassistent unterstützt nur die Indextypen
HNSWundIVFFlat.ScaNN-Indextypen werden nicht unterstützt. - Der Vektorassistent unterstützt nur Texteinbettungsmodelle für die automatische Generierung von Einbettungen und verwendet
text_column_nameals Eingabeparameter. Wenn Ihre Vektorarbeitslast ein multimodales Einbettungsmodell erfordert, verwenden Sie die Erweiterunggoogle_ml_integrationoder eine andere Erweiterung, um diese Einbettungen manuell zu generieren, bevor Sie die Vektorunterstützung verwenden, um die semantische Suche für diese Einbettungen zu aktivieren.