Semantische operators verkennen
De azure_ai extensie bevat een kleine set semantische operators waarmee u rechtstreeks in SQL kunt werken met generatieve AI-modellen. Deze operators helpen u bij het genereren van tekst, het evalueren van instructies, het extraheren van gestructureerde informatie en het rangschikken van documenten. Elke operator roept een model aan dat u in de azure_ai.settings tabel hebt geconfigureerd.
De semantische operatoren zijn:
-
azure_ai.generate– genereert tekst en kan gestructureerde JSON retourneren wanneer een schema wordt opgegeven. -
azure_ai.is_true– evalueert een uitdrukking en geeft aan of het waarschijnlijk waar is. -
azure_ai.extract– haalt specifieke velden of waarden op uit ongestructureerde tekst. -
azure_ai.rank– retourneert een op relevantie gerangschikte lijst met documenten voor een bepaalde query.
De operator generate
azure_ai.generate verzendt een prompt naar een model en retourneert de gegenereerde tekst. Als u een JSON-schema opgeeft, probeert het model gestructureerde gegevens te retourneren die aan dat schema voldoen. Deze methode is handig wanneer u uitvoer nodig hebt die wordt gebruikt door volgende SQL-logica.
Voorbeeld:
SELECT azure_ai.generate(
prompt => 'Summarize the following review: ' || review_text
)
FROM product_reviews;
Als er een schema wordt opgegeven, wordt het resultaat geretourneerd als jsonb.
De operator is_true
azure_ai.is_true evalueert een instructie en retourneert true, falseof NULL als het model het antwoord niet kan bepalen. Deze operator is handig als u wilt controleren of een stuk tekst voldoet aan een voorwaarde of verwijst naar een specifiek concept.
Voorbeeld:
SELECT azure_ai.is_true(
'This review describes the product as durable: ' || review_text
) AS durability_claim
FROM product_reviews;
De operator extract
azure_ai.extract identificeert specifieke velden in een document. U geeft een matrix met labels op en het model retourneert een jsonb object met de geëxtraheerde waarden. Deze operator is geschikt voor het ophalen van gestructureerde details uit langere tekst.
Voorbeeld:
SELECT azure_ai.extract(
'The headphones have clear sound but the battery life is short.',
ARRAY['sound_quality', 'battery_life']
);
Het resultaat is een JSON-document met de aangevraagde velden.
De operator rank
azure_ai.rank retourneert documenten die zijn gerangschikt op relevantie voor een query. U geeft de querytekst en een matrix met documenten op. De operator retourneert een rijenset die elk document, de rangschikking en een score bevat. Deze rijenset is handig als u wilt dat het model bepaalt welke items het meest relevant zijn voor de zoekopdracht van een gebruiker.
Voorbeeld:
SELECT *
FROM azure_ai.rank(
'Lightweight travel headphones',
ARRAY[
'These foldable headphones are easy to pack.',
'Battery life is average.',
'Sound quality is very detailed.'
]
);
De operator retourneert één rij per document met classificatiegegevens.
Configuratie
Alle semantische operators zijn afhankelijk van de modelconfiguratie die is opgeslagen in azure_ai.settings. Voordat u de operators aanroept, moet u ervoor zorgen dat u het eindpunt en de sleutel instelt voor het model dat u wilt gebruiken.
Voorbeeld:
SELECT azure_ai.set_setting('azure_openai.endpoint', '{endpoint}');
SELECT azure_ai.set_setting('azure_openai.api_key', '{api_key}');
Zodra de instellingen zijn ingesteld, kunnen de semantische operators worden gebruikt in standaard SQL-query's, weergaven of opgeslagen procedures.
Takeaways
Semantische operators in de azure_ai extensie bieden krachtige mogelijkheden om generatieve AI rechtstreeks in uw SQL-werkstromen te integreren. Met behulp van deze operators kunt u uw toepassingen verbeteren met tekstgeneratie, waarheidsevaluatie, gegevensextractie en documentclassificatie, allemaal in de vertrouwde context van een PostgreSQL-database.