Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'estensione azure_ai introduce le funzioni di intelligenza artificiale, una funzionalità che integra le funzionalità di intelligenza artificiale generative avanzate (GenAI) direttamente in PostgreSQL SQL. Usando queste funzioni con modelli come il completamento della chat, gli incorporamenti e altre distribuzioni di modelli Foundry, gli sviluppatori possono creare applicazioni basate su GenAI direttamente all'interno dei database. Questa integrazione sblocca nuove funzionalità per la generazione di incorporamenti vettoriali, comprensione del testo, ragionamento e generazione di output strutturati.
Funzionalità principali
Le funzioni di intelligenza artificiale forniscono agli utenti cinque funzioni SQL di base che usano funzionalità di intelligenza artificiale generative:
-
azure_ai.generate(): genera testo o output strutturato usando modelli di linguaggio di grandi dimensioni. -
azure_ai.is_true(): valuta la probabilità che una determinata istruzione sia vera. -
azure_ai.extract(): estrae funzionalità o entità strutturate dal testo. -
azure_ai.rank(): classifica un elenco di documenti in base alla pertinenza di una determinata query. - Genera incorporamenti vettoriali con Azure OpenAI in Azure Database per PostgreSQL: crea incorporamenti vettoriali per un testo di input specificato.
Ogni funzione opera tramite gli endpoint di Microsoft Foundry registrati usando la azure_ai.set_setting funzione, garantendo un'integrazione e un controllo utente senza problemi.
Informazioni sulle funzioni di intelligenza artificiale
Le funzioni di intelligenza artificiale nell'estensione azure_ai semplificano attività complesse guidate dall'intelligenza artificiale direttamente all'interno del database PostgreSQL. Usando queste funzioni, è possibile integrare facilmente le funzionalità di intelligenza artificiale generative nei flussi di lavoro SQL. È possibile eseguire la generazione avanzata del testo, la valutazione della verità, l'estrazione di entità e la classificazione dei documenti. Ogni funzione è ottimizzata per semplificare l'uso e la flessibilità, in modo da poter creare applicazioni intelligenti con un minimo sforzo.
azure_ai.generate()
Utilizzare questa funzione per generare testo o output strutturato utilizzando LLM.
Supporta i parametri di input seguenti:
| Argument | Type | Description |
|---|---|---|
prompt |
text |
Richiesta dell'utente da inviare al modello linguistico di grandi dimensioni. |
json_schema (facoltativo) |
JsonB
DEFAULT ''
|
Schema JSON dell'output strutturato che si vuole che la risposta LLM segua. Deve seguire la notazione OpenAI per l'output strutturato. |
model (facoltativo) |
text
DEFAULT "gpt-4.1"
|
Nome della distribuzione del modello in Foundry. |
system_prompt (facoltativo) |
text
DEFAULT "You are a helpful assistant."
|
Prompt di sistema da inviare al modello linguistico di grandi dimensioni. |
Per impostazione predefinita, la funzione restituisce un text valore contenente la risposta generata. Se si specifica l'argomento json_schema , la funzione restituisce l'output come oggetto strutturato JsonB conforme allo schema specificato.
Esempio di utilizzo:
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()
Questa funzione valuta la probabilità che una determinata istruzione sia vera. Restituisce un boolean valore o NULL se il risultato è inconcludente.
Supporta i parametri di input seguenti:
| Argument | Type | Description |
|---|---|---|
statement |
text |
Istruzione da valutare come true o false. |
model (facoltativo) |
text
DEFAULT "gpt-4.1"
|
Nome della distribuzione del modello in Foundry. |
Esempio di utilizzo:
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()
Usare questa funzione per estrarre funzionalità o entità strutturate dal testo in base alle etichette definite dall'utente.
Supporta i parametri di input seguenti:
| Argument | Type | Description |
|---|---|---|
document |
text |
Documento contenente le entità e le funzionalità. |
data |
array[text] |
Matrice di etichette o nomi di funzionalità, in cui ogni voce rappresenta un tipo di entità distinto da estrarre dal testo di input. |
model (facoltativo) |
text
DEFAULT "gpt-4.1"
|
Nome della distribuzione del modello in Foundry. |
La funzione restituisce un JsonB oggetto contenente le entità estratte mappate alle etichette corrispondenti.
Esempio di utilizzo:
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()
Usare questa funzione per riordinare i documenti in base alla pertinenza di una determinata query. Supporta modelli tra codificatori e GPT.
Supporta i parametri di input seguenti:
| Argument | Type | Description |
|---|---|---|
query |
text |
La stringa di ricerca usata per valutare e classificare la pertinenza di ogni documento. |
document_contents |
array[text] |
Una matrice di documenti da riassegnare. |
document_ids (facoltativo) |
array |
Una matrice di identificatori di documento corrispondenti ai documenti di input. |
model (facoltativo) |
text
DEFAULT "cohere-rerank-v3.5"
|
Nome della distribuzione del modello in Foundry. Supporta sia il codificatore incrociato che i modelli basati su GPT. |
La funzione restituisce un oggetto table contenente l'ID documento, la relativa classificazione e il punteggio di pertinenza associato.
Esempio di utilizzo:
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;
Come iniziare
Per usare le funzioni di intelligenza artificiale nel database PostgreSQL, seguire questa procedura:
Configurazione delle funzioni .generate(), .extract() e .is_true()
Queste funzioni supportano i modelli di completamento della chat e l'impostazione predefinita è gpt-4.1.
Abilitare l'estensione
azure_ainell'istanza del server flessibile di Database di Azure per PostgreSQL.Creare una risorsa del Servizio Azure OpenAI e distribuire un modello di completamento della chat, ad esempio
gpt-4.1. In alternativa, è possibile distribuire e gestire i modelli tramite le esperienze intuitive fornite da Foundry.Si noti Azure OpenAI in Foundry Models endpoint URL e API key.
Configurare l'accesso:
Per abilitare l'estensione
azure_aiper richiamare questo modello usando l'autenticazione della chiave di sottoscrizione, eseguire i comandi SQL seguenti:SELECT azure_ai.set_setting('azure_openai.endpoint', 'https://<endpoint>.openai.azure.com/'); SELECT azure_ai.set_setting('azure_openai.subscription_key', '<API Key>');Per usare invece le identità gestite, fare riferimento a questo articolo per eseguire la procedura seguente:
- Abilitare l'identità gestita assegnata dal sistema per il server flessibile della tua istanza di Azure Database per PostgreSQL e riavviare il server.
- Assegnare il ruolo "Utente OpenAI di Servizi cognitivi" all'identità gestita per interagire con la risorsa Azure OpenAI.
- Impostare
azure_openai.auth_typesu "managed-identity". - Impostare
azure_openai.endpointcon l'URL dell'endpoint.
Sei ora tutto impostato per richiamare le funzioni
.generate(),.is_true()e.extract().Esempio di utilizzo con
gpt-4.1(impostazione predefinita):SELECT name, azure_ai.generate( 'Generate a description for the product: ' || name ) AS description FROM products;Esempio di utilizzo con altri modelli:
SELECT name, azure_ai.generate( 'Generate a description for the product: ' || name , 'gpt-4.1-mini' ) AS description FROM products;
Configurazione della funzione .rank()
La funzione .rank() supporta sia i modelli cross-encoder che i modelli di completamento chat. Per impostazione predefinita, viene utilizzato il codificatore incrociato Cohere-rerank-v3.5.
Per usare il Cohere-rerank-v3.5 codificatore incrociato:
Abilita l'estensione
azure_aisulla tua istanza del Database di Azure per PostgreSQL.Passare a Foundry e distribuire il
Cohere-rerank-v3.5modello usando l'opzione di acquisto dell'API serverless.Prendere nota della chiave di endpoint del modello e della route API Reranker. Dovrebbe essere simile al seguente:
https://<deployment name>.<region>.models.ai.azure.com/<v1 or v2>/rerank.Configurare l'accesso:
Per abilitare l'estensione
azure_aiper richiamare questo modello usando l'autenticazione della chiave di sottoscrizione, eseguire i comandi SQL seguenti: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>');Per usare invece le identità gestite, fare riferimento a questo articolo per eseguire la procedura seguente:
- Abilitare l'identità gestita assegnata dal sistema per il server flessibile della tua istanza di Azure Database per PostgreSQL e riavviare il server.
- Assegnare il ruolo "Scienziato dei dati di Azure Machine Learning" all'identità gestita per interagire con il modello Cohere.
- Impostare
azure_ml.auth_typesu "managed-identity". - Impostare
azure_ml.serverless_ranking_endpointcon l'API Cohere reranker.
A questo punto è tutto impostato per richiamare la
.rank()funzione usando il modello cohere reranker.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;
Per usare la funzione .rank() con modelli di completamento della chat come gpt-4.1, distribuire il modello desiderato in Azure OpenAI, configurare l'estensione azure_ai con i dettagli dell'endpoint del modello e specificare il nome del modello quando si richiama la funzione.
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;