Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La extensión de Azure AI presenta operadores semánticos, una característica innovadora que integra funcionalidades avanzadas de generación de IA (GenAI) directamente en PostgreSQL SQL. Estos operadores, que funcionan con modelos como la finalización de chat y otras implementaciones de Azure AI, permiten a los desarrolladores crear aplicaciones controladas por GenAI directamente dentro de sus bases de datos. Esto desbloquea nuevas funcionalidades para comprender texto, razonamiento y generar salidas estructuradas.
Características clave
Los operadores semánticos proporcionan a los usuarios cuatro funciones SQL principales que usan funcionalidades de IA generativas:
-
azure_ai.generate(): genera texto o salida estructurada mediante modelos de lenguaje grande (LLM). -
azure_ai.is_true(): evalúa la probabilidad de que una declaración determinada sea verdadera. -
azure_ai.extract(): extrae características estructuradas o entidades del texto. -
azure_ai.rank(): reorganiza una lista de documentos según la relevancia de una consulta dada.
Cada función funciona a través de puntos de conexión de AI Foundry registrados mediante la azure_ai.set_setting función , lo que garantiza una integración y un control de usuario sin problemas.
Descripción de los operadores semánticos
Los operadores semánticos en la extensión de Azure AI están diseñados para simplificar las tareas complejas impulsadas por IA directamente dentro de su base de datos PostgreSQL. Estos operadores permiten a los usuarios integrar sin problemas las funcionalidades de inteligencia artificial generativa en sus flujos de trabajo de SQL, lo que permite la generación avanzada de texto, la evaluación de la verdad, la extracción de entidades y la clasificación de documentos. Cada operador está optimizado para facilitar el uso y la flexibilidad, lo que permite a los desarrolladores crear aplicaciones inteligentes con un esfuerzo mínimo.
azure_ai.generate()
Este operador usa LLMs para generar texto o salida estructurada.
Admite los siguientes parámetros de entrada:
| Argumento | Tipo | Descripción |
|---|---|---|
prompt |
text |
Indicación de usuario que se enviará al LLM. |
json_schema (opcional) |
JsonB
DEFAULT ''
|
Esquema JSON de la salida estructurada a la que desea que se ajuste la respuesta de LLM. Debe seguir la notación Open AI para la salida estructurada. |
model (opcional) |
text
DEFAULT "gpt-4.1"
|
Nombre de la implementación del modelo en Azure AI Foundry. |
system_prompt (opcional) |
text
DEFAULT "You are a helpful assistant."
|
Indicación del sistema que se va a enviar al LLM. |
De forma predeterminada, el operador devuelve un text valor que contiene la respuesta generada. Si se proporciona el json_schema argumento , la salida se devuelve como un objeto estructurado JsonB que se ajusta al esquema especificado.
Ejemplo de uso:
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 evalúa la probabilidad de que una instrucción determinada sea true, devolviendo un boolean valor o NULL si el resultado es inconcluso.
Admite los siguientes parámetros de entrada:
| Argumento | Tipo | Descripción |
|---|---|---|
statement |
text |
Declaración a evaluar como verdadero o falso. |
model (opcional) |
text
DEFAULT "gpt-4.1"
|
Nombre de la implementación del modelo en Azure AI Foundry. |
Ejemplo de uso:
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 extrae características estructuradas o entidades de texto basadas en etiquetas definidas por el usuario.
Admite los siguientes parámetros de entrada:
| Argumento | Tipo | Descripción |
|---|---|---|
document |
text |
Documento que contiene las entidades y características. |
data |
array[text] |
Matriz de etiquetas o nombres de características, donde cada entrada representa un tipo de entidad distinto que se va a extraer del texto de entrada. |
model (opcional) |
text
DEFAULT "gpt-4.1"
|
Nombre de la implementación del modelo en Azure AI Foundry. |
El operador devuelve un JsonB objeto que contiene las entidades extraídas asignadas a sus etiquetas correspondientes.
Uso de ejemplo:
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 reordena los documentos en función de su relevancia para una consulta específica. Admite modelos de codificadores cruzados y GPT.
Admite los siguientes parámetros de entrada:
| Argumento | Tipo | Descripción |
|---|---|---|
query |
text |
Cadena de búsqueda utilizada para evaluar y clasificar la relevancia de cada documento. |
document_contents |
array[text] |
Array de documentos que se van a reordenar. |
document_ids (opcional) |
array |
Matriz de identificadores de documento correspondientes a los documentos de entrada. |
model (opcional) |
text
DEFAULT "cohere-rerank-v3.5"
|
Nombre de la implementación del modelo en Azure AI Foundry. Admite tanto modelos de cross-encoder como modelos basados en GPT. |
El operador devuelve un table objeto que contiene el identificador del documento, su clasificación y la puntuación de relevancia asociada.
Ejemplo de uso:
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;
Cómo empezar
Para usar operadores semánticos en la base de datos postgreSQL, siga estos pasos:
Configuración de .generate(), los operadores .extract() y .is_true()
Estos operadores admiten modelos de finalización de chat y el valor predeterminado es gpt-4.1.
Habilite la extensión en la
azure_aiinstancia de servidor flexible de Azure Database for PostgreSQL.Cree un recurso de servicio de Azure OpenAI e implemente un modelo de finalización de chat (por ejemplo,
gpt-4.1). Como alternativa, puede implementar y administrar modelos a través de las experiencias intuitivas proporcionadas por Azure AI Foundry.Tenga en cuenta la dirección URL del punto de conexión de Azure OpenAI y la clave de API.
Configurar el acceso:
Para habilitar la
azure_aiextensión para invocar este modelo mediante la autenticación de clave de suscripción, ejecute los siguientes 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>');Si desea usar identidades administradas en su lugar, consulte este artículo para realizar los pasos siguientes:
- Habilite la identidad administrada asignada por el sistema para la instancia de servidor flexible de Azure Database for PostgreSQL y reinicie el servidor.
- Asigne el rol "Usuario de Cognitive Services OpenAI" a la identidad administrada para interactuar con el recurso de Azure OpenAI.
- Establezca
azure_openai.auth_typeen "managed-identity". - Configure el
azure_openai.endpointcon la URL del punto de conexión.
Ahora estás listo para invocar los operadores
.generate(),.is_true(), y.extract().Uso de ejemplo con
gpt-4.1(valor predeterminado):SELECT name, azure_ai.generate( 'Generate a description for the product: ' || name ) AS description FROM products;Uso de ejemplo con otros modelos:
SELECT name, azure_ai.generate( 'Generate a description for the product: ' || name , 'gpt-4.1-mini' ) AS description FROM products;
Configuración del .rank() operador
El .rank() operador admite tanto los modelos de codificador cruzado como de finalización de chat, y por defecto utiliza el codificador cruzado Cohere-rerank-v3.5.
Uso del Cohere-rerank-v3.5 codificador cruzado:
Habilite la extensión
azure_aien su instancia de Azure Database for PostgreSQL.Vaya a Azure AI Foundry e implemente el
Cohere-rerank-v3.5modelo mediante la opción de compra de API sin servidor.Tenga en cuenta la clave de punto de conexión del modelo y la ruta de la API reranker , que debe tener un aspecto similar al siguiente:
https://<deployment name>.<region>.models.ai.azure.com/<v1 or v2>/rerank.Configurar el acceso:
Para habilitar la
azure_aiextensión para invocar este modelo mediante la autenticación de clave de suscripción, ejecute los siguientes 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>');Si desea usar identidades administradas en su lugar, consulte este artículo para realizar los pasos siguientes:
- Habilite la identidad administrada asignada por el sistema para la instancia de servidor flexible de Azure Database for PostgreSQL y reinicie el servidor.
- Asigne el rol "Científico de datos de Azure Machine Learning" a la identidad administrada para interactuar con el modelo de Cohere.
- Establezca
azure_ml.auth_typeen "managed-identity". - Establezca el
azure_ml.serverless_ranking_endpointcon la API de reranker de Cohere.
Ahora está listo para invocar el
.rank()operador usando el modelo reranker de 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 el .rank() operador con modelos de finalización de chat como gpt-4.1, implemente el modelo deseado en Azure OpenAI, configure la azure_ai extensión con los detalles del punto de conexión del modelo y especifique el nombre del modelo al invocar el 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;