Gere incorporações de texto

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 coluna TEXT 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-001em 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:

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-002registado 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?