Esta página descreve como gerar e armazenar incorporações vetoriais. Para uma vista geral, consulte o artigo Armazenamento de incorporações vetoriais.
Antes de começar
Tem de ter uma instância do Cloud SQL com as sinalizações da base de dados vetorial ativadas.
Gere incorporações vetoriais com base nos dados das linhas
Pode gerar uma incorporação vetorial para os dados de uma determinada linha através de uma API de incorporação de texto, como a Vertex AI ou a OpenAI. Pode usar qualquer API de incorporação de texto com incorporações de vetores do Cloud SQL. No entanto, tem de usar a mesma API de incorporação de texto para a geração de vetores de strings de consulta. Não pode combinar diferentes APIs para dados de origem e vetorização de consultas.
Por exemplo, pode gerar uma incorporação vetorial a partir do 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()
Armazene incorporações vetoriais
Esta secção fornece declarações de exemplo para armazenar incorporações de vetores no Cloud SQL.
Crie uma nova tabela com uma coluna de incorporação vetorial
Use a declaração CREATE TABLE
com uma coluna que use o tipo de dados VECTOR
.
Use a seguinte sintaxe para criar a tabela:
CREATE TABLE TABLE_NAME(
id INTEGER
PRIMARY KEY
AUTO_INCREMENT,
title VARCHAR(60),
EMBEDDING_COLUMN_NAME
VECTOR(VECTOR_DIMENSIONS)
USING VARBINARY);
Substitua os seguintes parâmetros:
TABLE_NAME
: o nome da tabela onde quer armazenar as incorporações.EMBEDDING_COLUMN_NAME
: o nome da coluna que armazena a incorporação.VECTOR_DIMENSIONS
: o número de dimensões a usar para a incorporação.
No exemplo seguinte, a coluna de incorporação tem um vetor com três
dimensões. Os dados armazenados nesta coluna têm o tipo de dados VARBINARY
.
CREATE TABLE books(
id INTEGER PRIMARY KEY AUTO_INCREMENT, title VARCHAR(60), embedding VECTOR(3) USING VARBINARY);
Adicione uma coluna de incorporação vetorial a uma tabela existente
Use a declaração ALTER TABLE
para adicionar uma coluna de incorporação de vetores a uma tabela existente. A coluna tem de usar o tipo de dados VECTOR
para conter a incorporação.
No exemplo seguinte, é inserida na tabela uma coluna de incorporação que tem um vetor com três dimensões. Os dados armazenados nesta coluna têm o tipo de dados VARBINARY
.
ALTER TABLE books
ADD COLUMN embedding
VECTOR(3)
USING VARBINARY;
Insira uma incorporação vetorial
Use INSERT
com a funçãostring_to_vector
para inserir valores de incorporação de vetores numa tabela.
No exemplo seguinte, é inserido um vetor com três dimensões na coluna de incorporação.
INSERT INTO books
(
title,
embedding)
VALUES (('book title', string_to_vector('[1,2,3]')));
Insira várias incorporações vetoriais
Use INSERT
com a função string_to_vector
para inserir uma lista de incorporações de vetores separada por vírgulas.
Na seguinte declaração, existem duas incorporações, cada uma contendo um vetor com três dimensões, que são inseridas na coluna de incorporação.
INSERT INTO books
(
title,
embedding)
VALUES
(
(
'book title',
string_to_vector('[1,2,3]')),
('book title', string_to_vector('[4,5,6]')));
Inserir ou atualizar uma incorporação de vetor
Use uma operação INSERT
ou UPDATE
numa tabela com a função string_to_vector
para adicionar uma coluna de incorporação de vetores, usando a seguinte sintaxe.
Na declaração seguinte, é usado um upsert para inserir ou atualizar a coluna de incorporação com uma incorporação que contém um vetor com três dimensões.
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]');
Atualize uma incorporação vetorial
Use UPDATE
com a função string_to_vector
para atualizar uma incorporação vetorial.
Na seguinte declaração, UPDATE
é usado para atualizar a coluna de incorporação com um vetor com três dimensões.
UPDATE books
SET embedding = string_to_vector('[7,8,9]')
WHERE id = 1;
Recupere incorporações de vetores
Para obter incorporações de vetores, use a função vector_to_string
do Cloud SQL, juntamente com o nome da incorporação.
Na seguinte declaração, a coluna de incorporação é obtida para visualização.
SELECT vector_to_string(embedding) FROM books WHERE id = 1;
Elimine uma incorporação vetorial
Use DELETE
com a função string_to_vector
para remover uma incorporação vetorial de uma tabela. Se existir um índice vetorial, tem de o eliminar primeiro. Para mais informações, consulte o artigo
Elimine um índice vetorial.
Na declaração seguinte, DELETE
é usado para eliminar o valor na coluna de incorporação.
DELETE FROM books
WHERE embedding = string_to_vector('[1,2,3]');
O que se segue?
- Leia a vista geral sobre a pesquisa vetorial no Cloud SQL.
- Saiba como ativar e desativar as incorporações vetoriais na sua instância.
- Saiba como criar índices vetoriais.
- Saiba como fazer pesquisas em incorporações vetoriais.