Eksplorowanie schematu usługi Azure OpenAI
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.