Ga naar hoofdinhoud Ga naar aanvullende inhoud

Voorbeeld 3: configuratie 'OpenAI Chat Completions API (GPT-3.5, GPT-4) - Rijen'

Met dit voorbeeld leert u hoe u de OpenAI-analyseconnector gebruikt met de configuratie 'OpenAI Chat Completions API (GPT-3.5, GPT-4) - 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 Completions API (GPT-3) - 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 voor completions raadpleegt u Voorbeeld 1: configuratie 'OpenAI Completions API (GPT-3) - 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.

InformatieAls u dezelfde app gebruikt om deze sectie te voltooien als voor de load-scriptsectie van Voorbeeld 2, moet u het script van Voorbeeld 2 uitcommentariëren of verwijderen voordat u het onderstaande script laadt. Als u dit niet doet, ontstaan er problemen met het gegevensmodel en er kan zelfs een fout optreden bij het laden van de gegevens.

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 Gegevens selecteren. Hiermee wordt de wizard Gegevens selecteren geopend.

Knop Gegevens selecteren voor een analyseverbinding in de editor voor laden van gegevens

Tabblad 'Gegevens toevoegen' in de editor voor laden van gegevens, met pictogram voor 'Gegevens selecteren' gemarkeerd

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.

Wizard Gegevens selecteren in de editor voor het laden van gegevens

Tabblad 'Gegevens toevoegen' in de editor voor laden van gegevens, met pictogram voor 'Gegevens selecteren' gemarkeerd

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:

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);

 

InformatieUw OpenAI-verbinding moet zijn geconfigureerd met dezelfde waarde voor Naam als de connectionname die is opgegeven in het bovenstaande load-script om deze exacte code juist te laten functioneren in uw app. Raadpleeg De verbindingen maken voor de waarden die worden gebruikt in deze zelfstudie.

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.

InformatieAls er een fout optreedt bij het laden van script, komt het optionele, tweede koppelingsveld in de configuratie van de verbinding mogelijk niet overeen met die in het load-script. Als u een koppelingsveld in de configuratie van uw verbinding hebt gedefinieerd, moet u zorgen dat u deze ook opneemt in het aanvraagscript.

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.

Gegevensmodel dat is gemaakt op basis van een OpenAI-verbinding

Gegevensmodelviewer toont het resulterende gegevensmodel met twee tabellen.

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

  1. 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.
  2. Sleep een tekst- en afbeeldingsobject naar het werkblad.

  3. In het eigenschappenvenster, onder Gegevens > Metingen, voegt u een meting toe en klikt u op Uitdrukking om de uitdrukkingseditor te openen.

  4. Plak de volgende uitdrukking in de uitdrukkingseditor:

    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.')
    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.
  5. Klik op Toepassen.

Diagram met Qlik Sensetekst en afbeelding met respons van OpenAI

Qlik Sense-werkbladobject met respons van OpenAI.

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.

  1. Maak een app en voeg enkele gegevens en visualisaties toe aan een nieuw werkblad.

  2. Klik op Variabelen om een variabele te maken. Voor deze oefening geeft u de variabele de naam vUserQuestion. Laat de resterende parameters leeg.

  3. Sleep in het bedrijfsmiddelenvenster een diagram met variabeleninvoer naar het werkblad. U vindt deze optie onder UitbreidingenQlik Dasboard-bundel.

  4. In het eigenschappenvenster voor het diagram met variabeleninvoer vouwt u Uiterlijk > Variabele uit.

  5. Onder Naam selecteert u vUserQuestion.

  6. Onder Weergeven als selecteert u Invoervak.

  7. Sleep vanuit het bedrijfsmiddelenvenster een diagram met tekst- en afbeelding naar het werkblad.

  8. In het eigenschappenvenster, onder Gegevens > Metingen, voegt u een meting toe en klikt u op Uitdrukking om de uitdrukkingseditor te openen.

  9. Plak de volgende uitdrukking in de uitdrukkingseditor:

    if(vUserQuestion <> '', endpoints.scriptAggrStr('{"RequestType":"endpoint", "endpoint":{"connectionname":"Chat_Completions_GPT_3.5_4_Rows","column":"choices.message.content"}}',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.
  10. Klik op Toepassen.

  11. 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.

Eenvoudig werkblad met algemene gegevens en invoervak om vragen te stellen aan OpenAI

Qlik Sense-werkbladobject met 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 choices.message.content. 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.

Was deze pagina nuttig?

Als u problemen ervaart op deze pagina of de inhoud onjuist is – een typfout, een ontbrekende stap of een technische fout – laat het ons weten zodat we dit kunnen verbeteren!