Nesta página, descrevemos como registrar um endpoint de modelo de IA e invocar previsões com o gerenciamento de endpoints de modelo no Cloud SQL. Para usar modelos de IA em ambientes de produção, consulte Criar aplicativos de IA generativa usando o Cloud SQL e Trabalhar com embeddings de vetor.
Visão geral
O gerenciamento de endpoints de modelo permite registrar um endpoint de modelo, gerenciar metadados de endpoints de modelo na instância do Cloud SQL e interagir com os modelos usando consultas SQL.
O Cloud SQL fornece a extensão google_ml_integration, que
inclui funções para adicionar e registrar os metadados de endpoints de modelo relacionados aos modelos.
É possível usar esses modelos para gerar embeddings de vetor ou invocar previsões.
É possível registrar os seguintes tipos de modelo usando o gerenciamento de endpoints de modelo:
- Modelos de embedding de texto daVertex AI.
- Modelos de embedding de texto hospedados de maneira personalizada em redes dentro de Cloud de Confiance by S3NS.
Modelos genéricos com uma API baseada em JSON. Confira alguns exemplos desses modelos:
- O modelo
gemini-prodo Model Garden da Vertex AI - O modelo
open_aipara modelos da OpenAI - Modelos hospedados em redes dentro de Cloud de Confiance by S3NS
- O modelo
Como funciona
É possível usar o gerenciamento de endpoints de modelo para registrar um endpoint que esteja em conformidade com o seguinte:
- A entrada e a saída do modelo são compatíveis com o formato JSON.
- É possível usar o protocolo REST para chamar o modelo.
Ao registrar um endpoint de modelo com o gerenciamento de endpoints de modelo, cada endpoint é registrado com um ID de modelo exclusivo como referência ao modelo. É possível usar esse ID de modelo para consultar modelos, da seguinte maneira:
Gere embeddings para traduzir comandos de texto em vetores numéricos. É possível armazenar embeddings gerados como dados vetoriais quando a extensão
pgvectorestá ativada no banco de dados. Para mais informações, consulte Consultar e indexar embeddings com o pgvector.Invoque previsões para chamar um modelo usando SQL em uma transação.
Seus aplicativos podem gerenciar os endpoints de modelo usando a extensão google_ml_integration. Essa extensão fornece as seguintes funções SQL:
google_ml.create_model(): registra o endpoint do modelo usado na função de previsão ou embeddinggoogle_ml.create_sm_secret(): usa secrets no Cloud de Confiance by S3NS Secret Manager, em que as chaves de API são armazenadasgoogle_ml.embedding(): gera embeddings de textogoogle_ml.predict_row(): gera previsões quando você chama modelos genéricos que são compatíveis com os formatos de entrada e saída JSON
Principais conceitos
Antes de começar a usar o gerenciamento de endpoints de modelo, entenda os conceitos necessários para se conectar e usar os modelos.
Provedor de modelos
Provedor de modelos é o provedor de hospedagem de modelo compatível. A tabela a seguir mostra o valor do provedor de modelo que você precisa definir com base no provedor usado:
| Provedor de modelos | Definido na função como… |
|---|---|
| Vertex AI (inclui o Gemini) | google |
| Anthropic | anthropic |
| Hugging face | hugging_face |
| OpenAI | open_ai |
| Outros modelos hospedados fora da Vertex AI, Anthropic, Hugging Face e OpenAI |
custom |
O provedor de modelo padrão é custom.
Tipos de modelos
Tipos de modelos são os tipos de modelo de IA. Ao registrar um endpoint de modelo, é possível definir os tipos de modelo text_embedding ou generic para o endpoint.
- Modelos de embedding de texto com suporte integrado
- O gerenciamento de endpoints de modelo oferece suporte integrado a todas as versões do
textembedding-geckomodelo. Para registrar esses endpoints de modelo, use a funçãogoogle_ml.create_model(). O Cloud SQL configura automaticamente funções de transformação padrão para esses modelos. - O tipo de modelo para esses modelos é
text_embedding. - Outros modelos de embedding de texto
- Para outros modelos de embedding de texto, é necessário criar funções de transformação para processar os formatos de entrada e saída compatíveis com o modelo. Opcionalmente, é possível usar a função de geração de cabeçalho HTTP que gera cabeçalhos personalizados exigidos pelo modelo.
- O tipo de modelo para esses modelos é
text_embedding. - Modelos genéricos
- O gerenciamento de endpoints de modelo também permite
registrar todos os outros tipos de modelo, exceto os de embeddings de texto. Para
invocar previsões para modelos genéricos, use a
google_ml.predict_row()função. É possível definir metadados do endpoint de modelo, como um endpoint de solicitação e cabeçalhos HTTP específicos do seu modelo. - Não é possível transmitir funções de transformação ao registrar um endpoint de modelo genérico. Verifique se, ao invocar previsões, a entrada da função está no formato JSON e analise a saída JSON para derivar a saída final.
- O tipo de modelo para esses modelos é
generic. Comogenericé o tipo de modelo padrão, se você registrar endpoints de modelo para esse tipo, a definição do tipo de modelo será opcional.
Métodos de autenticação
É possível usar a extensãogoogle_ml_integration para
especificar diferentes métodos de autenticação para acessar o modelo.
A configuração desses métodos é opcional e só é necessária se você precisar se autenticar para acessar o modelo.
Para modelos da Vertex AI, a conta de serviço do Cloud SQL é usada para autenticação. Para outros modelos, a
chave de API ou o token do portador armazenado como um secret no
Secret Manager pode ser usado com a
google_ml.create_sm_secret()
função SQL.
A tabela a seguir mostra os métodos de autenticação que podem ser definidos:
| Método de autenticação | Definido na função como… | Provedor da Vertex AI |
|---|---|---|
| Agente de serviço do Cloud SQL | cloudsql_service_agent_iam |
Provedor da Vertex AI |
| Secret Manager | secret_manager |
Modelos hospedados fora da Vertex AI |
Funções de Prediction
A extensão google_ml_integration inclui as seguintes funções de previsão:
google_ml.embedding()- Chama um endpoint de modelo de embedding de texto registrado para
gerar embeddings. Ele inclui suporte integrado para o
textembedding-geckomodelo da Vertex AI. - Para modelos de embedding de texto sem suporte integrado, os parâmetros de entrada e saída são exclusivos de um modelo e precisam ser transformados para que a função chame o modelo. Crie uma função de entrada de transformação para transformar a entrada da função de previsão na entrada específica do modelo e uma função de saída de transformação para transformar a saída específica do modelo na saída da função de previsão.
google_ml.predict_row()- Chama um endpoint de modelo genérico registrado, se o endpoint for compatível com APIs baseadas em JSON para invocar previsões.
Funções de transformação
As funções de transformação modificam a entrada para um formato que o modelo entende e convertem a resposta do modelo para o formato esperado pela função de previsão. As funções de transformação são usadas ao registrar o endpoint de modelo text-embedding sem suporte integrado. A assinatura das funções de transformação depende da função de previsão do tipo de modelo.
Não é possível usar funções de transformação ao registrar um endpoint de modelo generic.
Confira as assinaturas da função de previsão para modelos de embedding de texto:
// define custom model specific input/output transform functions.
CREATE OR REPLACE FUNCTION input_transform_function(model_id VARCHAR(100), input_text TEXT) RETURNS JSON;
CREATE OR REPLACE FUNCTION output_transform_function(model_id VARCHAR(100), response_json JSON) RETURNS real[];
Para mais informações sobre como criar funções de transformação, consulte Exemplo de funções de transformação.
Função de geração de cabeçalho HTTP
A função de geração de cabeçalho HTTP gera a saída em pares de chave-valor JSON usados como cabeçalhos HTTP. A assinatura da função de previsão define as assinaturas da função de geração de cabeçalho.
O exemplo a seguir mostra a assinatura da função de previsão google_ml.embedding():
CREATE OR REPLACE FUNCTION generate_headers(model_id VARCHAR(100), input TEXT) RETURNS JSON;
Para a função de previsão google_ml.predict_row(), a assinatura é a seguinte:
CREATE OR REPLACE FUNCTION generate_headers(model_id VARCHAR(100), input JSON) RETURNS JSON;
Para mais informações sobre como criar uma função de geração de cabeçalho, consulte Exemplo de função de geração de cabeçalho.
Limitações
- Para usar modelos de IA com a instância do Cloud SQL, a versão de manutenção da instância precisa ser
R20240910.01_02ou mais recente. Para fazer upgrade da instância para esta versão, consulte Realizar manutenção de autoatendimento.
A seguir
- Configurar a autenticação para provedores de modelos.
- Registrar um endpoint de modelo com o gerenciamento de endpoints de modelo.
- Aprenda mais sobre a referência de gerenciamento de endpoints de modelo.