Esta página descreve como invocar previsões ou gerar incorporações através de um modelo, registando o ponto final do modelo com a gestão de pontos finais de modelos.
Antes de começar
Verifique se a extensão
google_ml_integration
está instalada.Verifique se o sinalizador
google_ml_integration.enable_model_support
está definido comoon
Configure a extensão
Estabeleça ligação à sua base de dados através do
psql
ou do AlloyDB para PostgreSQL Studio com o utilizadorpostgres
.Opcional: Peça acesso para interagir com as funcionalidades do motor de consultas de IA do AlloyDB for PostgreSQL (pré-visualização), incluindo suporte para modelos multimodais, modelos de classificação e funções de operador.
Opcional: conceda autorização a um utilizador do PostgreSQL sem privilégios de superadministrador para gerir os metadados do modelo:
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA google_ml TO NON_SUPER_USER;
Substitua a seguinte variável:
NON_SUPER_USER
: o nome de utilizador do PostgreSQL que não é superutilizador.
Certifique-se de que o IP de saída está ativado para aceder a modelos alojados fora da sua VPC, como modelos de terceiros. Para mais informações, consulte o artigo Adicione conetividade de saída.
Configure a autenticação
As secções seguintes mostram como configurar a autenticação antes de registar um ponto final do modelo.
Configure a autenticação para o Vertex AI
Para usar os pontos finais do modelo do Google Vertex AI, tem de adicionar autorizações do Vertex AI à conta de serviço do AlloyDB baseada no IAM que usa para se ligar à base de dados. Para mais informações sobre a integração com o Vertex AI, consulte o artigo Integre com o Vertex AI.
Configure a autenticação através do Secret Manager
Esta secção explica como configurar a autenticação se estiver a usar o Secret Manager para armazenar detalhes de autenticação para fornecedores de terceiros.
Este passo é opcional se o seu ponto final do modelo não processar a autenticação através do Secret Manager, por exemplo, se o seu ponto final do modelo usar cabeçalhos HTTP para transmitir informações de autenticação ou não usar autenticação.
Para criar e usar uma chave da API ou um token de autorização, conclua os seguintes passos:
Crie o Secret no Secret Manager. Para mais informações, consulte o artigo Crie um segredo e aceda a uma versão secreta.
O caminho secreto é usado na função SQL
google_ml.create_sm_secret()
.Conceda autorizações ao cluster do AlloyDB para aceder ao segredo.
gcloud secrets add-iam-policy-binding 'SECRET_NAME' \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role="roles/secretmanager.secretAccessor"
Substitua o seguinte:
SECRET_NAME
: o nome do segredo no Secret Manager.SERVICE_ACCOUNT_ID
: o ID da conta de serviço baseada em IAM no formatoserviceAccount:service-PROJECT_ID@gcp-sa-alloydb.iam.gserviceaccount.com
, por exemplo,service-212340152456@gcp-sa-alloydb.iam.gserviceaccount.com
.Também pode conceder esta função à conta de serviço ao nível do projeto. Para mais informações, consulte o artigo Adicione uma associação de políticas de gestão de identidades e acessos
Configure a autenticação através de cabeçalhos
O exemplo seguinte mostra como configurar a autenticação através de uma função. A função devolve um objeto JSON que contém os cabeçalhos necessários para fazer um pedido ao modelo de incorporação.
CREATE OR REPLACE FUNCTION HEADER_GEN_FUNCTION(
model_id VARCHAR(100),
input_text TEXT
)
RETURNS JSON
LANGUAGE plpgsql
AS $$
#variable_conflict use_variable
DECLARE
api_key VARCHAR(255) := 'API_KEY';
header_json JSON;
BEGIN
header_json := json_build_object(
'Content-Type', 'application/json',
'Authorization', 'Bearer ' || api_key
);
RETURN header_json;
END;
$$;
Substitua o seguinte:
HEADER_GEN_FUNCTION
: o nome da função de geração de cabeçalhos que pode usar quando regista um modelo.API_KEY
: a chave da API do fornecedor do modelo.
Modelos de incorporação de texto
Esta secção mostra como registar pontos finais de modelos com a gestão de pontos finais de modelos.
A gestão de pontos finais de modelos suporta alguns modelos de incorporação de texto e modelos genéricos da Vertex AI como pontos finais de modelos pré-registados. Pode usar diretamente o ID do modelo para gerar incorporações ou invocar previsões, com base no tipo de modelo. Para mais informações sobre os modelos pré-registados suportados, consulte o artigo Modelos do Vertex AI pré-registados.
O modelo gemini-embedding-001
só está disponível na região us-central1
.
Por exemplo, para chamar o modelo gemini-embedding-001
pré-registado, pode chamar diretamente o modelo através da função de incorporação:
SELECT
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
.
Da mesma forma, para chamar o modelo gemini-1.5-pro:generateContent
pré-registado, pode chamar diretamente o modelo através da função de previsão:
SELECT google_ml.predict_row(
model_id => 'gemini-1.5-pro:generateContent',
request_body => '{
"contents": [
{
"role": "user",
"parts": [
{
"text": "For TPCH database schema as mentioned here https://www.tpc.org/TPC_Documents_Current_Versions/pdf/TPC-H_v3.0.1.pdf , generate a SQL query to find all supplier names which are located in the India nation. Only provide SQL query with no explanation."
}
]
}
]
}')-> 'candidates' -> 0 -> 'content' -> 'parts' -> 0 -> 'text';
Para gerar incorporações, veja como gerar incorporações de texto. Para invocar previsões, veja como invocar previsões.
Modelos de incorporação de texto com suporte integrado
A gestão de pontos finais de modelos oferece suporte integrado para alguns modelos do Vertex AI e da OpenAI. Para ver a lista de modelos com suporte integrado, consulte o artigo Modelos com suporte integrado.
Para modelos com suporte integrado, pode definir o nome qualificado como o nome qualificado do modelo e especificar o URL do pedido. A gestão de pontos finais de modelos identifica automaticamente o modelo e configura as funções de transformação predefinidas.
Modelos de incorporação da Vertex AI
Os passos seguintes mostram como registar modelos do Vertex AI com suporte integrado. O ponto final do modelo gemini-embedding-001
e text-multilingual-embedding-002
é usado como exemplo.
Certifique-se de que o cluster do AlloyDB e o modelo do Vertex AI que está a consultar estão na mesma região.
Chame a função de criação de modelos para adicionar o ponto final do modelo:
gemini-embedding-001
CALL google_ml.create_model( model_id => 'gemini-embedding-001', model_request_url => 'publishers/google/models/gemini-embedding-001', model_provider => 'google', model_qualified_name => 'gemini-embedding-001', model_type => 'text_embedding', model_auth_type => 'alloydb_service_agent_iam');
text-multilingual-embedding-002
CALL google_ml.create_model( model_id => 'text-multilingual-embedding-002', model_request_url => 'publishers/google/models/text-multilingual-embedding-002', model_provider => 'google', model_qualified_name => 'text-multilingual-embedding-002', model_type => 'text_embedding', model_auth_type => 'alloydb_service_agent_iam' model_in_transform_fn => 'google_ml.vertexai_text_embedding_input_transform', model_out_transform_fn => 'google_ml.vertexai_text_embedding_output_transform');
Se o modelo estiver armazenado num projeto e numa região diferentes do cluster do AlloyDB, defina o URL do pedido como projects/PROJECT_ID/locations/REGION_ID/publishers/google/models/MODEL_ID
, em que REGION_ID
é a região onde o modelo está alojado e MODEL_ID
é o nome do modelo qualificado.
Além disso, conceda a função de utilizador do Vertex AI (roles/aiplatform.user
) à conta de serviço do AlloyDB do projeto onde a instância do AlloyDB reside, para que o AlloyDB possa aceder ao modelo alojado no outro projeto.
Abrir modelo de incorporação de texto de IA
A extensão google_ml_integration
configura automaticamente as funções de transformação predefinidas e invoca chamadas para os modelos OpenAI remotos. Para ver a lista de modelos da OpenAI com suporte integrado, consulte o artigo Modelos com suporte integrado.
O exemplo seguinte adiciona o ponto final do modelo text-embedding-ada-002
OpenAI.
Pode registar os pontos finais do modelo text-embedding-3-small
e text-embedding-3-large
da OpenAI através dos mesmos passos e definindo os nomes qualificados do modelo específicos dos modelos.
- Associe à sua base de dados através do
psql
. - Configure a extensão
google_ml_integration
. - Adicione a chave da API OpenAI como um segredo ao Secret Manager para autenticação.
Chame o segredo armazenado no Secret Manager:
CALL google_ml.create_sm_secret( secret_id => 'SECRET_ID', secret_path => 'projects/PROJECT_ID/secrets/SECRET_MANAGER_SECRET_ID/versions/VERSION_NUMBER');
Substitua o seguinte:
SECRET_ID
: o ID secreto que define e que é usado posteriormente quando regista um ponto final do modelo, por exemplo,key1
.SECRET_MANAGER_SECRET_ID
: o ID secreto definido no Secret Manager quando criou o segredo.PROJECT_ID
: o ID do seu projeto Google Cloud .VERSION_NUMBER
: o número da versão do ID secreto.
Chame a função de criação de modelos para registar o ponto final do modelo
text-embedding-ada-002
:CALL google_ml.create_model( model_id => 'MODEL_ID', model_provider => 'open_ai', model_type => 'text_embedding', model_qualified_name => 'text-embedding-ada-002', model_auth_type => 'secret_manager', model_auth_id => 'SECRET_ID');
Substitua o seguinte:
MODEL_ID
: um ID exclusivo para o ponto final do modelo que define. Este ID do modelo é referenciado para metadados que o ponto final do modelo precisa para gerar incorporações ou invocar previsões.SECRET_ID
: o ID secreto que usou anteriormente no procedimentogoogle_ml.create_sm_secret()
.
Para gerar incorporações, consulte o artigo Gere incorporações de texto.
Modelo de incorporação de texto alojado de forma personalizada
Esta secção mostra como registar um ponto final de modelo alojado de forma personalizada, juntamente com a criação de funções de transformação e, opcionalmente, cabeçalhos HTTP personalizados. Todos os pontos finais de modelos alojados de forma personalizada são suportados, independentemente do local onde estão alojados.
O exemplo seguinte adiciona o ponto final do modelo personalizado custom-embedding-model
alojado pela
Cymbal. As funções de transformação cymbal_text_input_transform
e cymbal_text_output_transform
são usadas para transformar o formato de entrada e saída do modelo no formato de entrada e saída da função de previsão.
Para registar pontos finais de modelos de incorporação de texto alojados de forma personalizada, conclua os seguintes passos:
Opcional: adicione a chave da API como um segredo ao Secret Manager para autenticação.
Chame o segredo armazenado no Secret Manager:
CALL google_ml.create_sm_secret( secret_id => 'SECRET_ID', secret_path => 'projects/project-id/secrets/SECRET_MANAGER_SECRET_ID/versions/VERSION_NUMBER');
Substitua o seguinte:
SECRET_ID
: o ID secreto que define e que é usado posteriormente quando regista um ponto final do modelo, por exemplo,key1
.SECRET_MANAGER_SECRET_ID
: o ID secreto definido no Secret Manager quando criou o segredo.PROJECT_ID
: o ID do seu projeto Google Cloud .VERSION_NUMBER
: o número da versão do ID secreto.
Crie as funções de transformação de entrada e saída com base na seguinte assinatura para a função de previsão para os pontos finais do modelo de incorporação de texto. Para mais informações sobre como criar funções de transformação, consulte o exemplo de funções de transformação.
Seguem-se exemplos de funções de transformação específicas do
custom-embedding-model
ponto final do modelo de incorporação de texto:-- Input Transform Function corresponding to the custom model endpoint CREATE OR REPLACE FUNCTION cymbal_text_input_transform(model_id VARCHAR(100), input_text TEXT) RETURNS JSON LANGUAGE plpgsql AS $$ DECLARE transformed_input JSON; model_qualified_name TEXT; BEGIN SELECT json_build_object('prompt', json_build_array(input_text))::JSON INTO transformed_input; RETURN transformed_input; END; $$; -- Output Transform Function corresponding to the custom model endpoint CREATE OR REPLACE FUNCTION cymbal_text_output_transform(model_id VARCHAR(100), response_json JSON) RETURNS REAL[] LANGUAGE plpgsql AS $$ DECLARE transformed_output REAL[]; BEGIN SELECT ARRAY(SELECT json_array_elements_text(response_json->0)) INTO transformed_output; RETURN transformed_output; END; $$;
Chame a função de criação de modelos para registar o ponto final do modelo de incorporação personalizado:
CALL google_ml.create_model( model_id => 'MODEL_ID', model_request_url => 'REQUEST_URL', model_provider => 'custom', model_type => 'text_embedding', model_auth_type => 'secret_manager', model_auth_id => 'SECRET_ID', model_qualified_name => 'MODEL_QUALIFIED_NAME', model_in_transform_fn => 'cymbal_text_input_transform', model_out_transform_fn => 'cymbal_text_output_transform');
Substitua o seguinte:
MODEL_ID
: obrigatório. Um ID exclusivo para o ponto final do modelo que define, por exemplo,custom-embedding-model
. Este ID do modelo é referenciado para metadados que o ponto final do modelo precisa para gerar incorporações ou invocar previsões.REQUEST_URL
: obrigatório. O ponto final específico do modelo quando adiciona incorporação de texto personalizada e pontos finais de modelos genéricos, por exemplo,https://cymbal.com/models/text/embeddings/v1
. Certifique-se de que o ponto final do modelo é acessível através de um endereço IP interno. A gestão de pontos finais de modelos não suporta endereços IP públicos.MODEL_QUALIFIED_NAME
: obrigatório se o ponto final do modelo usar um nome qualificado. O nome totalmente qualificado, caso o ponto final do modelo tenha várias versões.SECRET_ID
: o ID secreto que usou anteriormente no procedimentogoogle_ml.create_sm_secret()
.
Modelo multimodal com suporte integrado
Faça a integração com o Vertex AI e instale a extensão
- Integre com o Vertex AI.
- Certifique-se de que tem instalada a versão mais recente do
google_ml_integration
.Para verificar a versão instalada, execute o seguinte comando:
SELECT extversion FROM pg_extension WHERE extname = 'google_ml_integration'; extversion ------------ 1.4.3 (1 row)
Se a extensão não estiver instalada ou se a versão instalada for anterior à 1.4.3, atualize a extensão executando os seguintes comandos:
CREATE EXTENSION IF NOT EXISTS google_ml_integration; ALTER EXTENSION google_ml_integration UPDATE;
Se tiver problemas quando executar os comandos anteriores ou se a extensão não for atualizada para a versão 1.4.3 depois de executar os comandos anteriores, contacte o apoio técnico do AlloyDB.
Depois de se certificar de que a versão está atualizada, instale a funcionalidade de pré-visualização executando o procedimento
upgrade_to_preview_version
:CALL google_ml.upgrade_to_preview_version(); SELECT extversion FROM pg_extension WHERE extname = 'google_ml_integration'; extversion ------------ 1.4.4 (1 row)
Chame o modelo para gerar incorporações multimodais
Uma vez que a gestão de pontos finais de modelos oferece suporte integrado para o modelo multimodalembedding@001
da Vertex AI, pode chamar diretamente o modelo para gerar incorporações multimodais.
O exemplo seguinte usa o multimodalembedding@001
nome do modelo qualificado como ID do modelo para gerar incorporações de imagens multimodais:
- Associe à sua base de dados através do
psql
. - Configure a extensão
google_ml_integration
. Gerar incorporações de imagens multimodais:
SELECT ai.image_embedding( model_id => 'multimodalembedding@001', image => 'IMAGE_PATH_OR_TEXT', mimetype => 'MIMETYPE');
Substitua o seguinte:
- IMAGE_PATH_OR_TEXT com o caminho do Cloud Storage para a imagem,
por exemplo,
gs://cymbal_user_data/image-85097193-cd9788aacebb.jpeg
para traduzir num encaixe vetorial ou numa string base64 da imagem. - MIMETYPE com o tipo MIME da imagem.
Modelos de classificação
Modelos de classificação do Vertex AI
Pode usar os modelos do Vertex AI mencionados em Modelos suportados sem registo.
Para saber como classificar os resultados da pesquisa através de um modelo de classificação da Vertex AI, consulte o artigo Classifique os resultados da pesquisa.
Registar um modelo de classificação de terceiros
O exemplo seguinte mostra como registar um modelo de reclassificação da Cohere.
CREATE OR REPLACE FUNCTION cohere_rerank_input_transform(
model_id VARCHAR(100),
search_string TEXT,
documents TEXT[],
top_n INT DEFAULT NULL
)
RETURNS JSON
LANGUAGE plpgsql
AS $$
#variable_conflict use_variable
DECLARE
transformed_input JSONB;
BEGIN
-- Basic Input Validation
IF search_string IS NULL OR search_string = '' THEN
RAISE EXCEPTION 'Invalid input: search_string cannot be NULL or empty.';
END IF;
IF documents IS NULL OR array_length(documents, 1) IS NULL OR array_length(documents, 1) = 0 THEN
RAISE EXCEPTION 'Invalid input: documents array cannot be NULL or empty.';
END IF;
IF top_n IS NOT NULL AND top_n < 0 THEN
RAISE EXCEPTION 'Invalid input: top_n must be greater than or equal to zero. Provided value: %', top_n;
END IF;
-- Construct the base JSON payload for Cohere Rerank API
transformed_input := jsonb_build_object(
'model', google_ml.model_qualified_name_of(model_id),
'query', search_string,
'documents', to_jsonb(documents), -- Convert TEXT[] directly to JSON array
'return_documents', false -- Explicitly set to false (optional, as its default)
);
-- Add top_n to the payload only if it's provided and valid
IF top_n IS NOT NULL THEN
transformed_input := transformed_input || jsonb_build_object('top_n', top_n);
END IF;
-- Return the final JSON payload
RETURN transformed_input::JSON;
END;
$$;
CREATE OR REPLACE FUNCTION cohere_rerank_output_transform(
model_id VARCHAR(100),
response_json JSON
)
RETURNS TABLE (index INT, score REAL)
LANGUAGE plpgsql
AS $$
DECLARE
result_item JSONB;
response_jsonb JSONB;
cohere_index INT; -- 0-based index from Cohere response
BEGIN
-- Validate response_json
IF response_json IS NULL THEN
RAISE EXCEPTION 'Invalid model response: response cannot be NULL.';
END IF;
-- Convert JSON to JSONB for easier processing
response_jsonb := response_json::JSONB;
-- Check top-level structure
IF jsonb_typeof(response_jsonb) != 'object' THEN
RAISE EXCEPTION 'Invalid model response: response must be a JSON object. Found: %', jsonb_typeof(response_jsonb);
END IF;
-- Check for the 'results' array
IF response_jsonb->'results' IS NULL OR jsonb_typeof(response_jsonb->'results') != 'array' THEN
-- Check for potential Cohere error structure
IF response_jsonb->'message' IS NOT NULL THEN
RAISE EXCEPTION 'Cohere API Error: %', response_jsonb->>'message';
ELSE
RAISE EXCEPTION 'Invalid model response: response does not contain a valid "results" array.';
END IF;
END IF;
-- Loop through the 'results' array (JSONB array indices are 0-based)
FOR i IN 0..jsonb_array_length(response_jsonb->'results') - 1 LOOP
result_item := response_jsonb->'results'->i;
-- Validate individual result item structure
IF result_item IS NULL OR jsonb_typeof(result_item) != 'object' THEN
RAISE WARNING 'Skipping invalid result item at array index %.', i;
CONTINUE;
END IF;
IF result_item->'index' IS NULL OR jsonb_typeof(result_item->'index') != 'number' THEN
RAISE WARNING 'Missing or invalid "index" field in result item at array index %.', i;
CONTINUE;
END IF;
IF result_item->'relevance_score' IS NULL OR jsonb_typeof(result_item->'relevance_score') != 'number' THEN
RAISE WARNING 'Missing or invalid "relevance_score" field in result item at array index %.', i;
CONTINUE;
END IF;
-- Extract values
BEGIN
cohere_index := (result_item->>'index')::INT;
-- Assign values to the output table columns
-- Cohere returns 0-based index, map it to 1-based for consistency
-- with input document array position
index := cohere_index + 1;
score := (result_item->>'relevance_score')::REAL;
RETURN NEXT; -- Return the current row
EXCEPTION WHEN others THEN
RAISE WARNING 'Error processing result item at array index %: %', i, SQLERRM;
CONTINUE; -- Skip this item and continue with the next
END;
END LOOP;
RETURN; -- End of function
END;
$$;
CALL
google_ml.create_sm_secret(
'<SECRET_ID>',
'projects/<PROJECT_NUMBER>/secrets/<SECRET_ID>/versions/latest');
CALL
google_ml.create_model(
model_id => 'cohere-reranker',
model_type => 'reranking',
model_provider => 'custom',
model_request_url => 'https://api.cohere.com/v2/rerank',
model_qualified_name => 'rerank-v3.5',
model_auth_type => 'secret_manager',
model_auth_id => '<SECRET_ID>',
model_in_transform_fn => 'cohere_rerank_input_transform',
model_out_transform_fn => 'cohere_rerank_output_transform'
);
Modelos genéricos
Esta secção mostra como registar qualquer ponto final de modelo genérico que esteja disponível num fornecedor de modelos alojados, como o Hugging Face, a OpenAI, a Vertex AI, a Anthropic ou qualquer outro fornecedor. Esta secção mostra exemplos para registar um ponto final de modelo genérico alojado no Hugging Face, um modelo genérico gemini-pro
do Model Garden do Vertex AI e o ponto final de modelo claude-haiku
.
Pode registar qualquer ponto final de modelo genérico, desde que a entrada e a saída estejam no formato JSON. Com base nos metadados do ponto final do modelo, pode ter de gerar cabeçalhos HTTP ou definir URLs de pedidos.
Para mais informações sobre modelos genéricos pré-registados e modelos com suporte integrado, consulte o artigo Modelos suportados.
Modelos genéricos do Gemini
Esta secção mostra como registar modelos genéricos do Gemini.
Modelo gemini-1.5-pro
Uma vez que alguns modelos gemini-pro
estão pré-registados, pode chamar diretamente o ID do modelo para invocar previsões.
O exemplo seguinte usa o ponto final do modelo gemini-1.5-pro:generateContent
do Vertex AI Model Garden.
- Associe à sua base de dados através do
psql
. - Configure a extensão
google_ml_integration
. Invocar previsões através do ID do modelo pré-registado:
SELECT json_array_elements( google_ml.predict_row( model_id => 'gemini-1.5-pro:generateContent', request_body => '{ "contents": [ { "role": "user", "parts": [ { "text": "For TPCH database schema as mentioned here https://www.tpc.org/TPC_Documents_Current_Versions/pdf/TPC-H_v3.0.1.pdf , generate a SQL query to find all supplier names which are located in the India nation." } ] } ] }'))-> 'candidates' -> 0 -> 'content' -> 'parts' -> 0 -> 'text';
Modelo genérico no Hugging Face
O exemplo seguinte adiciona o ponto final do modelo de classificação personalizada facebook/bart-large-mnli
alojado no Hugging Face.
- Associe à sua base de dados através do
psql
. - Configure a extensão
google_ml_integration
. - Adicione a chave da API OpenAI como um segredo ao Secret Manager para autenticação. Se já tiver criado um segredo para qualquer outro modelo da OpenAI, pode reutilizar o mesmo segredo.
Chame o segredo armazenado no Secret Manager:
CALL google_ml.create_sm_secret( secret_id => 'SECRET_ID', secret_path => 'projects/project-id/secrets/SECRET_MANAGER_SECRET_ID/versions/VERSION_NUMBER');
Substitua o seguinte:
SECRET_ID
: o ID secreto que define e que é usado posteriormente quando regista um ponto final do modelo.SECRET_MANAGER_SECRET_ID
: o ID secreto definido no Secret Manager quando criou o segredo.PROJECT_ID
: o ID do seu projeto Google Cloud .VERSION_NUMBER
: o número da versão do ID secreto.
Chame a função de criação de modelos para registar o ponto final do modelo
facebook/bart-large-mnli
:CALL google_ml.create_model( model_id => 'MODEL_ID', model_provider => 'hugging_face', model_request_url => 'REQUEST_URL', model_qualified_name => 'MODEL_QUALIFIED_NAME', model_auth_type => 'secret_manager', model_auth_id => 'SECRET_ID');
Substitua o seguinte:
MODEL_ID
: um ID exclusivo para o ponto final do modelo que define, por exemplo,custom-classification-model
. Este ID do modelo é referenciado para metadados que o ponto final do modelo precisa para gerar incorporações ou invocar previsões.REQUEST_URL
: o ponto final específico do modelo quando adiciona incorporação de texto personalizada e pontos finais de modelos genéricos, por exemplo,https://api-inference.huggingface.co/models/facebook/bart-large-mnli
.MODEL_QUALIFIED_NAME
: o nome totalmente qualificado da versão do ponto final do modelo, por exemplo,facebook/bart-large-mnli
.SECRET_ID
: o ID secreto que usou anteriormente no procedimentogoogle_ml.create_sm_secret()
.
Modelo genérico da Anthropic
O exemplo seguinte adiciona o ponto final do modelo claude-3-opus-20240229
.
A gestão de pontos finais de modelos fornece a função de cabeçalho necessária para registar modelos da Anthropic.
- Associe à sua base de dados através do
psql
. Crie e ative a extensão
google_ml_integration
.Secret Manager
- Adicione o token de portador como um segredo ao Secret Manager para autenticação.
Chame o segredo armazenado no Secret Manager:
CALL google_ml.create_sm_secret( secret_id => 'SECRET_ID', secret_path => 'projects/PROJECT_ID/secrets/SECRET_MANAGER_SECRET_ID/versions/VERSION_NUMBER');
Substitua o seguinte:
SECRET_ID
: o ID secreto que define e que é usado posteriormente quando regista um ponto final do modelo.SECRET_MANAGER_SECRET_ID
: o ID secreto definido no Secret Manager quando criou o segredo.PROJECT_ID
: o ID do seu projeto Google Cloud .VERSION_NUMBER
: o número da versão do ID secreto.
Chame a função de criação de modelos para registar o ponto final do modelo
claude-3-opus-20240229
.CALL google_ml.create_model( model_id => 'MODEL_ID', model_provider => 'anthropic', model_request_url => 'REQUEST_URL', model_auth_type => 'secret_manager', model_auth_id => 'SECRET_ID', generate_headers_fn => 'google_ml.anthropic_claude_header_gen_fn');
Substitua o seguinte:
MODEL_ID
: um ID exclusivo para o ponto final do modelo que define, por exemplo,anthropic-opus
. Este ID do modelo é referenciado para metadados que o ponto final do modelo precisa para gerar incorporações ou invocar previsões.REQUEST_URL
: o ponto final específico do modelo quando adiciona incorporação de texto personalizada e pontos finais de modelos genéricos, por exemplo,https://api.anthropic.com/v1/messages
.
Cabeçalho de autorização
Use a função de geração de cabeçalhos predefinida
google_ml.anthropic_claude_header_gen_fn
ou crie uma função de geração de cabeçalhos.CREATE OR REPLACE FUNCTION anthropic_sample_header_gen_fn(model_id VARCHAR(100), request_body JSON) RETURNS JSON LANGUAGE plpgsql AS $$ #variable_conflict use_variable BEGIN RETURN json_build_object('x-api-key', 'ANTHROPIC_API_KEY', 'anthropic-version', 'ANTHROPIC_VERSION')::JSON; END; $$;
Substitua o seguinte:
ANTHROPIC_API_KEY
: a chave da API da Anthropic.ANTHROPIC_VERSION
(Opcional): a versão específica do modelo que quer usar, por exemplo,2023-06-01
.
Chame a função de criação de modelos para registar o ponto final do modelo
claude-3-opus-20240229
.CALL google_ml.create_model( model_id => 'MODEL_ID', model_provider => 'anthropic', model_request_url => 'REQUEST_URL', generate_headers_fn => 'google_ml.anthropic_claude_header_gen_fn');
Substitua o seguinte:
MODEL_ID
: um ID exclusivo para o ponto final do modelo que define, por exemplo,anthropic-opus
. Este ID do modelo é referenciado para metadados que o ponto final do modelo precisa para gerar incorporações ou invocar previsões.REQUEST_URL
: o ponto final específico do modelo quando adiciona incorporação de texto personalizada e pontos finais de modelos genéricos, por exemplo,https://api.anthropic.com/v1/messages
.
Para mais informações, veja como invocar previsões para pontos finais de modelos genéricos.
O que se segue?
- Saiba mais sobre a referência de gestão de pontos finais de modelos
- Use modelos de exemplo para registar pontos finais de modelos
- Gere incorporações multimodais
- Classifique e pontue os resultados da pesquisa para a RAG
- Use linguagem natural em operadores SQL