Eksplorowanie schematu usługi Azure OpenAI

Ukończone

Dzięki włączeniu usługi Azure OpenAI do bazy danych PostgreSQL można tworzyć wysoce skalowalne aplikacje oparte na sztucznej inteligencji. Ta integracja umożliwia korzystanie ze znanego języka SQL i elastyczności bazy danych PostgreSQL do tworzenia inteligentnych rozwiązań w warstwie bazy danych. Niezależnie od tego, czy chodzi o przetwarzanie języka naturalnego, systemy rekomendacji, czy generowanie treści, Azure OpenAI wzmacnia Twoje aplikacje.

azure_openai Schemat zainstalowany przez azure_ai rozszerzenie umożliwia nawiązywanie połączenia z wystąpieniem usługi Azure OpenAI i interakcję z nim. Ten schemat umożliwia bezproblemową integrację z usługą Azure OpenAI, umożliwiając tworzenie zaawansowanych aplikacji generacyjnych sztucznej inteligencji bezpośrednio z bazy danych PostgreSQL.

Tworzenie osadzeń

Za pomocą schematu azure_openaicreate_embeddings() można wywołać funkcję, która generuje wektorowe osadzania z poziomu warstwy bazy danych. Te osadzania umożliwiają wydajne przechowywanie, indeksowanie i wykonywanie zapytań dotyczących wektorów o wysokim wymiarach. Funkcja może przyjmować dwie formy:

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

W poniższej tabeli opisano argumenty oczekiwane przez funkcję:

Argumentacja Typ Wartość domyślna Opis
nazwa wdrożenia text Nazwa wdrożenia modelu osadzania w programie Azure OpenAI Studio. Ta nazwa zazwyczaj odnosi się do wdrożenia text-embeddings-ada-002 modelu.
dane wejściowe text lub text[] Tekst wejściowy (lub tablica tekstu wejściowego), dla którego są tworzone wektorowe osadzanie.
rozmiar partii integer 100 Ma zastosowanie tylko wtedy, gdy input argument jest tablicą text wartości. batch_size określa liczbę rekordów z tablicy do przetwarzania jednocześnie.
limit_czasu_ms integer NULL::integer Limit czasu w milisekundach, po którym operacja jest zatrzymana.
rzutuj_na_błąd boolean true Flaga wskazująca, czy funkcja powinna, w przypadku błędu, zgłaszać wyjątek, co powoduje wycofanie transakcji opakowujących.
maksymalna_liczba_prób integer 1 Liczba ponownych prób wywołania usługi Azure OpenAI w przypadku awarii.
retry_delay_ms integer 1000 Czas oczekiwania (w milisekundach) przed podjęciem próby ponownego wywołania punktu końcowego usługi Azure OpenAI.

Konfigurowanie połączenia z usługą Azure OpenAI

Przed użyciem funkcji azure_openai skonfiguruj rozszerzenie, korzystając z punktu końcowego i klucza usługi Azure OpenAI. Następujące polecenie przedstawia zapytania, których należy użyć do ustawienia punktu końcowego i klucza potrzebnego do połączenia się z wystąpieniem usługi Azure OpenAI.

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

Następnie możesz użyć get_setting() funkcji , aby zweryfikować ustawienia zapisane w azure_ai.settings tabeli konfiguracji:

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

Włączanie obsługi wektorów za pomocą rozszerzenia wektora

Funkcja azure_openai.create_embeddings() w rozszerzeniu azure_ai umożliwia generowanie zanurzeń dla tekstu wejściowego. Aby umożliwić przechowywanie wygenerowanych wektorów obok pozostałych danych w bazie danych, należy również zainstalować vector rozszerzenie, postępując zgodnie ze wskazówkami zawartymi w dokumentacji dotyczącej włączania obsługi wektorów .

Rozszerzenie można zainstalować vector za pomocą polecenia CREATE EXTENSION.

CREATE EXTENSION IF NOT EXISTS vector;

Generowanie i przechowywanie wektorów

W aplikacji rekomendacji wynajmu nieruchomości opartej na sztucznej inteligencji, opracowywanej dla Margie's Travel, należy dodać nową kolumnę do tabeli docelowej przy użyciu typu danych vector do przechowywania osadów w tej tabeli po dodaniu obsługi wektorów do bazy danych. Wektory są włączone w listings tabeli, aby umożliwić semantyczne funkcje wyszukiwania podczas wykonywania zapytań w celu wyszukiwania dostępnych właściwości. Model text-embedding-ada-002 tworzy wektory o wymiarach 1536, więc należy określić 1536 jako rozmiar wektora.

ALTER TABLE listings
ADD COLUMN description_vector vector(1536);

Tabela listings jest teraz gotowa do przechowywania osadzania. azure_openai.create_embeddings() Za pomocą funkcji tworzysz wektory dla description pola i wstawiasz je do nowo utworzonej description_vector kolumny w listings tabeli.

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

Każde osadzanie jest wektorem liczb zmiennoprzecinkowych, więc odległość między dwoma osadzaniami w przestrzeni wektorowej jest skorelowana z podobieństwem semantycznym między dwoma danymi wejściowymi w oryginalnym formacie.