Utforska Azure OpenAI-schemat
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.