Questa pagina descrive come generare e archiviare gli embedding vettoriali. Per una panoramica, consulta Spazio di archiviazione per gli embedding di vettori.
Prima di iniziare
Devi disporre di un'istanza Cloud SQL con i flag di database vettoriale abilitati.
Genera embedding vettoriali in base ai dati delle righe
Puoi generare un embedding vettoriale per i dati di una determinata riga utilizzando un'API di embedding di testo come Vertex AI o OpenAI. Puoi utilizzare qualsiasi API di embedding del testo con gli embedding vettoriali Cloud SQL. Tuttavia, devi utilizzare la stessa API di embedding del testo per la generazione di vettori di stringhe di query. Non puoi combinare API diverse per i dati di origine e la vettorializzazione delle query.
Ad esempio, puoi generare un embedding vettoriale da 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()
Memorizza gli embedding vettoriali
Questa sezione fornisce istruzioni di esempio per archiviare gli incorporamenti vettoriali in Cloud SQL.
Creare una nuova tabella con una colonna di embedding di vettori
Utilizza l'istruzione CREATE TABLE
con una colonna che utilizza il tipo di dati VECTOR
.
Utilizza la seguente sintassi per creare la tabella:
CREATE TABLE TABLE_NAME(
id INTEGER
PRIMARY KEY
AUTO_INCREMENT,
title VARCHAR(60),
EMBEDDING_COLUMN_NAME
VECTOR(VECTOR_DIMENSIONS)
USING VARBINARY);
Sostituisci i seguenti parametri:
TABLE_NAME
: il nome della tabella in cui vuoi memorizzare gli embedding.EMBEDDING_COLUMN_NAME
: il nome della colonna che memorizza l'embedding.VECTOR_DIMENSIONS
: il numero di dimensioni da utilizzare per l'incorporamento.
Nell'esempio seguente, la colonna di incorporamento ha un vettore con tre dimensioni. I dati archiviati in questa colonna hanno il tipo di dati VARBINARY
.
CREATE TABLE books(
id INTEGER PRIMARY KEY AUTO_INCREMENT, title VARCHAR(60), embedding VECTOR(3) USING VARBINARY);
Aggiungere una colonna di embedding di vettori a una tabella esistente
Utilizza l'istruzione ALTER TABLE
per aggiungere una colonna di embedding di vettori a una tabella esistente. La colonna deve utilizzare il tipo di dati VECTOR
per contenere l'embedding.
Nell'esempio seguente, nella tabella viene inserita una colonna di embedding contenente un vettore con tre dimensioni. I dati archiviati in questa colonna hanno il tipo di dati VARBINARY
.
ALTER TABLE books
ADD COLUMN embedding
VECTOR(3)
USING VARBINARY;
Inserire un embedding vettoriale
Utilizza INSERT
con la funzione string_to_vector
per inserire un vettore
con valori di embedding in una tabella.
Nell'esempio seguente, un vettore con tre dimensioni viene inserito nella colonna di incorporamento.
INSERT INTO books
(
title,
embedding)
VALUES (('book title', string_to_vector('[1,2,3]')));
Inserire più incorporamenti vettoriali
Utilizza INSERT
con la
funzione string_to_vector
per inserire un elenco di embedding di vettori separati da virgole.
Nella seguente dichiarazione, due embedding, ciascuno contenente un vettore con tre dimensioni, vengono inseriti nella colonna di embedding.
INSERT INTO books
(
title,
embedding)
VALUES
(
(
'book title',
string_to_vector('[1,2,3]')),
('book title', string_to_vector('[4,5,6]')));
Esegui l'upsert di un embedding vettoriale
Utilizza un'operazione INSERT
o UPDATE
su una tabella con la
funzione string_to_vector
per aggiungere una colonna di embedding di vettori, utilizzando la seguente sintassi.
Nell'istruzione seguente viene utilizzato un upsert per inserire o aggiornare la colonna embedding con un embedding contenente un vettore con tre dimensioni.
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]');
Aggiornare un embedding vettoriale
Utilizza UPDATE
con la
funzione string_to_vector
per aggiornare un embedding vettore.
Nell'istruzione seguente, UPDATE
viene utilizzato per aggiornare la colonna di embedding con un vettore con tre dimensioni.
UPDATE books
SET embedding = string_to_vector('[7,8,9]')
WHERE id = 1;
Recupera gli embedding vettoriali
Per recuperare gli incorporamenti vettoriali, utilizza la funzione vector_to_string
di Cloud SQL insieme al nome dell'embedding.
Nell'istruzione seguente, la colonna di incorporamento viene recuperata per la visualizzazione.
SELECT vector_to_string(embedding) FROM books WHERE id = 1;
Eliminare un embedding vettoriale
Utilizza DELETE
con la
funzione string_to_vector
per rimuovere un embedding vettore da una tabella. Se è presente un indice di vettore, devi prima eliminarlo. Per ulteriori informazioni, consulta la sezione Eliminare un indice di vettore.
Nell'istruzione seguente, DELETE
viene utilizzato per eliminare il valore nella colonna di embedding.
DELETE FROM books
WHERE embedding = string_to_vector('[1,2,3]');
Passaggi successivi
- Leggi la panoramica sulla ricerca di vettori su Cloud SQL.
- Scopri come attivare e disattivare gli embedding vettoriali nella tua istanza.
- Scopri come creare indici di vettori.
- Scopri come eseguire ricerche sui vector embedding.