En esta página, se describe cómo generar y almacenar incorporaciones vectoriales. Para obtener una descripción general, consulta Almacenamiento de embeddings de vectores.
Antes de comenzar
Debes tener una instancia de Cloud SQL con las marcas de base de datos vectoriales habilitadas.
Genera embeddings de vectores según los datos de las filas
Puedes generar un embedding de vectores para los datos de una fila determinada mediante una API de embedding de texto, como OpenAI o Vertex AI. Puedes usar cualquier API de embedding de texto con embeddings de vectores de Cloud SQL. Sin embargo, debes usar la misma API de incorporación de texto para la generación de vectores de cadena de consulta. No puedes combinar diferentes APIs para los datos de origen y la vectorización de consultas.
Por ejemplo, puedes generar un embedding de vectores desde 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()
Almacena embeddings de vectores
En esta sección, se proporcionan instrucciones de ejemplo para almacenar embeddings de vectores en Cloud SQL.
Crea una tabla nueva con una columna de embeddings de vectores
Usa la sentencia CREATE TABLE
con una columna que use el tipo de datos VECTOR
.
Usa la siguiente sintaxis para crear la tabla:
CREATE TABLE TABLE_NAME(
id INTEGER
PRIMARY KEY
AUTO_INCREMENT,
title VARCHAR(60),
EMBEDDING_COLUMN_NAME
VECTOR(VECTOR_DIMENSIONS)
USING VARBINARY);
Reemplaza los siguientes parámetros:
TABLE_NAME
: Es el nombre de la tabla en la que deseas almacenar las incorporaciones.EMBEDDING_COLUMN_NAME
: Es el nombre de la columna que almacena la incorporación.VECTOR_DIMENSIONS
: Es la cantidad de dimensiones que se usarán para la incorporación.
En el siguiente ejemplo, la columna de incorporación tiene un vector con tres
dimensiones. Los datos almacenados en esta columna tienen el tipo de datos VARBINARY
.
CREATE TABLE books(
id INTEGER PRIMARY KEY AUTO_INCREMENT, title VARCHAR(60), embedding VECTOR(3) USING VARBINARY);
Agrega una columna de embeddings de vectores a una tabla existente
Usa la sentencia ALTER TABLE
para agregar una columna de embeddings de vectores a una tabla
existente. La columna debe usar el tipo de datos VECTOR
para contener la incorporación.
En el siguiente ejemplo, se inserta en la tabla una columna de incorporación que tiene un vector con tres
dimensiones. Los datos almacenados en esta columna tienen el tipo de datos VARBINARY
.
ALTER TABLE books
ADD COLUMN embedding
VECTOR(3)
USING VARBINARY;
Inserta un embedding de vectores
Usa INSERT
con la función string_to_vector
para insertar un vector que incorpore valores en una tabla.
En el siguiente ejemplo, se inserta un vector con tres dimensiones en la columna de embedding.
INSERT INTO books
(
title,
embedding)
VALUES (('book title', string_to_vector('[1,2,3]')));
Inserta varios embeddings de vectores
Usa INSERT
con la
función string_to_vector
para insertar una lista de incorporaciones de vectores separadas por comas.
En la siguiente sentencia, se insertan dos incorporaciones, cada una con un vector con tres dimensiones, en la columna de incorporación.
INSERT INTO books
(
title,
embedding)
VALUES
(
(
'book title',
string_to_vector('[1,2,3]')),
('book title', string_to_vector('[4,5,6]')));
Inserta y actualiza un embedding de vectores
Usa una operación INSERT
o UPDATE
en una tabla con la
función string_to_vector
para agregar una columna de incorporación de vectores con la siguiente sintaxis.
En la siguiente sentencia, se usa una inserción y actualización para insertar o actualizar la columna de incorporación con una incorporación que contiene un vector con tres dimensiones.
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]');
Actualiza un embedding de vectores
Usa UPDATE
con la función string_to_vector
para actualizar un embedding de vectores.
En la siguiente sentencia, se usa UPDATE
para actualizar la columna de incorporación con un vector con tres dimensiones.
UPDATE books
SET embedding = string_to_vector('[7,8,9]')
WHERE id = 1;
Cómo recuperar embeddings de vectores
Para recuperar embeddings de vectores, usa la función vector_to_string
de Cloud SQL junto con el nombre de la embedding.
En la siguiente sentencia, se recupera la columna de incorporación para verla.
SELECT vector_to_string(embedding) FROM books WHERE id = 1;
Borra un embedding de vectores
Usa DELETE
con la función string_to_vector
para quitar una incorporación de vectores de una tabla. Si hay un índice vectorial, primero debes
borrarlo. Para obtener más información, consulta Cómo soltar un índice vectorial.
En la siguiente sentencia, se usa DELETE
para borrar el valor de la columna de incorporación.
DELETE FROM books
WHERE embedding = string_to_vector('[1,2,3]');
¿Qué sigue?
- Lee la descripción general de la búsqueda vectorial en Cloud SQL.
- Obtén información para habilitar y deshabilitar las incorporaciones vectoriales en tu instancia.
- Obtén más información para crear índices vectoriales.
- Obtén información para realizar búsquedas en incorporaciones vectoriales.