Esplorare lo schema di Azure OpenAI

Completato

Incorporando Azure OpenAI nel database PostgreSQL, è possibile creare app altamente scalabili basate sull'intelligenza artificiale. Questa integrazione consente di usare il linguaggio SQL familiare e la flessibilità di PostgreSQL per creare soluzioni intelligenti all'interno del livello del database. Che si tratti dell'elaborazione del linguaggio naturale, dei sistemi di raccomandazione o della generazione di contenuti, Azure OpenAI potenzia le tue applicazioni.

Lo azure_openai schema installato dall'estensione azure_ai consente di connettersi e interagire con un'istanza del servizio OpenAI di Azure. Questo schema consente una perfetta integrazione con il servizio Azure OpenAI, consentendo di creare potenti applicazioni di intelligenza artificiale generative direttamente dal database PostgreSQL.

Creare incorporamenti

Con lo azure_openai schema è possibile chiamare la create_embeddings() funzione , che genera incorporamenti vettoriali dal livello del database. Questi incorporamenti consentono l'archiviazione, l'indicizzazione e l'esecuzione di query efficienti su vettori altamente dimensionali. La funzione può assumere due forme:

  • azure_openai.create_embeddings(text,text,integer,boolean,integer,integer)
  • azure_openai.create_embeddings(text,text[],integer,integer,boolean,integer,integer)

Nella tabella seguente vengono descritti gli argomenti previsti dalla funzione :

Argomentazione TIPO Predefinito Descrizione
deployment_name text Nome della distribuzione modello di incorporamento in Azure OpenAI Studio. Questo nome si riferisce in genere a una distribuzione del text-embeddings-ada-002 modello.
input text o text[] Testo di input (o matrice di testo di input) per cui vengono creati gli incorporamenti vettoriali.
dimensione del batch integer 100 Si applica solo quando l'argomento input è una matrice di text valori. batch_size specifica il numero di record dalla matrice da elaborare contemporaneamente.
timeout_ms integer NULL::integer Timeout in millisecondi dopo il quale l'operazione viene arrestata.
throw_on_error boolean true Flag che indica se la funzione deve, in caso di errore, generare un'eccezione, generando un rollback delle transazioni di wrapping.
max_attempts integer 1 Numero di tentativi di ripetizione della chiamata al Servizio OpenAI di Azure in caso di errore.
retry_delay_ms integer 1000 Quantità di tempo, in millisecondi, di attesa prima di tentare di ripetere la chiamata all'endpoint del servizio OpenAI di Azure.

Configurare una connessione ad Azure OpenAI

Prima di usare le azure_openai funzioni, configurare l'estensione con l'endpoint e la chiave del servizio OpenAI di Azure. Il comando seguente rappresenta le query da usare per impostare l'endpoint e la chiave necessari per connettersi all'istanza di Azure OpenAI:

SELECT azure_ai.set_setting('azure_openai.endpoint', '{endpoint}');
SELECT azure_ai.set_setting('azure_openai.subscription_key', '{api-key}');

È quindi possibile usare la get_setting() funzione per verificare le impostazioni scritte nella azure_ai.settings tabella di configurazione:

SELECT azure_ai.get_setting('azure_openai.endpoint');
SELECT azure_ai.get_setting('azure_openai.subscription_key');

Abilitare il supporto vettoriale con l'estensione vettoriale

La azure_openai.create_embeddings() funzione nell'estensione azure_ai consente di generare incorporamenti per il testo di input. Per abilitare l'archiviazione dei vettori generati insieme al resto dei dati nel database, è necessario installare l'estensione vector seguendo le indicazioni riportate nella documentazione relativa all'abilitazione del vettore nella documentazione del database.

È possibile installare l'estensione vector usando il comando CREATE EXTENSION .

CREATE EXTENSION IF NOT EXISTS vector;

Generare e archiviare vettori

Nell'applicazione di raccomandazione per le proprietà di noleggio basate sull'intelligenza artificiale che si sta sviluppando per Margie's Travel, è necessario aggiungere una nuova colonna alla tabella di destinazione usando il vector tipo di dati per archiviare gli incorporamenti all'interno di tale tabella dopo aver aggiunto il supporto vettoriale al database. I vettori sono abilitati nella listings tabella per consentire funzionalità di ricerca semantica durante l'esecuzione di query per cercare le proprietà disponibili. Il text-embedding-ada-002 modello produce vettori con 1.536 dimensioni, quindi è necessario specificare 1536 come dimensione vettoriale.

ALTER TABLE listings
ADD COLUMN description_vector vector(1536);

La tabella listings è ora pronta per archiviare gli incorporamenti. Usando la funzione azure_openai.create_embeddings(), si creano vettori per il campo description e da inserire nella colonna appena creata description_vector nella tabella listings.

UPDATE listings
SET description_vector = azure_openai.create_embeddings('{your-deployment-name}', description);

Ogni incorporamento è un vettore di numeri a virgola mobile, quindi la distanza tra due incorporamenti nello spazio vettoriale è correlata alla somiglianza semantica tra due input nel formato originale.