A extensão google_ml_integration
inclui funções de incorporação em dois namespaces diferentes: public
e google_ml
. Nesta página, descrevemos como gerar incorporações de texto usando funções desses namespaces.
A função embedding()
no esquema public
pode ser usada com qualquer modelo de incorporação da Vertex AI sem registrar o endpoint. Se quiser transmitir informações personalizadas, como o tipo de tarefa, registre o endpoint e use a função google_ml.embedding()
no esquema google_ml
. Para mais informações sobre como registrar um endpoint, consulte Registrar um modelo.
Como as incorporações funcionam
Imagine um banco de dados em execução no AlloyDB com as seguintes características:
O banco de dados contém uma tabela,
items
. Cada linha nesta tabela descreve um item que sua empresa vende.A tabela
items
contém uma coluna,complaints
. Essa colunaTEXT
armazena reclamações do comprador registradas sobre cada item.O banco de dados se integra ao Model Garden da Vertex AI, concedendo acesso aos modelos em inglês
gemini-embedding-001
.
Embora esse banco de dados armazene reclamações sobre itens, elas são armazenadas como texto simples, dificultando a consulta. Por exemplo, se você quiser saber quais itens têm mais reclamações de clientes que receberam a cor errada do produto, realize consultas SQL comuns na tabela, procurando várias correspondências de palavras-chave. No entanto, essa abordagem corresponde apenas às linhas que contêm essas palavras-chave exatas.
Por exemplo, uma consulta SQL básica, como SELECT * FROM item WHERE complaints LIKE
"%wrong color%"
, não retorna uma linha em que o campo complaints
contém apenas The picture shows a blue one, but the one I received was red
.
Consultas SQL que usam embeddings com tecnologia LLM podem ajudar a retornar respostas semanticamente semelhantes para essas consultas. Ao aplicar embeddings, é possível consultar a tabela neste exemplo para itens em que as reclamações têm semelhança semântica com um determinado comando de texto, como It was the
wrong color
.
Para gerar embeddings, selecione um dos seguintes esquemas.
Antes de começar
Para permitir que o AlloyDB gere embeddings, faça o seguinte:
- Conecte-se ao banco de dados usando
psql
ou o AlloyDB para PostgreSQL Studio como o usuáriopostgres
. - Verifique se a extensão
google_ml_integration
está instalada. - Verifique se a flag
google_ml_integration.enable_model_support
está definida comoon
. - Antes de gerar embeddings de um banco de dados do AlloyDB, configure o AlloyDB para trabalhar com a Vertex AI. Para mais informações, consulte Integrar seu banco de dados à Vertex AI.
Conceda permissões aos usuários do banco de dados para executar a função de embedding e gerar embeddings:
\c DB_NAME; GRANT EXECUTE ON FUNCTION google_ml.embedding TO USER_NAME;
Substitua:
DB_NAME: o nome do banco de dados em que as permissões devem ser concedidas
USER_NAME: o nome do usuário para quem as permissões devem ser concedidas
Gerar embeddings
Use a função SQL google_ml.embedding()
para chamar modelos de embedding de texto.
Para chamar o modelo e gerar embeddings, execute a seguinte consulta:
SELECT
google_ml.embedding(
model_id => 'MODEL_ID',
content => 'CONTENT');
Substitua:
MODEL_ID
: o ID qualificado do modelo, por exemplo,gemini-embedding-001
.CONTENT
: o texto a ser traduzido em um embedding de vetor.
Exemplos de geração de embeddings
Alguns exemplos de como gerar embeddings usando endpoints de modelo registrados são listados nesta seção.
Modelos de incorporação do Gemini
Para gerar embeddings para um endpoint de modelo gemini-embedding-001
registrado, execute a seguinte instrução:
SELECT
google_ml.embedding(
model_id => 'gemini-embedding-001',
content => 'AlloyDB is a managed, cloud-hosted SQL database service');
Se o cluster do AlloyDB e o endpoint da Vertex AI estiverem em projetos diferentes, defina model_id
como o caminho qualificado do endpoint. Por exemplo, projects/PROJECT_ID/locations/REGION_ID/publishers/google/models/gemini-embedding-001
.
Para gerar embeddings para um endpoint de modelo gemini-embedding-001
registrado, execute a seguinte instrução:
SELECT
google_ml.embedding(
model_id => 'gemini-embedding-001',
content => 'AlloyDB is a managed, cloud-hosted SQL database service');
Modelo de embedding da OpenAI
Para gerar embeddings para um endpoint de modelo text-embedding-ada-002
registrado da OpenAI, execute a seguinte instrução:
SELECT
google_ml.embedding(
model_id => 'text-embedding-ada-002',
content => 'e-mail spam');
Para gerar embeddings para endpoints de modelo text-embedding-3-small
ou text-embedding-3-large
registrados pela OpenAI, execute a seguinte instrução:
SELECT
google_ml.embedding(
model_id => 'text-embedding-3-small',
content => 'Vector embeddings in AI');
A seguir
- Fazer pesquisas de similaridade vetorial.
- Aprenda a criar um assistente de compras inteligente com o AlloyDB, o pgvector e o gerenciamento de endpoints de modelo.
- Criar índices e vetores de consulta.
- Confira um exemplo de fluxo de trabalho de incorporação.