Utforska Azure OpenAI-schemat

Slutförd

Genom att införliva Azure OpenAI i din PostgreSQL-databas kan du skapa mycket skalbara AI-baserade appar. Med den här integreringen kan du använda det välbekanta SQL-språket och flexibiliteten i PostgreSQL för att skapa intelligenta lösningar i databasskiktet. Oavsett om det gäller bearbetning av naturligt språk, rekommendationssystem eller innehållsgenerering kan Azure OpenAI hjälpa dina program.

Schemat azure_openai som installerats av azure_ai tillägget gör att du kan ansluta till och interagera med en Azure OpenAI Service-instans. Det här schemat möjliggör sömlös integrering med Azure OpenAI-tjänsten, så att du kan skapa kraftfulla generativa AI-program direkt från postgreSQL-databasen.

Skapa inbäddningar

Med schemat azure_openai kan du anropa create_embeddings() funktionen, som genererar vektorbäddningar inifrån databaslagret. Dessa inbäddningar möjliggör effektiv lagring, indexering och frågekörning av högdimensionella vektorer. Funktionen kan ha två former:

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

I följande tabell beskrivs de argument som förväntas av funktionen:

Argumentation Typ Förinställning Beskrivning
distributionsnamn text Namnet på driftsättningen av inbäddningsmodellen i Azure OpenAI Studio. Det här namnet refererar vanligtvis till en distribution av text-embeddings-ada-002 modellen.
inmatning text eller text[] Indatatext (eller matris med indatatext) för vilken vektorinbäddningar skapas.
batchstorlek integer 100 Gäller endast när input argumentet är en matris med text värden. batch_size anger antalet poster från matrisen som ska bearbetas samtidigt.
timeout_ms (timeout i millisekunder) integer NULL::integer Timeout i millisekunder varefter åtgärden stoppas.
throw_on_error boolean true Flagga som anger om funktionen vid fel ska utlösa ett undantag, vilket resulterar i en återställning av omslutningstransaktionerna.
max_försök integer 1 Antal gånger för att försöka anropa Azure OpenAI-tjänsten igen i händelse av ett fel.
återförsök_fördröjning_ms integer 1000 Hur lång tid det tar att vänta i millisekunder innan du försöker anropa Azure OpenAI-tjänstslutpunkten igen.

Konfigurera en anslutning till Azure OpenAI

Innan du använder azure_openai funktionerna konfigurerar du tillägget med din Azure OpenAI-tjänstslutpunkt och -nyckel. Följande kommando representerar de frågor som du skulle använda för att ange den slutpunkt och nyckel som krävs för att ansluta till din Azure OpenAI-instans:

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

Du kan sedan använda get_setting() funktionen för att verifiera inställningarna som skrivits i konfigurationstabellen azure_ai.settings :

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

Aktivera vektorstöd med vektortillägget

Med azure_openai.create_embeddings() funktionen i azure_ai tillägget kan du generera inbäddningar för indatatext. Om du vill att de genererade vektorerna ska lagras tillsammans med resten av dina data i databasen måste du också installera vector tillägget genom att följa riktlinjerna i stöd för aktiveringsvektor i databasdokumentationen .

Du kan installera vector tillägget med kommandot CREATE EXTENSION .

CREATE EXTENSION IF NOT EXISTS vector;

Generera och lagra vektorer

I det AI-baserade rekommendationsprogrammet för hyresegenskap som du utvecklar för Margie's Travel måste du lägga till en ny kolumn i måltabellen vector med datatypen för att lagra inbäddningar i tabellen när du har lagt till vektorstöd i databasen. Vektorer är aktiverade i listings tabellen för att tillåta semantiska sökfunktioner när frågor körs för att söka efter tillgängliga egenskaper. Modellen text-embedding-ada-002 producerar vektorer med 1 536 dimensioner, så du måste ange 1536 som vektorstorlek.

ALTER TABLE listings
ADD COLUMN description_vector vector(1536);

Tabellen listings är nu redo att lagra inbäddningar. Med hjälp av azure_openai.create_embeddings() funktionen skapar du vektorer för description fältet och infogar dem i den nyligen skapade description_vector kolumnen i listings tabellen.

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

Varje inbäddning är en vektor med flyttalsnummer, så avståndet mellan två inbäddningar i vektorutrymmet korreleras med den semantiska likheten mellan två indata i det ursprungliga formatet.