Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A extensão de IA do Azure apresenta os Operadores Semânticos, um recurso inovador que integra recursos avançados de IA Generativa (GenAI) diretamente no PostgreSQL SQL. Esses operadores, que são alimentados por modelos como conclusão de bate-papo e outras implantações de IA do Azure, permitem que os desenvolvedores criem aplicativos orientados por GenAI diretamente em seus bancos de dados. Isso libera novos recursos para entender texto, raciocínio e gerar saídas estruturadas.
Principais características
Os Operadores Semânticos fornecem aos usuários quatro funções SQL principais que usam recursos de IA generativa:
-
azure_ai.generate(): Gera texto ou saída estruturada usando Large Language Models (LLMs). -
azure_ai.is_true(): Avalia a probabilidade de uma determinada afirmação ser verdadeira. -
azure_ai.extract(): Extrai recursos estruturados ou entidades do texto. -
azure_ai.rank(): Reclassifica uma lista de documentos com base na relevância para uma determinada consulta.
Cada função opera através de pontos de extremidade AI Foundry registados usando a função azure_ai.set_setting, garantindo uma integração perfeita e controlo do utilizador.
Noções básicas sobre operadores semânticos
Os Operadores Semânticos na extensão de IA do Azure são projetados para simplificar tarefas complexas orientadas por IA diretamente em seu banco de dados PostgreSQL. Esses operadores permitem que os usuários integrem perfeitamente recursos de IA generativa em seus fluxos de trabalho SQL, permitindo geração avançada de texto, avaliação da verdade, extração de entidades e classificação de documentos. Cada operador é otimizado para facilidade de uso e flexibilidade, permitindo que os desenvolvedores criem aplicativos inteligentes com o mínimo de esforço.
azure_ai.generate()
Este operador usa LLMs para gerar texto ou saída estruturada.
Ele suporta os seguintes parâmetros de entrada:
| Argumento | Tipo | Descrição |
|---|---|---|
prompt |
text |
Solicitação do usuário a ser enviada para o LLM. |
json_schema (opcional) |
JsonB
DEFAULT ''
|
Esquema JSON da saída estruturada à qual você deseja que a resposta LLM adira. Deve seguir a notação Open AI para saída estruturada. |
model (opcional) |
text
DEFAULT "gpt-4.1"
|
Nome da implantação do modelo no Azure AI Foundry. |
system_prompt (opcional) |
text
DEFAULT "You are a helpful assistant."
|
Prompt do sistema a ser enviado para o LLM. |
Por padrão, o operador retorna um text valor que contém a resposta gerada. Se o json_schema argumento for fornecido, a saída será retornada como um objeto estruturado JsonB que está em conformidade com o esquema especificado.
Exemplo de utilização:
SELECT azure_ai.generate(
'Rewrite the following comment to be more polite: ' comment_text
) AS polite_comment
FROM user_comments;
SELECT review, azure_ai.generate(
prompt => 'Rewrite the following comment to be more polite and return the number of products mentioned:' || review,
json_schema => '{
"name": "generate_response",
"description": "Generate a response to the user",
"strict": true,
"schema": {
"type": "object",
"properties": {
"comment": { "type": "string" },
"num_products": { "type": "integer" }
},
"required": ["comment", "num_products"],
"additionalProperties": false
}
}',
model => 'gpt-4.1-mini'
) as polite_comment_with_count
FROM
Reviews;
azure_ai.is_true()
Este operador avalia a probabilidade de uma determinada afirmação ser verdadeira, retornando um boolean valor ou NULL se o resultado é inconclusivo.
Ele suporta os seguintes parâmetros de entrada:
| Argumento | Tipo | Descrição |
|---|---|---|
statement |
text |
Afirmação a ser avaliada como verdadeira ou falsa. |
model (opcional) |
text
DEFAULT "gpt-4.1"
|
Nome da implantação do modelo no Azure AI Foundry. |
Exemplo de utilização:
SELECT azure_ai.is_true(
'The review talks about the product: '
product_name
' Review: '
review_text
) AS is_relevant_review
FROM product_reviews;
azure_ai.extract()
Este operador extrai recursos estruturados ou entidades do texto com base em rótulos definidos pelo usuário.
Ele suporta os seguintes parâmetros de entrada:
| Argumento | Tipo | Descrição |
|---|---|---|
document |
text |
Um documento contendo as entidades e características. |
data |
array[text] |
Uma matriz de rótulos ou nomes de recursos, onde cada entrada representa um tipo de entidade distinto a ser extraído do texto de entrada. |
model (opcional) |
text
DEFAULT "gpt-4.1"
|
Nome da implantação do modelo no Azure AI Foundry. |
O operador retorna um JsonB objeto contendo as entidades extraídas mapeadas para seus rótulos correspondentes.
Exemplo de uso:
SELECT azure_ai.extract(
'The headphones are not great. They have a good design, but the sound quality is poor and the battery life is short.',
ARRAY[ 'product', 'sentiment']
);
-- Output: {"product": "headphones", "sentiment": "negative"}
SELECT azure_ai.extract(
'The music quality is good, though the call quality could have been better. The design is sleek, but still slightly heavy for convenient travel.',
ARRAY[
'design: string - comma separated list of design features of the product',
'sound: string - sound quality (e.g., music, call, noise cancellation) of the product',
'sentiment: number - sentiment score of the review; 1 (lowest) to 5 (highest)'
]
);
-- Output: {"sound": "music quality is good, call quality could have been better", "design": "sleek, slightly heavy", "sentiment": 3}
azure_ai.rank()
Este operador reclassifica documentos com base na sua relevância para uma determinada consulta. Suporta modelos cross-encoder e GPT.
Ele suporta os seguintes parâmetros de entrada:
| Argumento | Tipo | Descrição |
|---|---|---|
query |
text |
A cadeia de pesquisa usada para avaliar e classificar a relevância de cada documento. |
document_contents |
array[text] |
Uma série de documentos a serem reclassificados. |
document_ids (opcional) |
array |
Uma matriz de identificadores de documentos correspondentes aos documentos de entrada. |
model (opcional) |
text
DEFAULT "cohere-rerank-v3.5"
|
Nome da implantação do modelo no Azure AI Foundry. Suporta modelos baseados em codificador cruzado e GPT. |
O operador retorna um table contendo o ID do documento, sua classificação e a pontuação de relevância associada.
Exemplo de utilização:
SELECT azure_ai.rank(
'Best headphones for travel',
ARRAY[
'The headphones are lightweight and foldable, making them easy to carry.',
'Bad battery life, not so great for long trips.',
'The sound quality is excellent, with good noise isolation.'
]
)
SELECT azure_ai.rank(
query => 'Clear calling capability that blocks out background noise',
document_contents => ARRAY[
'The product has a great battery life, good design, and decent sound quality.',
'These headphones are perfect for long calls and music.',
'Best headphones for music lovers. Call quality could have been better.',
'The product has a good design, but it is a bit heavy. Not recommended for travel.'
],
document_ids => ARRAY['Review1', 'Review2', 'Review3', 'Review4'],
model => 'gpt-4.1'
) AS ranked_reviews;
Como começar
Para usar operadores semânticos em seu banco de dados PostgreSQL, execute estas etapas:
Configuração para .generate(), .extract()e .is_true() operadores
Esses operadores suportam modelos de conclusão de bate-papo e padrão para gpt-4.1.
Habilite a
azure_aiextensão em seu Banco de Dados do Azure para instância de servidor flexível PostgreSQL.Crie um recurso de serviço OpenAI do Azure e implante um modelo de conclusão de chat (por exemplo,
gpt-4.1). Como alternativa, você pode implantar e gerenciar modelos por meio das experiências intuitivas fornecidas pelo Azure AI Foundry.Observe a URL do ponto de extremidade do Azure OpenAI e a chave da API.
Configure o acesso:
Para habilitar a
azure_aiextensão para invocar esse modelo usando a autenticação de chave de assinatura, execute os seguintes comandos SQL:SELECT azure_ai.set_setting('azure_openai.endpoint', 'https://<endpoint>.openai.azure.com/'); SELECT azure_ai.set_setting('azure_openai.subscription_key', '<API Key>');Se você deseja usar identidades gerenciadas, consulte este artigo para executar as seguintes etapas:
- Habilite a identidade gerenciada atribuída pelo sistema para sua instância de servidor flexível do Banco de Dados do Azure para PostgreSQL e reinicie o servidor.
- Atribua a função "Usuário OpenAI dos Serviços Cognitivos" à identidade gerenciada para interagir com o recurso OpenAI do Azure.
- Defina como
azure_openai.auth_type'managed-identity'. - Defina o
azure_openai.endpointcom o URL do ponto final.
Agora você está pronto para invocar os
.generate()operadores ,.is_true()e.extract().Exemplo de uso com
gpt-4.1(padrão):SELECT name, azure_ai.generate( 'Generate a description for the product: ' || name ) AS description FROM products;Exemplo de utilização com outros modelos:
SELECT name, azure_ai.generate( 'Generate a description for the product: ' || name , 'gpt-4.1-mini' ) AS description FROM products;
Configuração para .rank() operador
O .rank() operador suporta os modelos de codificador cruzado e conclusão de bate-papo, e o padrão é o codificador Cohere-rerank-v3.5cruzado.
Usando Cohere-rerank-v3.5 o codificador cruzado:
Habilite a
azure_aiextensão em seu Banco de Dados do Azure para a instância do PostgreSQL.Navegue até o Azure AI Foundry e implante o
Cohere-rerank-v3.5modelo usando a opção de compra da API Serverless.Observe a chave de ponto de extremidade do modelo e a rota da API do Reranker , que deve ter esta aparência:
https://<deployment name>.<region>.models.ai.azure.com/<v1 or v2>/rerank.Configure o acesso:
Para habilitar a
azure_aiextensão para invocar esse modelo usando a autenticação de chave de assinatura, execute os seguintes comandos SQL:SELECT azure_ai.set_setting('azure_ml.serverless_ranking_endpoint', '<Cohere reranker API>'); SELECT azure_ai.set_setting('azure_ml.serverless_ranking_endpoint_key', '<API Key>');Se você deseja usar identidades gerenciadas, consulte este artigo para executar as seguintes etapas:
- Habilite a identidade gerenciada atribuída pelo sistema para sua instância de servidor flexível do Banco de Dados do Azure para PostgreSQL e reinicie o servidor.
- Atribua a função "Cientista de Dados do Azure Machine Learning" à identidade gerenciada para interagir com o modelo Cohere.
- Defina como
azure_ml.auth_type'managed-identity'. - Defina o
azure_ml.serverless_ranking_endpointcom a API de reclassificação Cohere.
Agora você está pronto para invocar o operador usando o
.rank()modelo de reranker Cohere.SELECT azure_ai.rank( 'Best headphones for travel', ARRAY[ 'The headphones are lightweight and foldable, making them easy to carry.', 'Bad battery life, not so great for long trips.', 'The sound quality is excellent, with good noise isolation.' ] ) AS ranked_reviews;
Para usar o .rank() operador com modelos de conclusão de chat como gpt-4.1, implante o modelo desejado no Azure OpenAI, configure a azure_ai extensão com os detalhes do ponto de extremidade do modelo e especifique o nome do modelo ao invocar o operador.
SELECT azure_ai.set_setting('azure_openai.endpoint', 'https://<endpoint>.openai.azure.com/');
SELECT azure_ai.set_setting('azure_openai.subscription_key', '<API Key>');
SELECT azure_ai.rank(
'Best headphones for travel',
ARRAY[
'The headphones are lightweight and foldable, making them easy to carry.',
'Bad battery life, not so great for long trips.',
'The sound quality is excellent, with good noise isolation.'
],
'gpt-4.1'
) AS ranked_reviews;