Cette page explique comment générer et stocker des représentations vectorielles continues. Pour en savoir plus, consultez la section Stockage de représentations vectorielles continues.
Avant de commencer
Vous devez disposer d'une instance Cloud SQL avec les options de base de données vectorielle activées.
Générer des embeddings basés sur des données de ligne
Vous pouvez générer un embedding vectoriel pour les données d'une ligne spécifique, à l'aide d'une API d'embedding de texte telle que Vertex AI ou OpenAI. Vous pouvez utiliser n'importe quelle API d'embedding de texte avec des embeddings vectoriels Cloud SQL. Toutefois, vous devez utiliser la même API d'embedding de texte pour la génération de vecteurs de chaîne de requête. Vous ne pouvez pas combiner différentes API pour les données sources et la vectorisation des requêtes.
Par exemple, vous pouvez générer un embedding vectoriel à partir de Vertex AI:
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()
Stocker les embeddings vectoriels
Cette section fournit des exemples d'instructions permettant de stocker des embeddings vectoriels dans Cloud SQL.
Créer une table avec une colonne d'embeddings vectoriels
Utilisez l'instruction CREATE TABLE
avec une colonne qui utilise le type de données VECTOR
.
Utilisez la syntaxe suivante pour créer la table:
CREATE TABLE TABLE_NAME(
id INTEGER
PRIMARY KEY
AUTO_INCREMENT,
title VARCHAR(60),
EMBEDDING_COLUMN_NAME
VECTOR(VECTOR_DIMENSIONS)
USING VARBINARY);
Remplacez les paramètres suivants :
TABLE_NAME
: nom de la table dans laquelle vous souhaitez stocker les représentations vectorielles continues.EMBEDDING_COLUMN_NAME
: nom de la colonne qui stocke l'embedding.VECTOR_DIMENSIONS
: nombre de dimensions à utiliser pour l'embedding.
Dans l'exemple suivant, la colonne d'encapsulation contient un vecteur à trois dimensions. Les données stockées dans cette colonne ont le type de données VARBINARY
.
CREATE TABLE books(
id INTEGER PRIMARY KEY AUTO_INCREMENT, title VARCHAR(60), embedding VECTOR(3) USING VARBINARY);
Ajouter une colonne d'embeddings vectoriels à une table existante
Utilisez l'instruction ALTER TABLE
pour ajouter une colonne d'embeddings vectoriels à une table existante. La colonne doit utiliser le type de données VECTOR
pour contenir l'embedding.
Dans l'exemple suivant, une colonne d'embedding contenant un vecteur à trois dimensions est insérée dans la table. Les données stockées dans cette colonne ont le type de données VARBINARY
.
ALTER TABLE books
ADD COLUMN embedding
VECTOR(3)
USING VARBINARY;
Insérer un embedding vectoriel
Utilisez INSERT
avec la fonction string_to_vector
pour insérer des valeurs d'encapsulation vectorielle dans un tableau.
Dans l'exemple suivant, un vecteur à trois dimensions est inséré dans la colonne d'embedding.
INSERT INTO books
(
title,
embedding)
VALUES (('book title', string_to_vector('[1,2,3]')));
Insérer plusieurs embeddings vectoriels
Utilisez INSERT
avec la fonction string_to_vector
pour insérer une liste d'embeddings vectoriels séparés par des virgules.
Dans l'instruction suivante, deux embeddings, chacun contenant un vecteur à trois dimensions, sont insérés dans la colonne d'embedding.
INSERT INTO books
(
title,
embedding)
VALUES
(
(
'book title',
string_to_vector('[1,2,3]')),
('book title', string_to_vector('[4,5,6]')));
Effectuer une opération upsert sur un embedding vectoriel
Utilisez une opération INSERT
ou UPDATE
sur une table avec la fonction string_to_vector
pour ajouter une colonne d'embedding vectoriel, en utilisant la syntaxe suivante.
Dans l'instruction suivante, une opération upsert est utilisée pour insérer ou mettre à jour la colonne d'embedding avec un embedding contenant un vecteur à trois dimensions.
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]');
Mettre à jour un embedding vectoriel
Utilisez UPDATE
avec la fonction string_to_vector
pour mettre à jour un embedding vectoriel.
Dans l'instruction suivante, UPDATE
est utilisé pour mettre à jour la colonne d'embedding avec un vecteur à trois dimensions.
UPDATE books
SET embedding = string_to_vector('[7,8,9]')
WHERE id = 1;
Récupérer des embeddings vectoriels
Pour récupérer des embeddings vectoriels, utilisez la fonction vector_to_string
Cloud SQL avec le nom de l'embedding.
Dans l'instruction suivante, la colonne d'embedding est récupérée pour être affichée.
SELECT vector_to_string(embedding) FROM books WHERE id = 1;
Supprimer un embedding vectoriel
Utilisez DELETE
avec la fonction string_to_vector
pour supprimer un embedding vectoriel d'une table. Si un index vectoriel existe, vous devez d'abord le supprimer. Pour en savoir plus, consultez la section Supprimer un indice vectoriel.
Dans l'instruction suivante, DELETE
permet de supprimer la valeur de la colonne d'encapsulation.
DELETE FROM books
WHERE embedding = string_to_vector('[1,2,3]');
Étape suivante
- Consultez la présentation de la recherche vectorielle dans Cloud SQL.
- Découvrez comment activer et désactiver les embeddings vectoriels sur votre instance.
- Découvrez comment créer des index vectoriels.
- Découvrez comment effectuer des recherches sur des embeddings vectoriels.