Zu Hauptinhalt springen Zu ergänzendem Inhalt springen

Beispiel 3: Konfiguration „OpenAI Chat Completions API (GPT-3.5). GPT-4 - Rows

In diesem Beispiel lernen Sie, wie Sie den OpenAI-Analysekonnektor mit der Konfiguration „OpenAI Chat Completions API (GPT-3.5, GPT-4) – Rows“ verwenden. Davon ausgehend werden Sie durch einfache Beispiele geführt, die Ihnen zeigen, wie Sie die Funktionen in Ihr Datenmodell und Ihre Diagrammformeln integrieren.

Diese Konnektorkonfiguration funktioniert sehr ähnlich wie die Konfiguration „OpenAI Completions API (GPT-3) - Rows“. Die beiden Konfigurationen nutzen aber verschiedene Modelle, wodurch sich unterschiedliche Antworten ergeben. Zudem werden in den beiden Konfigurationen unterschiedliche Parameternamen verwendet. Beziehen Sie sich daher auf das Tutorial-Beispiel, das Ihrer Konfiguration entspricht. Weitere Informationen zur Konfiguration „Completions“ finden Sie unter Beispiel 1: Konfiguration „OpenAI Completions API (GPT-3) - Rows“.

Sie können dieses Beispiel auch mit dem Azure OpenAI-Konnektor bearbeiten. Wenn Sie diesen Konnektor verwenden, interagieren Sie über die Microsoft Azure-Plattform anstelle der OpenAI-Plattform mit dem Modell.

Vor dem Beginn

Bevor Sie dieses Beispiel bearbeiten können, müssen Sie die folgenden Schritte durchführen.

  • Ein Konto bei der OpenAI-Plattform erstellen

  • Einen OpenAI API-Schlüssel erhalten

  • Die Analyseverbindungsfunktion aktivieren in Qlik Cloud

  • Verbindungen mit den anwendbaren Konnektorkonfigurationen erstellen

Verwenden des OpenAI-Konnektors in Ihrem Ladeskript

Erstellen Sie eine neue Qlik Sense App, der Sie dann ein Ladeskript hinzufügen, um mit der OpenAI-Plattform zu kommunizieren. Auf die Tabellen, die Sie mit diesem Skript laden, kann im Datenmodell Ihrer App zugegriffen werden.

InformationshinweisWenn Sie zum Bearbeiten dieses Abschnitts die gleiche App wie im Ladeskript-Abschnitt in Beispiel 2 verwenden, müssen Sie das Skript aus Beispiel 2 auskommentieren oder löschen, bevor Sie das untenstehende Skript laden. Andernfalls treten Probleme mit dem Datenmodell auf, und es kann sogar zu Fehlern beim Laden der Daten kommen.

Folgen Sie den Schritten unten. Weitere Einzelheiten finden Sie unter Auswählen und Laden von Daten in einer OpenAI-Verbindung.

Erstellen der an OpenAI zu sendenden Datentabelle

Der erste Schritt besteht im Erstellen einer Tabelle mit der Anfrage, die Sie an OpenAI senden möchten. Die Datenzeilen in der Anfrage werden als „Vervollständigungen“ bezeichnet. Der Text für jedes Element muss als Zeilen in einem einzigen Feld (Spalte) in der Tabelle enthalten sein. Jede Zeile in dieser Spalte stellt Text dar, der von der OpenAI API vervollständigt werden soll.

Es kann ein zweites zusätzliches Feld als Verknüpfungsfeld geben, aber dies muss mit dem in der Konfiguration angegebenen Feldnamen übereinstimmen. Es handelt sich um ein besonderes Feld, das nicht an OpenAI gesendet, sondern an die Antworten angehängt wird, um ein Qlik Datenmodell zu generieren.

Öffnen Sie in Ihrer App den Dateneditor und fügen Sie folgenden Code in einen neuen Skriptabschnitt ein:

SourceTable:
NoConcatenate
LOAD 
RowNo() as RowId,
Text
Inline
[Text
translate from English to French: What is the time you go to work?];					

 

Diese Tabelle enthält ein Feld mit dem Namen Text und einer einzelnen Frage, die an OpenAI gestellt wird. Weitere Fragen könnten als neue einzelne Zellen unter der Zelle der vorhandenen Frage hinzugefügt werden. Das Feld RowId ist das Verknüpfungsfeld, das im nächsten Schritt verwendet wird, um die Antworten mit dem Datenmodell der App zu verknüpfen.

Erstellen der load-Anweisung für OpenAI

Als nächster Schritt wird eine weitere load-Anweisung erstellt, um mit OpenAI zu kommunizieren. Die Tabelle, die Sie mit dieser Anweisung laden, zeigt auf die Namen der Tabelle und Felder, die Sie zum Senden der Anfragedaten verwenden. Das Skript lädt also eine zweite Tabelle, um die Antworten von OpenAI auf Ihre Anfrageelemente bereitzustellen.

Um diesen Teil des Skripts zu generieren, können Sie den Assistenten Daten auswählen für die verwendete Verbindung nutzen. Damit wird ein Vorlagenskript generiert, das die Namen der bereitgestellten Eigenschaften enthält. Alternativ können Sie diese Tabelle manuell in den Skript-Editor einfügen, ohne den Assistenten zu verwenden.

Suchen Sie die verwendete Verbindung im Fenster Datenquellen des Dateneditors und klicken Sie auf Daten auswählen. Damit wird der Assistent Daten auswählen geöffnet.

Schaltfläche Daten auswählen für eine Analyseverbindung im Dateneditor

Registerkarte „Daten hinzufügen“ des Dateneditors mit hervorgehobenem Symbol „Daten auswählen“

Wenn Sie den Assistenten Daten auswählen verwenden, müssen Sie zwei Eigenschaften bereitstellen:

  • Der Name der Resident-Tabelle. Dies ist die Tabelle mit den Fragen, die an OpenAI gesendet werden. In diesem Fall handelt es sich um SourceTable.

  • Der Name des Datenfelds. Dies ist das Feld mit den Fragen, die an OpenAI gesendet werden. In diesem Fall handelt es sich um Text.

Aktivieren Sie unter Tabellen das Kontrollkästchen für die Tabelle mit dem Namen openai.

Assistent Daten auswählen im Dateneditor

Registerkarte „Daten hinzufügen“ des Dateneditors mit hervorgehobenem Symbol „Daten auswählen“

Wenn Sie auf Skript einfügen klicken, wird die neue Tabelle zum Ladeskript hinzugefügt.

Nachdem die load-Anweisung für OpenAI hinzugefügt wurde, sollte Ihr Ladeskript jetzt wie folgt aussehen:

SourceTable: NoConcatenate LOAD RowNo() as RowId, Text Inline [Text translate from English to French: What is the time you go to work?]; [openai]: LOAD [id], [object], [created], [model], [prompt_tokens], [completion_tokens], [total_tokens], [choices.message.role], [choices.message.content], [choices.index], [choices.finish_reason], [RowId] EXTENSION endpoints.ScriptEval('{"RequestType":"endpoint", "endpoint":{"connectionname":"Chat_Completions_GPT_3.5_4_Rows"}}', SourceTable);

 

InformationshinweisDamit dieser exakte Code in Ihrer App korrekt funktioniert, muss Ihre OpenAI-Verbindung auch mit dem gleichen Wert für Name wie der im Ladeskript oben angegebene connectionname konfiguriert sein. Die für dieses Tutorial verwendeten Werte finden Sie unter Erstellen der Verbindungen.

Sie sind jetzt bereit, das Ladeskript auszuführen.

Laden der Daten in die App

Klicken Sie nach Abschluss des Skripts auf Daten laden. Dadurch wird die Kommunikation mit OpenAI hergestellt und die Tabellen werden in das Datenmodell Ihrer App eingefügt.

InformationshinweisWenn Sie beim Laden des Skripts einen Fehler erhalten, kann es sein, dass das optionale, sekundäre Verknüpfungsfeld in der Verbindungskonfiguration und das Ladeskript nicht übereinstimmen. Wenn Sie ein Verknüpfungsfeld in der Konfiguration für Ihre Verbindung definiert haben, vergewissern Sie sich, dass es ebenfalls im Anfrageskript enthalten ist.

Öffnen Sie die Datenmodellansicht. Dort sehen Sie, dass die beiden Tabellen wie erwartet miteinander verknüpft sind. Im Fenster Vorschau ist die OpenAI-Antwort auf die von uns gestellte Frage in der zweiten Tabelle enthalten.

Von der OpenAI-Verbindung erstelltes Datenmodell

Die Datenmodellansicht zeigt das resultierende Datenmodell, das zwei Tabellen enthält.

Sie können jetzt Analyseinhalte anhand der Daten erstellen, die in die App geladen wurden. In den Diagrammen, die Sie mit diesen Daten erstellen, braucht nicht auf die OpenAI-Verbindung verwiesen zu werden. Informationen dazu, wie Sie die OpenAI-Verbindung direkt in Diagrammformeln anstelle des Ladeskripts verwenden, finden Sie unter Verwenden des OpenAI-Konnektors in Diagrammformeln.

Verwenden des OpenAI-Konnektors in Diagrammformeln

Sie können OpenAI-Fragen und -Antworten nicht nur über das Ladeskript zum Datenmodell Ihrer App hinzufügen, sondern diese Vorgänge auch direkt in einem Diagramm in Ihrer App durchführen. Dies ist eine mögliche Alternative zur Verwendung von Tabellen im Ladeskript für die Kommunikation mit OpenAI.

Daten für ein einzelnes Feld werden zwischen Ihnen und OpenAI hin und her gesendet. In vielen Fällen kann der für die Ladeskriptverbindung genutzte Code für ein Diagramm wiederverwendet werden, mit einigen wichtigen Ausnahmen.

Weitere Einzelheiten finden Sie unter Verwenden von OpenAI-Verbindungen in Visualisierungsformeln.

Überlegungen zu Datenanfragemengen

Es wird empfohlen, OpenAI-Verbindungen in Diagrammformeln nur für eine oder wenige Datenzeilen zu verwenden. Diagrammformeln sollten nicht dazu verwendet werden, große Datenmengen an OpenAI zu senden.

Achten Sie unbedingt darauf, wie viele Zeilen Sie mit jeder Anfrage senden. Fehler beim Konfigurieren der Verbindung in einer Diagrammformel können zu unbeabsichtigt großen Anfragen führen (z. B. identische Zeilen mit der gleichen Frage, weil das Datenmodell in einem Diagramm falsch verwendet wurde). Bevor Sie mit einer Drittplattform interagieren, müssen Sie sich damit vertraut machen, wie die Felder, die in der Berechnung der Diagrammformel verwendet werden, und ihre Position im Datenmodell sich auf Ihre Zahlungs- und Abrechnungsvereinbarungen mit dem Dritten auswirken. Eine stärkere Nutzung der externen Plattform kann zu höheren Kosten führen.

Befolgen Sie die folgenden Leitlinien, um die Größe Ihrer Anfragen einzuschränken:

  • Verwenden Sie die Verbindung nur in einer Text und Bild-Diagrammformel. Es wird dringend davon abgeraten, eine OpenAI-Verbindung in einem Tabellen-Objekt zu verwenden, besonders, wenn Sie die Formel zu einer Tabelle hinzufügen, der bereits eine oder mehrere Dimensionen hinzugefügt wurden.

  • Wenn die Diagrammformel mit dem Datenmodell Ihrer App verknüpft ist, verwenden Sie einen if-Befehl in der Formel, um das Diagramm nur zu berechnen, wenn eine einzelne Auswahl in der App getroffen wird. Damit wird die Zeilenanzahl der Anfragen, die Ihr Diagramm an OpenAI sendet, erheblich verringert.

  • Wenn Sie eine OpenAI-Verbindung zum Senden großer Anfragen verwenden, sollten Sie die Verbindung in Ihrem Ladeskript statt in einer Diagrammformel nutzen, damit die Daten vorab in Ihr Datenmodell geladen werden.

Übung: Erstellen einer grundlegenden Diagrammformel

  1. Erstellen Sie eine Qlik Sense App und öffnen Sie ein neues Arbeitsblatt im erweiterten Bearbeitungsmodus.

    InformationshinweisDie Analyseverbindung, die Sie für die Diagrammformel verwenden, muss bereits in dem Bereich erstellt worden sein, in dem Sie die App erstellen. Dies geschieht im Dateneditor in einer App oder über die Seite „Erstellen“ des Aktivitätscenters Analysen. Weitere Informationen finden Sie unter Erstellen einer OpenAI-Verbindung.
  2. Ziehen Sie ein Text und Bild-Diagramm auf das Arbeitsblatt.

  3. Fügen Sie im Eigenschaftsfenster unter Daten > Kennzahlen eine Kennzahl hinzu und klicken Sie auf Formel, um den Formel-Editor zu öffnen.

  4. Fügen Sie die folgende Formel in den Formel-Editor ein:

    endpoints.ScriptAggrStr('{"RequestType":"endpoint", "endpoint":{"connectionname":"Chat_Completions_GPT_3.5_4_Rows","column":"choices.message.content"}}', 'Translate this text from english to spanish: The sun was rising over the new tomorrow with a tinge of excitement.')
    InformationshinweisIn diesem Beispiel ist es akzeptabel, keinen if-Befehl zu verwenden, da wir nur eine einzelne Datenzeile senden und keine Verbindung zu einem Datenmodell besteht. In anderen Szenarios sollten Sie einen if-Befehl verwenden, um zu gewährleisten, dass das Diagramm nur dann berechnet wird, wenn ein einzelner Feldwert in der App ausgewählt wird. Beispiele finden Sie unter Kurze Beispiele.
    InformationshinweisDamit dieser exakte Code in Ihrer App korrekt funktioniert, muss Ihre OpenAI-Verbindung auch mit dem gleichen Wert für Name wie dem in der Formel angegebenen connectionname konfiguriert sein. Die für dieses Tutorial verwendeten Werte finden Sie unter Erstellen der Verbindungen.
  5. Klicken Sie auf Übernehmen.

Qlik SenseText und Bild-Diagramm mit OpenAI-Antwort

Qlik Sense Arbeitsblattobjekt mit Antwort von OpenAI.

Übung: Erstellen eines Texteingabefelds mithilfe einer Variablen

Alternativ können Sie die Fragenzeichenfolge durch den Namen einer Variablen ersetzen, die Sie in der App erstellt haben. Damit kann ein Eingabefeld erstellt werden, in dem App-Nutzer ihre eigenen Fragen eingeben können, ohne mit Formeln zu interagieren.

Diese einfache Schnittstelle kann genutzt werden, um Ihre App-Daten mit in Echtzeit generierten Kontextdaten zu erweitern.

  1. Erstellen Sie eine App und fügen Sie einem neuen Arbeitsblatt Daten und Visualisierungen hinzu.

  2. Klicken Sie auf Variablen, um eine Variable zu erstellen. Geben Sie für diese Übung als Name vUserQuestion ein. Lassen Sie die restlichen Parameter leer.

  3. Ziehen Sie aus dem Extras-Fenster ein Variableneingabe-Diagramm auf das Arbeitsblatt. Es befindet sich unter ErweiterungenQlik Dashboard Bundle.

  4. Erweitern Sie im Eigenschaftsfenster für das Variableneingabe-Diagramm Darstellung > Variable.

  5. Wählen Sie unter Name den Eintrag vUserQuestion aus.

  6. Wählen Sie unter Anzeigen als die Option Eingabefeld aus.

  7. Ziehen Sie aus dem Extras-Fenster ein leeres Text und Bild-Diagramm auf das Arbeitsblatt.

  8. Fügen Sie im Eigenschaftsfenster unter Daten > Kennzahlen eine Kennzahl hinzu und klicken Sie auf Formel, um den Formel-Editor zu öffnen.

  9. Fügen Sie die folgende Formel in den Formel-Editor ein:

    if(vUserQuestion <> '', endpoints.scriptAggrStr('{"RequestType":"endpoint", "endpoint":{"connectionname":"Chat_Completions_GPT_3.5_4_Rows","column":"choices.message.content"}}',vUserQuestion))
    InformationshinweisDamit dieser exakte Code in Ihrer App korrekt funktioniert, muss Ihre OpenAI-Verbindung auch mit dem gleichen Wert für Name wie dem in der Formel angegebenen connectionname konfiguriert sein. Die für dieses Tutorial verwendeten Werte finden Sie unter Erstellen der Verbindungen.
  10. Klicken Sie auf Übernehmen.

  11. Passen Sie die Größe dieser Eingabe- und Antwortfelder wie erforderlich an.

Jetzt können Sie den Bearbeitungsmodus verlassen und eine Frage in das Eingabefeld eingeben. Wenn Sie die Eingabetaste drücken oder auf eine beliebige andere Stelle des Arbeitsblatts klicken, wird das Antwortfeld mit einer Antwort von OpenAI ausgefüllt.

Einfaches Arbeitsblatt mit generischen Daten und Eingabefeld, über das Fragen an OpenAI gestellt werden können

Qlik Sense Arbeitsblattobjekt mit Antwort von OpenAI.

In dieser Übung kommuniziert die OpenAI-Verbindung nicht mit dem Datenmodell der App, aber es können wesentlich komplexere Apps erstellt werden, die vollständig in die in der App geladenen Daten integriert sind und auf die in der App getroffenen Auswahlen reagieren.

Weitere Informationen zum Arbeiten mit Variablen finden Sie unter Erstellen einer Variablen und Variableneingabe-Steuerelement.

Unterschiede zwischen dem Ladeskript- und Diagrammformelcode

In diesen Diagrammformeln haben wir den Code genutzt, der in der vorherigen Lektion zum Ladeskript eingegeben wurde. In der folgenden Liste werden die wichtigsten Unterschiede zwischen der Ladeskriptversion und den Diagrammformeln hervorgehoben:

  • Wir haben ScriptEval zu ScriptAggrStr geändert. Dies zeigt, dass wir eine einzelne Datenzeile senden und eine einzelne Zeile als Antwort erwarten. Das ist erforderlich, wenn mit benutzerdefinierten Daten wie einer Variablen oder Konstanten gearbeitet wird, wie es hier der Fall ist. Das „Str“ gibt an, dass wir Textwerte senden und erhalten.

  • Wir fügen eine neue Eigenschaft column mit dem Wert choices.message.content hinzu. Sie ist im endpoint-Objekt verschachtelt. Diese Hinzufügung zur Konfigurationszeichenfolge ist erforderlich, um anzugeben, welches Feld vom Konnektor zurückgegeben werden soll. In einer Diagrammformel wird nur ein Feld verwendet, und wir müssen angeben, welches.

Weitere Informationen finden Sie unter Syntax für serverseitige Erweiterungen.

Hat diese Seite Ihnen geholfen?

Wenn Sie Probleme mit dieser Seite oder ihren Inhalten feststellen – einen Tippfehler, einen fehlenden Schritt oder einen technischen Fehler –, teilen Sie uns bitte mit, wie wir uns verbessern können!