Erkunden des Azure OpenAI-Schemas

Abgeschlossen

Durch die Integration von Azure OpenAI in Ihre PostgreSQL-Datenbank können Sie hoch skalierbare KI-basierte Apps erstellen. Mit dieser Integration können Sie die vertraute SQL-Sprache und die Flexibilität von PostgreSQL verwenden, um intelligente Lösungen innerhalb Ihrer Datenbankebene zu erstellen. Ob Verarbeitung natürlicher Sprachen, Empfehlungssysteme oder Inhaltsgenerierung, Azure OpenAI unterstützt Ihre Anwendungen.

Mit dem von der azure_ai Erweiterung installierten azure_openai Schema können Sie eine Verbindung mit einer Azure OpenAI Service-Instanz herstellen und damit interagieren. Dieses Schema ermöglicht eine nahtlose Integration mit dem Azure OpenAI-Dienst, sodass Sie leistungsstarke generative KI-Anwendungen direkt aus Ihrer PostgreSQL-Datenbank erstellen können.

Erstellen von Einbettungen

Mit dem azure_openai Schema können Sie die create_embeddings() Funktion aufrufen, die Vektoreinbettungen aus der Datenbankebene generiert. Diese Einbettungen ermöglichen eine effiziente Speicherung, Indizierung und Abfrage von hochdimensionalen Vektoren. Die Funktion kann zwei Formen annehmen:

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

In der folgenden Tabelle werden die Argumente beschrieben, die von der Funktion erwartet werden:

Argument Typ Standard Beschreibung
deployment_name text Name der Modellimplementierung zur Einbettung in Azure OpenAI Studio. Dieser Name bezieht sich in der Regel auf eine Bereitstellung des text-embeddings-ada-002 Modells.
input text oder text[] Eingabetext (oder Array von Eingabetext), für den Vektoreinbettungen erstellt werden.
batch_size integer 100 Gilt nur, wenn das input Argument ein Array von text Werten ist. batch_size gibt die Anzahl der Datensätze aus dem Array an, die gleichzeitig verarbeitet werden sollen.
timeout_ms integer NULL::integer Timeout in Millisekunden, nach dem der Vorgang beendet wird.
throw_on_error boolean true Kennzeichnung, die angibt, ob die Funktion beim Fehler eine Ausnahme auslösen soll, was zu einem Rollback der Umbruchtransaktionen führt.
max_attempts integer 1 Anzahl der Wiederholungen des Aufrufs an den Azure OpenAI-Dienst im Falle eines Fehlers.
retry_delay_ms integer 1000 Die Zeit (in Millisekunden), die gewartet werden muss, bevor versucht wird, den Azure OpenAI-Dienstendpunkt erneut aufzurufen.

Konfigurieren einer Verbindung mit Azure OpenAI

Konfigurieren Sie vor der Verwendung der azure_openai Funktionen die Erweiterung mit Ihrem Azure OpenAI-Dienstendpunkt und Schlüssel. Der folgende Befehl stellt die Abfragen dar, die Sie verwenden würden, um den Endpunkt und den Schlüssel festzulegen, der zum Herstellen einer Verbindung mit Ihrer Azure OpenAI-Instanz erforderlich ist:

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

Anschließend können Sie die get_setting() Funktion verwenden, um die in der azure_ai.settings Konfigurationstabelle geschriebenen Einstellungen zu überprüfen:

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

Aktivieren der Vektorunterstützung mit der Vektorerweiterung

Mit der azure_openai.create_embeddings() Funktion in der azure_ai Erweiterung können Sie Einbettungen für Eingabetext generieren. Damit die generierten Vektoren zusammen mit den restlichen Daten in der Datenbank gespeichert werden können, müssen Sie die vector Erweiterung auch installieren, indem Sie den Anweisungen in der Dokumentation zur Aktivierung der Unterstützung von Vektoren folgen.

Sie können die vector Erweiterung mit dem Befehl ERWEITERUNG ERSTELLEN installieren.

CREATE EXTENSION IF NOT EXISTS vector;

Generieren und Speichern von Vektoren

In der KI-gestützten Anwendung zur Empfehlung von Mietobjekten, die Sie für Margie's Travel entwickeln, müssen Sie der Zieltabelle eine neue Spalte hinzufügen und dabei den vector Datentyp verwenden, um Einbettungen in dieser Tabelle zu speichern, nachdem Sie der Datenbank Vektorunterstützung hinzugefügt haben. Vektoren sind in der listings Tabelle aktiviert, damit semantische Suchfunktionen beim Ausführen von Abfragen nach verfügbaren Eigenschaften gesucht werden können. Das text-embedding-ada-002 Modell erzeugt Vektoren mit 1.536 Dimensionen, sodass Sie als Vektorgröße 1536 angeben müssen.

ALTER TABLE listings
ADD COLUMN description_vector vector(1536);

Die listings Tabelle kann jetzt Einbettungen speichern. Mithilfe der azure_openai.create_embeddings() Funktion erstellen Sie Vektoren für das description Feld und fügen sie in die neu erstellte description_vector Spalte in der listings Tabelle ein.

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

Jede Einbettung ist ein Vektor von Gleitkommazahlen, sodass der Abstand zwischen zwei Einbettungen im Vektorraum mit der semantischen Ähnlichkeit zwischen zwei Eingaben im ursprünglichen Format korreliert wird.