Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De Azure AI-extensie introduceert Semantic Operators, een functie die geavanceerde AI-mogelijkheden (GenAI) rechtstreeks integreert in PostgreSQL SQL. Door deze operators te gebruiken, die modellen zoals chatvoltooiing en andere Azure AI-implementaties gebruiken, kunnen ontwikkelaars genAI-gestuurde toepassingen rechtstreeks in hun databases bouwen. Deze integratie biedt nieuwe mogelijkheden voor het begrijpen van tekst, redenering en het genereren van gestructureerde uitvoer.
Belangrijkste kenmerken
De Semantische operators bieden gebruikers vier kernfuncties voor SQL die gebruikmaken van generatieve AI-mogelijkheden:
-
azure_ai.generate(): genereert tekst of gestructureerde uitvoer met behulp van LLM's (Large Language Models). -
azure_ai.is_true(): Evalueert de kans dat een gegeven verklaring waar is. -
azure_ai.extract(): extraheert gestructureerde functies of entiteiten uit tekst. -
azure_ai.rank(): hiermee wordt een lijst met documenten opnieuw geherrankt op basis van relevantie voor een bepaalde query.
Elke functie werkt via Microsoft Foundry-eindpunten die zijn geregistreerd met behulp van de azure_ai.set_setting functie, waardoor naadloze integratie en gebruikersbeheer mogelijk zijn.
Begrijpen van semantische operatoren
Semantische operators in de Azure AI-extensie vereenvoudigen complexe AI-gestuurde taken rechtstreeks in uw PostgreSQL-database. Door deze operators te gebruiken, kunt u naadloos generatieve AI-mogelijkheden integreren in uw SQL-werkstromen. U kunt geavanceerde tekstgeneratie, waarheidsevaluatie, entiteitextractie en documentclassificatie uitvoeren. Elke operator is geoptimaliseerd voor gebruiksgemak en flexibiliteit, zodat u intelligente toepassingen met minimale inspanning kunt bouwen.
azure_ai.generate()
Gebruik deze operator om tekst of gestructureerde uitvoer te genereren met behulp van LLM's.
Het ondersteunt de volgende invoerparameters:
| Argument | Type | Description |
|---|---|---|
prompt |
text |
Gebruikersprompt om naar de LLM te verzenden. |
json_schema (optioneel) |
JsonB
DEFAULT ''
|
JSON-schema van de gestructureerde uitvoer die u wilt laten volgen door het LLM-antwoord. Moet de OpenAI-notatie voor gestructureerde uitvoer volgen. |
model (optioneel) |
text
DEFAULT "gpt-4.1"
|
Naam van de modelimplementatie in Foundry. |
system_prompt (optioneel) |
text
DEFAULT "You are a helpful assistant."
|
Systeemprompt om naar de LLM te verzenden. |
De operator retourneert standaard een text waarde die het gegenereerde antwoord bevat. Als u het json_schema argument opgeeft, retourneert de operator de uitvoer als een gestructureerd JsonB object dat voldoet aan het opgegeven schema.
Voorbeeldgebruik:
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()
Deze operator evalueert de kans dat een bepaalde stelling waar is. Het retourneert een boolean waarde of NULL als het resultaat niet overtuigend is.
Het ondersteunt de volgende invoerparameters:
| Argument | Type | Description |
|---|---|---|
statement |
text |
Stelling om als waar of onwaar te beoordelen. |
model (optioneel) |
text
DEFAULT "gpt-4.1"
|
Naam van de modelimplementatie in Foundry. |
Voorbeeldgebruik:
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()
Gebruik deze operator om gestructureerde functies of entiteiten uit tekst te extraheren op basis van door de gebruiker gedefinieerde labels.
Het ondersteunt de volgende invoerparameters:
| Argument | Type | Description |
|---|---|---|
document |
text |
Een document met de entiteiten en functies. |
data |
array[text] |
Een matrix met labels of functienamen, waarbij elke vermelding een uniek entiteitstype vertegenwoordigt dat moet worden geëxtraheerd uit de invoertekst. |
model (optioneel) |
text
DEFAULT "gpt-4.1"
|
Naam van de modelimplementatie in Foundry. |
De operator retourneert een JsonB object met de geëxtraheerde entiteiten die zijn toegewezen aan de bijbehorende labels.
Voorbeeldgebruik:
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()
Gebruik deze operator om documenten opnieuw in te stellen op basis van hun relevantie voor een bepaalde query. Het biedt ondersteuning voor cross-encoder- en GPT-modellen.
Het ondersteunt de volgende invoerparameters:
| Argument | Type | Description |
|---|---|---|
query |
text |
De zoekreeks die wordt gebruikt om de relevantie van elk document te evalueren en rangschikken. |
document_contents |
array[text] |
Een matrix met documenten die moeten worden gererankeerd. |
document_ids (optioneel) |
array |
Een matrix met document-id's die overeenkomen met de invoerdocumenten. |
model (optioneel) |
text
DEFAULT "cohere-rerank-v3.5"
|
Naam van de modelimplementatie in Foundry. Ondersteunt zowel cross-encoder- als GPT-modellen. |
De operator retourneert een table met de document-id, de rang en de bijbehorende relevantiescore.
Voorbeeldgebruik:
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;
Aan de slag
Als u Semantic Operators in uw PostgreSQL-database wilt gebruiken, voert u de volgende stappen uit:
Instellen voor .generate(), .extract(), en .is_true() operators
Deze operators ondersteunen chatvoltooiingsmodellen en staan standaard op gpt-4.1.
Schakel de
azure_aiextensie in op uw flexibele Azure Database for PostgreSQL-serverinstantie.Maak een Azure OpenAI-serviceresource en implementeer een voltooiingsmodel voor chats (bijvoorbeeld
gpt-4.1). U kunt ook modellen implementeren en beheren via de intuïtieve ervaringen van Foundry.Noteer de AZURE OpenAI-eindpunt-URL en API-sleutel.
Toegang configureren:
Voer de volgende SQL-opdrachten uit om de
azure_aiextensie in te schakelen om dit model aan te roepen met behulp van verificatie met abonnementssleutels:SELECT azure_ai.set_setting('azure_openai.endpoint', 'https://<endpoint>.openai.azure.com/'); SELECT azure_ai.set_setting('azure_openai.subscription_key', '<API Key>');Als u in plaats daarvan beheerde identiteiten wilt gebruiken, raadpleegt u dit artikel om de volgende stappen uit te voeren:
- Schakel door het systeem toegewezen beheerde identiteit in voor uw exemplaar van flexibele Azure Database for PostgreSQL-server en start de server opnieuw op.
- Wijs de rol Cognitive Services OpenAI-gebruiker toe aan de beheerde identiteit om te communiceren met de Azure OpenAI-resource.
- Stel de
azure_openai.auth_typein op 'managed-identity'. - Stel de
azure_openai.endpointin met de eindpunt-URL.
U bent nu klaar om de
.generate(),.is_true(), en.extract()operatoren aan te roepen.Voorbeeldgebruik met
gpt-4.1(standaard):SELECT name, azure_ai.generate( 'Generate a description for the product: ' || name ) AS description FROM products;Voorbeeld van gebruik met andere modellen:
SELECT name, azure_ai.generate( 'Generate a description for the product: ' || name , 'gpt-4.1-mini' ) AS description FROM products;
Instelling voor .rank() operator
De .rank() operator ondersteunt zowel cross encoders als modellen voor het invullen van chat. Deze wordt standaard ingesteld op de cross-encoder Cohere-rerank-v3.5.
Met behulp van Cohere-rerank-v3.5 cross-encoder:
Schakel de
azure_aiextensie in op uw Azure Database for PostgreSQL-exemplaar.Ga naar Foundry en implementeer het
Cohere-rerank-v3.5model met behulp van de optie voor het aanschaffen van een serverloze API.Noteer de eindpuntsleutel van het model en de Route van de Reranker-API. Het ziet er ongeveer als volgt uit:
https://<deployment name>.<region>.models.ai.azure.com/<v1 or v2>/rerank.Toegang configureren:
Voer de volgende SQL-opdrachten uit om de
azure_aiextensie in te schakelen om dit model aan te roepen met behulp van verificatie met abonnementssleutels: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>');Als u in plaats daarvan beheerde identiteiten wilt gebruiken, raadpleegt u dit artikel om de volgende stappen uit te voeren:
- Schakel door het systeem toegewezen beheerde identiteit in voor uw exemplaar van flexibele Azure Database for PostgreSQL-server en start de server opnieuw op.
- Wijs de rol 'Azure Machine Learning Data Scientist' toe aan de beheerde identiteit om te communiceren met het Cohere-model.
- Stel de
azure_ml.auth_typein op 'managed-identity'. - Stel de
azure_ml.serverless_ranking_endpointin met de Cohere-reranker-API.
U bent nu helemaal klaar om de
.rank()operator aan te roepen door het Cohere terugranking-model te gebruiken.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;
Als u de .rank() operator wilt gebruiken met modellen voor chatvoltooiing, zoals gpt-4.1, implementeert u het gewenste model in Azure OpenAI, configureert u de azure_ai extensie met de eindpuntgegevens van het model en geeft u de modelnaam op bij het aanroepen van de operator.
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;