Esplorare gli operatori semantici

Completato

L'estensione azure_ai include un piccolo set di operatori semantici che consentono di usare modelli di intelligenza artificiale generativi direttamente in SQL. Questi operatori consentono di generare testo, valutare istruzioni, estrarre informazioni strutturate e classificare documenti. Ogni operatore chiama un modello configurato nella azure_ai.settings tabella.

Gli operatori semantici sono:

  • azure_ai.generate : genera testo e può restituire json strutturato quando viene fornito uno schema.
  • azure_ai.is_true : valuta una dichiarazione e restituisce se è probabile che sia vero.
  • azure_ai.extract : esegue il pull di campi o valori specifici da testo non strutturato.
  • azure_ai.rank : restituisce un elenco di documenti classificati per pertinenza per una determinata query.

Operatore generate

azure_ai.generate invia un prompt a un modello e restituisce il testo generato. Se si specifica uno schema JSON, il modello tenta di restituire dati strutturati conformi a tale schema. Questo metodo è utile quando è necessario un output utilizzato dalla logica SQL successiva.

Esempio:

SELECT azure_ai.generate(
  prompt => 'Summarize the following review: ' || review_text
)
FROM product_reviews;

Se viene specificato uno schema, il risultato viene restituito come jsonb.

Operatore is_true

azure_ai.is_true valuta un'istruzione e restituisce true, falseo NULL se il modello non è in grado di determinare la risposta. Questo operatore è utile quando è necessario verificare se una parte di testo soddisfa una condizione o fa riferimento a un concetto specifico.

Esempio:

SELECT azure_ai.is_true(
  'This review describes the product as durable: ' || review_text
) AS durability_claim
FROM product_reviews;

Operatore extract

azure_ai.extract identifica campi specifici all'interno di un documento. Si specifica una matrice di etichette e il modello restituisce un jsonb oggetto contenente i valori estratti. Questo operatore è particolarmente adatto per estrarre dettagli strutturati da testi più lunghi.

Esempio:

SELECT azure_ai.extract(
  'The headphones have clear sound but the battery life is short.',
  ARRAY['sound_quality', 'battery_life']
);

Il risultato è un documento JSON contenente i campi richiesti.

Operatore rank

azure_ai.rank restituisce i documenti ordinati in base alla pertinenza di una query. Fornire il testo della query e un elenco di documenti. L'operatore restituisce un set di righe che include ogni documento, il relativo rango e un punteggio. Questo set di righe è utile quando si desidera che il modello consenta di determinare quali elementi sono più rilevanti per la ricerca di un utente.

Esempio:

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.'
  ]
);

L'operatore restituisce una riga per documento con informazioni sulla classificazione.

Configurazione

Tutti gli operatori semantici si basano sulla configurazione del modello archiviata in azure_ai.settings. Prima di chiamare gli operatori, assicurarsi di impostare l'endpoint e la chiave per il modello che si intende usare.

Esempio:

SELECT azure_ai.set_setting('azure_openai.endpoint', '{endpoint}');
SELECT azure_ai.set_setting('azure_openai.api_key', '{api_key}');

Una volta configurate le impostazioni, gli operatori semantici possono essere usati nelle query, viste o stored procedure SQL standard.

Risultati

Gli operatori semantici nell'estensione azure_ai offrono potenti funzionalità per integrare l'intelligenza artificiale generativa direttamente nei flussi di lavoro SQL. Usando questi operatori, è possibile migliorare le applicazioni con generazione di testo, valutazione della verità, estrazione di informazioni e classificazione dei documenti, tutto all'interno del contesto familiare di un database PostgreSQL.