A extensão google_ml_integration
inclui funções de incorporação em dois espaços de nomes diferentes: public
e google_ml
. Esta página descreve como gerar incorporações de texto através de funções destes espaços de nomes.
A função embedding()
no esquema public
pode ser usada com qualquer modelo de incorporação do Vertex AI sem registar o ponto final. Se quiser transmitir informações personalizadas, como o tipo de tarefa, registe o ponto final e, em seguida, use a função google_ml.embedding()
no esquema google_ml
. Para mais informações sobre o registo de um ponto final, consulte o artigo Registe um modelo.
Como funcionam as incorporações
Imagine uma base de dados em execução no AlloyDB com as seguintes caraterísticas:
A base de dados contém uma tabela,
items
. Cada linha nesta tabela descreve um item que a sua empresa vende.A tabela
items
contém uma coluna,complaints
. Esta colunaTEXT
armazena as queixas dos compradores registadas sobre cada artigo.A base de dados integra-se com o Vertex AI Model Garden, o que lhe dá acesso aos modelos
gemini-embedding-001
em inglês.
Apesar de esta base de dados armazenar queixas sobre artigos, estas queixas são armazenadas como texto simples, o que dificulta a consulta. Por exemplo, para ver que artigos têm mais reclamações de clientes que receberam a cor errada da mercadoria, pode executar consultas SQL normais na tabela que procuram várias correspondências de palavras-chave. No entanto, esta abordagem só faz a correspondência com linhas que contenham essas palavras-chave exatas.
Por exemplo, uma consulta SQL básica, como SELECT * FROM item WHERE complaints LIKE
"%wrong color%"
, não devolve uma linha cujo campo complaints
contenha apenas The picture shows a blue one, but the one I received was red
.
As consultas SQL que usam incorporações baseadas em GMLs podem ajudar a devolver respostas semanticamente semelhantes para essas consultas. Ao
aplicar incorporações, pode consultar a tabela neste exemplo para itens cujas
reclamações tenham semelhança semântica com um comando de texto específico, como It was the
wrong color
.
Para gerar incorporações, selecione um dos seguintes esquemas.
Antes de começar
Para permitir que o AlloyDB gere incorporações, faça o seguinte:
- Ligue-se à sua base de dados através do
psql
ou do AlloyDB for PostgreSQL Studio como utilizadorpostgres
. - 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 poder gerar incorporações a partir de uma base de dados do AlloyDB, tem de configurar o AlloyDB para funcionar com o Vertex AI. Para mais informações, consulte o artigo Integre a sua base de dados com o Vertex AI.
Conceda autorizações aos utilizadores da base de dados para executar a função de incorporação para gerar incorporações:
\c DB_NAME; GRANT EXECUTE ON FUNCTION google_ml.embedding TO USER_NAME;
Substitua o seguinte:
DB_NAME: o nome da base de dados na qual as autorizações devem ser concedidas
USER_NAME: o nome do utilizador ao qual as autorizações devem ser concedidas
Gere incorporações
Use a função SQL google_ml.embedding()
para chamar modelos de incorporação de texto.
Para chamar o modelo e gerar incorporações, execute a seguinte consulta:
SELECT
google_ml.embedding(
model_id => 'MODEL_ID',
content => 'CONTENT');
Substitua o seguinte:
MODEL_ID
: o ID do modelo qualificado, por exemplo,gemini-embedding-001
.CONTENT
: o texto a traduzir numa incorporação vetorial.
Exemplos de geração de incorporações
Alguns exemplos de geração de incorporações através do ponto final do modelo registado estão listados nesta secção.
Modelos de incorporação do Gemini
Para gerar incorporações para um ponto final do modelo gemini-embedding-001
registado, execute a seguinte declaraçã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 ponto final do Vertex AI estiverem em projetos diferentes, defina o model_id
para o caminho qualificado do ponto final, por exemplo, projects/PROJECT_ID/locations/REGION_ID/publishers/google/models/gemini-embedding-001
.
Para gerar incorporações para um ponto final do modelo gemini-embedding-001
registado, execute a seguinte declaração:
SELECT
google_ml.embedding(
model_id => 'gemini-embedding-001',
content => 'AlloyDB is a managed, cloud-hosted SQL database service');
Modelo de incorporação da OpenAI
Para gerar incorporações para um ponto final do modelo text-embedding-ada-002
registado da OpenAI, execute a seguinte declaração:
SELECT
google_ml.embedding(
model_id => 'text-embedding-ada-002',
content => 'e-mail spam');
Para gerar incorporações para pontos finais de modelos text-embedding-3-small
ou text-embedding-3-large
registados da OpenAI, execute a seguinte declaração:
SELECT
google_ml.embedding(
model_id => 'text-embedding-3-small',
content => 'Vector embeddings in AI');
O que se segue?
- Executar pesquisas de similaridade vetorial.
- Saiba como criar um assistente de compras inteligente com o AlloyDB, o pgvector e a gestão de pontos finais de modelos.
- Crie índices e consulte vetores.
- Veja um exemplo de um fluxo de trabalho de incorporação.