Auf dieser Seite wird beschrieben, wie Sie Vektoreinbettungen generieren und speichern. Eine Übersicht finden Sie unter Vektoreinbettungsspeicher.
Hinweise
Sie benötigen eine Cloud SQL-Instanz, in der die Vektordatenbank-Flags aktiviert sind.
Vektoreinbettungen auf Grundlage von Zeilendaten generieren
Sie können eine Vektoreinbettung für die Daten einer bestimmten Zeile mit einer Texteinbettungs-API wie Vertex AI oder OpenAI generieren. Sie können eine beliebige Text Embedding API mit Cloud SQL-Vektoreinbettungen verwenden. Sie müssen jedoch dieselbe Text-Embedding-API für die Vektorgenerierung von Anfragestrings verwenden. Sie können keine verschiedenen APIs für Quelldaten und die Vektorisierung von Anfragen kombinieren.
Sie können beispielsweise eine Vektoreinbettung aus Vertex AI generieren:
from vertexai.language_models import TextEmbeddingModel
def text_embedding() -> list:
"""Text embedding with a Large Language Model."""
model = TextEmbeddingModel.from_pretrained("text-embedding-004")
embeddings = model.get_embeddings(["What is life?"])
for embedding in embeddings:
vector = embedding.values
print(f"Length of Embedding Vector: {len(vector)}")
return vector
if __name__ == "__main__":
text_embedding()
Vektoreinbettungen speichern
In diesem Abschnitt finden Sie Beispielanweisungen zum Speichern von Vektoreinbettungen in Cloud SQL.
Neue Tabelle mit einer Spalte für Vektoreinbettungen erstellen
Verwenden Sie die Anweisung CREATE TABLE
mit einer Spalte, die den Datentyp VECTOR
verwendet.
Verwenden Sie die folgende Syntax, um die Tabelle zu erstellen:
CREATE TABLE TABLE_NAME(
id INTEGER
PRIMARY KEY
AUTO_INCREMENT,
title VARCHAR(60),
EMBEDDING_COLUMN_NAME
VECTOR(VECTOR_DIMENSIONS)
USING VARBINARY);
Ersetzen Sie die folgenden Parameter:
TABLE_NAME
: Der Name der Tabelle, in der Sie die Einbettungen speichern möchten.EMBEDDING_COLUMN_NAME
: Der Name der Spalte, in der die Einbettung gespeichert wird.VECTOR_DIMENSIONS
: Die Anzahl der Dimensionen, die für die Einbettung verwendet werden sollen.
Im folgenden Beispiel hat die Einbettungsspalte einen Vektor mit drei Dimensionen. Die in dieser Spalte gespeicherten Daten haben den Datentyp VARBINARY
.
CREATE TABLE books(
id INTEGER PRIMARY KEY AUTO_INCREMENT, title VARCHAR(60), embedding VECTOR(3) USING VARBINARY);
Einer vorhandenen Tabelle eine Spalte für Vektoreinbettungen hinzufügen
Mit der Anweisung ALTER TABLE
können Sie einer vorhandenen Tabelle eine Spalte für Vektoreinbettungen hinzufügen. Die Spalte muss den Datentyp VECTOR
für das Einbettungs-Array verwenden.
Im folgenden Beispiel wird eine Einbettungsspalte mit einem Vektor mit drei Dimensionen in die Tabelle eingefügt. Die in dieser Spalte gespeicherten Daten haben den Datentyp VARBINARY
.
ALTER TABLE books
ADD COLUMN embedding
VECTOR(3)
USING VARBINARY;
Vektoreinbettung einfügen
Verwenden Sie INSERT
mit der string_to_vector
-Funktion, um Vektoreinbettungswerte in eine Tabelle einzufügen.
Im folgenden Beispiel wird ein Vektor mit drei Dimensionen in die Einbettungsspalte eingefügt.
INSERT INTO books
(
title,
embedding)
VALUES (('book title', string_to_vector('[1,2,3]')));
Mehrere Vektoreinbettungen einfügen
Verwenden Sie INSERT
mit der Funktion string_to_vector
, um eine durch Kommas getrennte Liste von Vektoreinbettungen einzufügen.
In der folgenden Anweisung werden zwei Einbettungen eingefügt, die jeweils einen Vektor mit drei Dimensionen enthalten.
INSERT INTO books
(
title,
embedding)
VALUES
(
(
'book title',
string_to_vector('[1,2,3]')),
('book title', string_to_vector('[4,5,6]')));
Vektoreinbettung einfügen oder aktualisieren
Verwenden Sie einen INSERT
- oder UPDATE
-Vorgang für eine Tabelle mit der string_to_vector
-Funktion, um eine Spalte für Vektoreinbettungen hinzuzufügen. Verwenden Sie dazu die folgende Syntax.
In der folgenden Anweisung wird ein Upsert verwendet, um die Einbettungsspalte mit einer Einbettung einzufügen oder zu aktualisieren, die einen Vektor mit drei Dimensionen enthält.
INSERT INTO books
(
id,
title,
embedding)
VALUES
(
(
1,
'book title',
string_to_vector('[1,2,3]')))
ON DUPLICATE KEY UPDATE embedding = string_to_vector('[1,2,3]');
Vektoreinbettung aktualisieren
Verwenden Sie UPDATE
mit der Funktion string_to_vector
, um eine Vektoreinbettung zu aktualisieren.
In der folgenden Anweisung wird UPDATE
verwendet, um die Einbettungsspalte mit einem Vektor mit drei Dimensionen zu aktualisieren.
UPDATE books
SET embedding = string_to_vector('[7,8,9]')
WHERE id = 1;
Vektoreinbettungen abrufen
Verwenden Sie zum Abrufen von Vektoreinbettungen die Cloud SQL-Funktion vector_to_string
zusammen mit dem Namen der Einbettung.
In der folgenden Anweisung wird die Spalte „Einbettung“ abgerufen, um sie anzusehen.
SELECT vector_to_string(embedding) FROM books WHERE id = 1;
Vektoreinbettung löschen
Verwenden Sie DELETE
mit der Funktion string_to_vector
, um eine Vektoreinbettung aus einer Tabelle zu entfernen. Wenn ein Vektorindex vorhanden ist, müssen Sie ihn zuerst löschen. Weitere Informationen finden Sie unter Vektorindex löschen.
In der folgenden Anweisung wird DELETE
verwendet, um den Wert in der Spalte „Embedding“ zu löschen.
DELETE FROM books
WHERE embedding = string_to_vector('[1,2,3]');
Nächste Schritte
- Übersicht über die Vektorsuche in Cloud SQL
- Informationen zum Aktivieren und Deaktivieren von Vektoreinbettungen in Ihrer Instanz
- Vektorindexe erstellen
- Informationen zum Suchen nach Vektoreinbettungen