Prozkoumání schématu Azure OpenAI

Dokončeno

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. Ať už jde o zpracování přirozeného jazyka, doporučovací systémy nebo generování obsahu, Azure OpenAI posiluje vaše aplikace.

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í:

Důvod 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.
vstup text nebo text[] Vstupní text (nebo pole vstupního textu), pro který se vytvářejí vektorové vkládání.
velikost dávky 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ě.
časový limit_ms integer NULL::integer Časový limit v milisekundách, po kterém je operace zastavena.
vyvolat_při_chybě boolean true Příznak označující, zda má funkce při chybě vyvolat výjimku, což vede k vrácení zpět obalujících transakcí.
maximální_počet_pokusů integer 1 Počet opakování volání služby Azure OpenAI v případě selhání
znovu_pokus_zpoždění_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');

Povolit podporu vektorů vektorovým rozšířením

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 také nainstalovat rozšíření vector podle pokynů v dokumentaci k povolení podpory vektorů ve vaší databázi.

Pomocí příkazu vector můžete rozšíření nainstalovat.

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_vectorlistings 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í desetinnou čárkou, takže vzdálenost mezi dvěma vloženími ve vektorovém prostoru koreluje sémantickou podobností mezi dvěma vstupy v původním formátu.