Het Azure OpenAI-schema verkennen
Door Azure OpenAI op te nemen in uw PostgreSQL-database, kunt u uiterst schaalbare AI-apps maken. Met deze integratie kunt u de vertrouwde SQL-taal en de flexibiliteit van PostgreSQL gebruiken om intelligente oplossingen in uw databaselaag te bouwen. Of het nu gaat om taalverwerking, aanbevelingssystemen of inhoudsgeneratie, Azure OpenAI versterkt uw toepassingen.
Met azure_openai het schema dat door de azure_ai extensie is geïnstalleerd, kunt u verbinding maken met en communiceren met een Azure OpenAI Service-exemplaar. Dit schema maakt naadloze integratie mogelijk met de Azure OpenAI-service, zodat u krachtige generatieve AI-toepassingen rechtstreeks vanuit uw PostgreSQL-database kunt maken.
Insluitingen maken
Met het azure_openai schema kunt u de create_embeddings() functie aanroepen, waarmee vector-insluitingen worden gegenereerd vanuit de databaselaag. Deze embeddingstechnologieën bieden efficiënte opslag, indexering en het opvragen van high-dimensionale vectoren. De functie kan twee vormen aannemen:
azure_openai.create_embeddings(text,text,integer,boolean,integer,integer)azure_openai.create_embeddings(text,text[],integer,integer,boolean,integer,integer)
In de volgende tabel worden de argumenten beschreven die door de functie worden verwacht:
| Argumentatie | Typologie | Verstek | Beschrijving |
|---|---|---|---|
| deployement_naam | text |
Naam van de implementatie van het insluitmodel in Azure OpenAI Studio. Deze naam verwijst doorgaans naar een implementatie van het text-embeddings-ada-002 model. |
|
| invoer |
text of text[] |
Invoertekst (of matrix van invoertekst) waarvoor vector-insluitingen worden gemaakt. | |
| batchgrootte | integer |
100 |
Alleen van toepassing wanneer het input argument een matrix met text waarden is.
batch_size geeft het aantal records van de matrix op dat tegelijkertijd moet worden verwerkt. |
| timeout_ms (milliseconden) | integer |
NULL::integer |
Time-out in milliseconden waarna de bewerking wordt gestopt. |
| throw_on_error | boolean |
true |
Vlag die aangeeft of de functie bij een fout een uitzondering moet gooien, wat resulteert in een rollback van de verpakkende transacties. |
| max_pogingen | integer |
1 |
Aantal keren dat de aanroep naar de Azure OpenAI-service opnieuw moet worden uitgevoerd in het geval van een fout. |
| retry_delay_ms | integer |
1000 |
Hoeveelheid tijd, in milliseconden, om te wachten voordat u het Azure OpenAI-service-eindpunt opnieuw probeert aan te roepen. |
Een verbinding met Azure OpenAI configureren
Voordat u de azure_openai functies gebruikt, configureert u de extensie met uw Azure OpenAI-service-eindpunt en -sleutel. De volgende opdracht vertegenwoordigt de query's die u zou gebruiken om het eindpunt en de sleutel in te stellen die nodig zijn om verbinding te maken met uw Azure OpenAI-exemplaar:
SELECT azure_ai.set_setting('azure_openai.endpoint', '{endpoint}');
SELECT azure_ai.set_setting('azure_openai.subscription_key', '{api-key}');
Vervolgens kunt u de get_setting() functie gebruiken om de instellingen te controleren die zijn geschreven in de azure_ai.settings configuratietabel:
SELECT azure_ai.get_setting('azure_openai.endpoint');
SELECT azure_ai.get_setting('azure_openai.subscription_key');
Vectorondersteuning met de vectorextensie inschakelen
Met azure_openai.create_embeddings() de functie in de azure_ai extensie kunt u insluitingen genereren voor invoertekst. Als u wilt dat de gegenereerde vectoren naast de rest van uw gegevens in de database worden opgeslagen, moet u de vector extensie ook installeren door de richtlijnen in de enable vector-ondersteuning in uw databasedocumentatie te volgen.
U kunt de vector extensie installeren met de opdracht CREATE EXTENSION .
CREATE EXTENSION IF NOT EXISTS vector;
Vectoren genereren en opslaan
In de door AI aangestuurde aanbevelingstoepassing voor huurwoningen die u ontwikkelt voor Margie's Travel, moet u een nieuwe kolom toevoegen aan de gerichte tabel met behulp van het vector gegevenstype om embeddings op te slaan in die tabel nadat u vectorondersteuning aan de database hebt toegevoegd. Vectoren zijn ingeschakeld in de listings tabel om semantische zoekmogelijkheden toe te staan bij het uitvoeren van query's om te zoeken naar beschikbare eigenschappen. Het text-embedding-ada-002 model produceert vectoren met 1536 dimensies, dus u moet opgeven 1536 als de vectorgrootte.
ALTER TABLE listings
ADD COLUMN description_vector vector(1536);
De listings tabel is nu klaar om insluitingen op te slaan. Met behulp van de azure_openai.create_embeddings() functie maakt u vectoren voor het description veld en voegt u deze in de zojuist gemaakte description_vector kolom in de listings tabel in.
UPDATE listings
SET description_vector = azure_openai.create_embeddings('{your-deployment-name}', description);
Elke insluiting is een vector van getallen met drijvende komma, dus de afstand tussen twee insluitingen in de vectorruimte is gecorreleerd met de semantische gelijkenis tussen twee invoerwaarden in de oorspronkelijke indeling.