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. Bez względu na to, czy przetwarzanie języka naturalnego, systemy rekomendacji, czy generowanie zawartości, usługa Azure OpenAI umożliwia korzystanie z aplikacji.

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 osadzania

Za pomocą schematu azure_openai create_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ę:

Argument Typ Domyślny opis
deployment_name text Nazwa wdrożenia modelu osadzania w programie Azure OpenAI Studio. Ta nazwa zazwyczaj odnosi się do wdrożenia text-embeddings-ada-002 modelu.
input text lub text[] Tekst wejściowy (lub tablica tekstu wejściowego), dla którego są tworzone wektorowe osadzanie.
batch_size 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.
timeout_ms integer NULL::integer Limit czasu w milisekundach, po którym operacja jest zatrzymana.
throw_on_error boolean true Flaga wskazująca, czy funkcja powinna zgłaszać wyjątek po błędzie, co powoduje wycofanie transakcji opakowujących.
max_attempts 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 azure_openai funkcji skonfiguruj rozszerzenie za pomocą punktu końcowego i klucza usługi Azure OpenAI. Następujące polecenie reprezentuje zapytania, których należy użyć do ustawienia punktu końcowego i klucza wymaganego do nawiązania połączenia 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 azure_ai rozszerzeniu umożliwia generowanie osadzania 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 dotyczącej właściwości wynajmu opartej na sztucznej inteligencji opracowywanej dla usługi Margie's Travel należy dodać nową kolumnę do tabeli docelowej przy użyciu vector typu danych do przechowywania osadzania 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.