Prozkoumání schématu Azure OpenAI
Začleněním Azure OpenAI do databáze PostgreSQL můžete vytvářet vysoce škálovatelné aplikace využívající AI. Tato integrace umožňuje používat známý jazyk SQL a flexibilitu PostgreSQL k vytváření inteligentních řešení v rámci databázové vrstvy. Azure OpenAI umožňuje vašim aplikacím bez ohledu na to, jestli zpracování přirozeného jazyka, systémy doporučení nebo generování obsahu.
Schéma azure_openai
nainstalované rozšířením azure_ai
umožňuje připojit se k instanci služby Azure OpenAI a pracovat s ní. Toto schéma umožňuje bezproblémovou integraci se službou Azure OpenAI a umožňuje vytvářet výkonné aplikace AI přímo z databáze PostgreSQL.
Vytváření vložených objektů
azure_openai
Pomocí schématu create_embeddings()
můžete volat funkci, která generuje vektorové vkládání z databázové vrstvy. Tyto vkládání umožňují efektivní ukládání, indexování a dotazování vysoce dimenzionálních vektorů. Funkce může mít dvě formy:
azure_openai.create_embeddings(text,text,integer,boolean,integer,integer)
azure_openai.create_embeddings(text,text[],integer,integer,boolean,integer,integer)
Následující tabulka popisuje argumenty očekávané funkcí:
Argument | Typ | Výchozí | Popis |
---|---|---|---|
deployment_name | text |
Název nasazení modelu vložení v nástroji Azure OpenAI Studio Tento název obvykle odkazuje na nasazení text-embeddings-ada-002 modelu. |
|
input | text nebo text[] |
Vstupní text (nebo pole vstupního textu), pro který se vytvářejí vektorové vkládání. | |
batch_size | integer |
100 |
Platí pouze v případech, input kdy je argument polem text hodnot. batch_size určuje počet záznamů z pole, které se mají zpracovat současně. |
timeout_ms | integer |
NULL::integer |
Časový limit v milisekundách, po kterém je operace zastavena. |
throw_on_error | boolean |
true |
Příznak označující, zda má funkce při chybě vyvolat výjimku, což vede k vrácení zpět obtékání transakcí. |
max_attempts | integer |
1 |
Počet opakování volání služby Azure OpenAI v případě selhání |
retry_delay_ms | integer |
1000 |
Doba čekání v milisekundách, než se pokusíte znovu volat koncový bod služby Azure OpenAI. |
Konfigurace připojení k Azure OpenAI
Před použitím azure_openai
funkcí nakonfigurujte rozšíření pomocí koncového bodu služby Azure OpenAI a klíče. Následující příkaz představuje dotazy, které byste použili k nastavení koncového bodu a klíče potřebného pro připojení k instanci Azure OpenAI:
SELECT azure_ai.set_setting('azure_openai.endpoint', '{endpoint}');
SELECT azure_ai.set_setting('azure_openai.subscription_key', '{api-key}');
Potom můžete pomocí get_setting()
funkce ověřit nastavení napsaná v azure_ai.settings
konfigurační tabulce:
SELECT azure_ai.get_setting('azure_openai.endpoint');
SELECT azure_ai.get_setting('azure_openai.subscription_key');
Povolení podpory vektorů s rozšířením vektoru
Funkce azure_openai.create_embeddings()
v azure_ai
rozšíření umožňuje generovat vkládání pro vstupní text. Pokud chcete, aby se vygenerované vektory ukládaly společně se zbytkem dat v databázi, musíte rozšíření nainstalovat vector
také podle pokynů v dokumentaci k povolení vektoru.
Rozšíření můžete nainstalovat vector
pomocí příkazu CREATE EXTENSION .
CREATE EXTENSION IF NOT EXISTS vector;
Generování a ukládání vektorů
V aplikaci doporučení k pronájmu založené na umělé inteligenci, kterou vyvíjíte pro Margie's Travel, musíte do cílové tabulky přidat nový sloupec pomocí datového vector
typu pro ukládání vložených objektů v této tabulce po přidání podpory vektorů do databáze. V tabulce jsou povoleny listings
vektory, které umožňují sémantické vyhledávání při spouštění dotazů hledat dostupné vlastnosti. Model text-embedding-ada-002
vytváří vektory s rozměry 1 536, takže je nutné zadat 1536
jako velikost vektoru.
ALTER TABLE listings
ADD COLUMN description_vector vector(1536);
Tabulka listings
je teď připravená k ukládání vložených objektů. azure_openai.create_embeddings()
Pomocí funkce vytvoříte vektory pro description
pole a vložíte je do nově vytvořeného description_vector
listings
sloupce v tabulce.
UPDATE listings
SET description_vector = azure_openai.create_embeddings('{your-deployment-name}', description);
Každé vložení je vektor čísel s plovoucí desetinou čárkou, takže vzdálenost mezi dvěma vkládáními ve vektorovém prostoru odpovídá sémantické podobnosti mezi dvěma vstupy v původním formátu.