Voorbeeld 1: configuratie 'OpenAI Completions API (GPT-3) - Rijen'
Met dit voorbeeld leert u hoe u de OpenAI-analyseconnector gebruikt met de configuratie 'OpenAI Completions API (GPT-3) - Rijen'. U wordt u basisoefeningen geleid zodat u leert hoe u de functionaliteit in uw gegevensmodel en diagramuitdrukkingen kunt gebruiken.
De functionaliteit van deze connectorconfiguratie is vergelijkbaar met die van de configuratie 'OpenAI Chat Completions API (GPT-3.5, GPT-4) - Rijen'. Deze twee configuraties gebruiken echter twee verschillende modellen, wat weer leidt tot verschillende responsen. Raadpleeg het zelfstudievoorbeeld dat overeenkomt met uw configuratie omdat er bij deze twee configuraties ook verschillende parameternamen worden gebruikt. Voor de configuratie van chat completions raadpleegt u Voorbeeld 3: configuratie 'OpenAI Chat Completions API (GPT-3.5, GPT-4) - Rijen'.
U kunt dit voorbeeld ook voltooien met behulp van de Azure OpenAI‑connector. Als u deze connector gebruikt, werkt u met de modellen via het Microsoft Azure-platform in plaats van het OpenAI-platform.
Voordat u van start gaat
Voordat u dit voorbeeld kunt voltooien, moet u de volgende stappen voltooien.
-
Een account voor het OpenAI-platform maken
-
Een API-sleutel voor OpenAI ophalen
-
Functionaliteit van de analyseverbinding inschakelen in Qlik Cloud
-
Verbindingen maken met de toepasselijke connectorconfiguraties
De OpenAI-connector in uw load-script gebruiken
Maak een nieuwe Qlik Sense-app waaraan u een load-script gaat toevoegen om te communiceren met het OpenAI-platform. De tabellen die u laadt met dit script zijn toegankelijk via het gegevensmodel in uw app.
Volg de onderstaande stappen. Voor meer informatie gaat u naar Gegevens selecteren en laden via een OpenAI‑verbinding.
De tabel met gegevens maken die naar OpenAI wordt verzonden
De eerste stap is om een tabel te maken met de aanvraag die u naar OpenAI gaat verzenden. De rijen gegevens in de aanvraag worden 'completions' genoemd. De tekst van elk item moet een rij zijn in een enkel veld (kolom) in de tabel. Elke rij in deze kolom vertegenwoordigt tekst die door de API van OpenAI moet worden voltooid.
Er kan een tweede aanvullend veld voor het koppelingsveld aanwezig zijn, maar dit veld moet overeenkomen met de veldnaam die is opgegeven in de configuratie. Dit is een speciaal veld dat niet naar OpenAI wordt verzonden, maar bij de responsen wordt bijgevoegd om een Qlik-gegevensmodel te genereren.
Open de editor voor laden van gegevens in uw app en plak de volgende code in een nieuwe scriptsectie:
SourceTable:
NoConcatenate
LOAD
RowNo() as RowId,
Text
Inline
[Text
translate from English to French: What is the time you go to work?];
Deze tabel bevat een veld met de naam Text, dat een vraag bevat die we aan OpenAI gaan stellen. U kunt aanvullende vragen toevoegen als nieuwe afzonderlijke cellen onder de bestaande cel van de vraag. Het veld RowId is het koppelingsveld dat we in de volgende stap zullen gebruiken om de responsen te koppelen aan het gegevensmodel van de app.
De LOAD-instructie voor OpenAI maken
De volgende stap is om nog een LOAD-instructie te maken om te communiceren met OpenAI. De tabel die u laadt met deze instructie verwijst naar de namen van de tabel en velden die u gebruikt om de aanvraaggegevens te verzenden. Kortom: er wordt een tweede tabel geladen door het script om de responsen van OpenAI op uw aanvragen ter beschikking te stellen.
Om dit deel van het script te genereren, kunt u de wizard Gegevens selecteren gebruiken voor de verbinding die u gebruikt. Hiermee wordt een sjabloonscript gegenereerd met de namen van de eigenschappen die u hebt opgegeven. U kunt deze tabel desgewenst ook handmatig toevoegen in de scripteditor zonder de wizard te gebruiken.
Zoek de verbinding die u gebruikt in het venster Gegevensbronnen van de editor voor laden van gegevens en klik op . Hiermee wordt de wizard Gegevens selecteren geopend.
Als u de wizard Gegevens selecteren gebruikt, moet u twee eigenschappen opgeven:
-
De naam van de resident-tabel. Dit is de tabel met de vragen die naar OpenAI worden verzonden. In dit geval is dit SourceTable.
-
De naam van het gegevensveld. Dit is het veld met de vragen die naar OpenAI worden verzonden. In dit geval is dit Text.
Schakel onder Tabellen het selectievakje in voor de tabel met de naam openai.
Als u klikt op Script invoegen wordt de nieuwe tabel toegevoegd aan het load-script.
Nu u de LOAD-instructie van OpenAI hebt toegevoegd, ziet uw load-script er als volgt uit:
U kunt het load-script nu uitvoeren.
De gegevens laden naar de app
Nadat het script gereed is, klikt u op Gegevens laden. Hiermee wordt de communicatie met OpenAI uitgevoerd en worden de tabellen in het gegevensmodel van uw app ingevoegd.
Open de gegevensmodelviewer en controleer of de twee tabellen zoals verwacht aan elkaar zijn gekoppeld. In het venster Voorbeeld staat in de tweede tabel de respons van OpenAI op de vraag die we hebben gesteld.
U kunt nu analytische inhoud genereren met de gegevens die zijn geladen in de app. U hoeft niet te verwijzen naar de OpenAI-verbinding in de diagrammen die u maakt met behulp van deze gegevens. Raadpleeg De OpenAI-connector gebruiken in diagramuitdrukkingen om te leren u hoe u de OpenAI-verbinding direct in diagramuitdrukkingen gebruikt (in plaats van met het load-script).
De OpenAI-connector gebruiken in diagramuitdrukkingen
Naast het toevoegen van vragen en antwoorden van OpenAI aan het gegevensmodel van uw app met behulp van het loadscript, kunt u deze bewerkingen ook direct in een diagram in uw app uitvoeren. Dit is een goed alternatief voor het gebruik van tabellen in het load-script voor de communicatie met OpenAI.
Gegevens voor een afzonderlijk veld wordt heen en weer gestuurd tussen u en OpenAI. In veel gevallen kan de code die is gebruikt voor een verbinding met een load-script opnieuw worden gebruikt in een diagram, waarbij enkele wijzigingen moeten worden aangebracht.
Voor meer informatie gaat u naar OpenAI verbindingen gebruiken in visualisatie-uitdrukkingen.
Overwegingen voor de aanvraag van gegevensvolumes
Aanbevolen wordt om OpenAI-verbindingen alleen in diagramuitdrukkingen te gebruiken voor een klein aantal rijen met gegevens. Het wordt niet aanbevolen om diagramuitdrukkingen te gebruiken om grote hoeveelheden gegevens naar OpenAI te verzenden.
Het is van belang dat u weet hoeveel rijen u verzendt bij elke aanvraag. Fouten bij de configuratie van de verbinding in een diagramuitdrukking kunnen leiden tot onbedoeld grote aanvragen (bijvoorbeeld identieke rijen met dezelfde vraag omdat het gegevensmodel in een diagram onjuist wordt gebruikt). Voordat u werkt met een extern platform, moet u weten hoe de velden in de berekening van een diagramuitdrukking worden gebruikt, wat hun plaats is in het gegevensmodel en hoe het van invloed is op uw financiële overeenkomst en factureringsovereenkomsten met de derde partij. Een veelvuldiger gebruik van het externe platform kan leiden tot hogere kosten.
Volg de volgende richtlijnen om de grootte van uw aanvragen te beperken:
-
Gebruik de verbinding alleen in een diagramuitdrukking met tekst en afbeelding. Het wordt sterk afgeraden om de OpenAI-verbinding te gebruiken in een tabelobject, met name als u de uitdrukking toevoegt aan een tabel waarbij al één of meer dimensies zijn toegevoegd.
-
Als de diagramuitdrukking is gekoppeld aan het gegevensmodel van uw app, gebruik dan een if-instructie in de uitdrukking om alleen het diagram te berekenen als er in de app een afzonderlijke selectie is gemaakt. Hierdoor wordt het aantal rijen aanzienlijk verminderd in de aanvragen die uw diagram naar OpenAI verzendt.
-
Als u een OpenAI-verbinding gebruikt om grotere aanvragen te verzenden, gebruik dan de verbinding in uw load-script in plaats van in een diagramuitdrukking zodat de gegevens vooraf in uw gegevensmodel worden geladen.
Oefening: een basisdiagramuitdrukking maken
Doe het volgende:
-
Maak een Qlik Sense-app en open een nieuw werkblad in de geavanceerde bewerkingsmodus.
InformatieDe analyseverbinding die u gebruikt voor de diagramuitdrukking moet al zijn gemaakt in de ruimte waarin de app gaat maken. U kunt dit doen in de Editor voor laden van gegevens binnen een app, of vanaf de pagina Maken van het Analyse-activiteitencentrum. Ga voor meer informatie naar Een OpenAI verbinding maken. -
Sleep een tekst- en afbeeldingsobject naar het werkblad.
-
In het eigenschappenvenster, onder Gegevens > Metingen, voegt u een meting toe en klikt u op om de uitdrukkingseditor te openen.
-
Plak de volgende uitdrukking in de uitdrukkingseditor:
endpoints.ScriptAggrStr('{"RequestType":"endpoint", "endpoint":{"connectionname":"OpenAI Connection for Rows Completions (GPT-3)","column":"choices.text"}}', 'Translate this text from english to spanish: The sun was rising over the new tomorrow with a tinge of excitement.')
InformatieIn dit voorbeeld is het mogelijk om geen if-instructie te gebruiken, omdat we slechts één rij gegevens verzenden en er geen verbinding met een gegevensmodel aanwezig is. In andere scenario's moet u een if-instructie gebruiken om te zorgen dat het diagram alleen wordt berekend als één veldwaarde is geselecteerd in de app. Voor voorbeelden gaat u naar Snelle voorbeelden.InformatieUw OpenAI-verbinding moet zijn geconfigureerd met dezelfde waarde voor Naam als de connectionname die is opgegeven in de uitdrukking om deze exacte code juist te laten functioneren in uw app. Raadpleeg De verbindingen maken voor de waarden die worden gebruikt in deze zelfstudie. -
Klik op Toepassen.
Oefening: een tekstinvoervak maken met behulp van een variabele
U kunt de vraagtekenreeks vervangen door de naam van een variabele die u hebt gemaakt in de app. Dit stelt u in staat om een invoervak te maken waarin app-gebruikers hun eigen vragen kunnen invoeren zonder uitdrukkingen te hoeven gebruiken.
U kunt deze eenvoudige interface gebruiken om uw app-gegevens uit te breiden met contextgebonden informatie die direct wordt gegenereerd.
Doe het volgende:
-
Maak een app en voeg enkele gegevens en visualisaties toe aan een nieuw werkblad.
-
Klik op om een variabele te maken. Voor deze oefening geeft u de variabele de naam vUserQuestion. Laat de resterende parameters leeg.
-
Sleep in het bedrijfsmiddelenvenster een diagram met variabeleninvoer naar het werkblad. U vindt deze optie onder Uitbreidingen > Qlik Dasboard-bundel.
-
In het eigenschappenvenster voor het diagram met variabeleninvoer vouwt u Uiterlijk > Variabele uit.
-
Onder Naam selecteert u vUserQuestion.
-
Onder Weergeven als selecteert u Invoervak.
-
Sleep vanuit het bedrijfsmiddelenvenster een diagram met tekst- en afbeelding naar het werkblad.
-
In het eigenschappenvenster, onder Gegevens > Metingen, voegt u een meting toe en klikt u op om de uitdrukkingseditor te openen.
-
Plak de volgende uitdrukking in de uitdrukkingseditor:
if(vUserQuestion <> '', endpoints.scriptAggrStr('{"RequestType":"endpoint", "endpoint":{"connectionname":"OpenAI Connection for Rows Completions (GPT-3)","column":"choices.text"}}',vUserQuestion))
InformatieUw OpenAI-verbinding moet zijn geconfigureerd met dezelfde waarde voor Naam als de connectionname die is opgegeven in de uitdrukking om deze exacte code juist te laten functioneren in uw app. Raadpleeg De verbindingen maken voor de waarden die worden gebruikt in deze zelfstudie. -
Klik op Toepassen.
-
Wijzig het formaat van de invoer- en responsvakken.
Het moet nu mogelijk zijn om de bewerkingsmodus af te sluiten en een vraag te typen in het invoervak. Als u op Enter drukt of ergens op het werkblad klikt, wordt het responsvak ingevuld met een respons van OpenAI.
De OpenAI-verbinding in deze oefening communiceert niet met het gegevensmodel van de app, maar het is mogelijk om geavanceerdere apps te maken die volledig zijn geïntegreerd met de gegevens die zijn geladen in de app en reageren op selecties die u maakt in de app.
Voor meer informatie over het werken met variabelen raadpleegt u Een variabele maken en Besturingselement variabeleninvoer.
Verschillen tussen de code voor het load-script en de diagramuitdrukking
In deze diagram-uitdrukkingen hebben we de code die eerder in de les over het load-script is opgegeven opnieuw ingezet. De volgende lijst toont de belangrijkste verschillen tussen de load-scriptversie en de diagramuitdrukkingen.
-
We hebben ScriptEval gewijzigd in ScriptAggrStr. Dit geeft aan dat we een afzonderlijke rij gegevens verzenden en een afzonderlijke rij terug verwachten. Dit is vereist als u werkt met aangepaste gegevens, zoals in dit geval een variabele of constante. De 'Str' geeft aan dat we tekstwaarden verzenden en ontvangen.
-
We hebben een nieuwe eigenschap column toegevoegd, met een waarde van choice.text. Deze is genest in het endpoint-object. We moeten dit toevoegen aan de configuratietekenreeks om op te geven welk veld van de connector wordt teruggestuurd. In een diagramuitdrukking wordt er slechts één veld gebruikt en we moeten opgeven welk veld dat is.
Ga voor meer informatie naar SSE-syntax.