Vai al contenuto principale Passa a contenuto complementare

Esempio 3: configurazione 'API completamenti chat di OpenAI (GPT-3.5, GPT-4) – Righe

Questo esempio mostra come usare il connettore di analisi OpenAI con la configurazione 'API completamenti chat di OpenAI (GPT-3.5, GPT-4) – Righe'. Riporta degli esercizi basici che mostra come incorporare la funzionalità nel proprio modello dati e nelle espressioni del grafico.

La funzionalità della configurazione di questo connettore è molto simile a quella 'API completamenti OpenAI (GPT-3) - Righe'. Tuttavia, queste due configurazioni utilizzando modelli differenti, che a loro volta portano a risposte diverse. Inoltre, dovuto alle differenze nei nomi dei parametri tra le due configurazioni, fare riferimento al tutorial di esempio che corrisponde alla configurazione utilizzata. Per la configurazione Completamenti, vedere Esempio 1: configurazione 'API completamenti di OpenAI (GPT-3) – Righe.

È possibile anche completare questo esempio utilizzando il connettore Azure OpenAI. Quando si utilizza questo connettore, si interagisce con i modelli tramite la piattaforma Microsoft Azure, piuttosto che la piattaforma OpenAI.

Prima di iniziare

Prima di poter terminare l'esempio, è necessario completare i seguenti passaggi.

  • Creazione di un account sulla piattaforma OpenAI

  • Ricezione di una chiave API OpenAI

  • Abilitazione della funzionalità della connessione di analisi in Qlik Cloud

  • Creare connessioni con le configurazioni del connettore applicabili

Utilizzo del connettore  OpenAI nello script di caricamento

Creare una nuova app Qlik Sense, alla quale bisogna aggiungere uno script di caricamento per la comunicazione con la piattaforma OpenAI. Le tabelle caricate con lo script saranno accessibili nel modello dati della propria app.

Nota informaticaSe si usa la stessa app della sezione sullo script di caricamento dell'Esempio 2 per completare anche questa sezione, prima di caricare lo script riportato di seguito è necessario aggiungere un commento o eliminare lo script dell'Esempio 2. In caso contrario, il modello dati presenterà problemi e l'utente può persino riscontare un errore durante il caricamento dei dati.

Seguire i passaggi riportati di seguito. Per ulteriori dettagli, vedere Selezione e caricamento di dati da una connessione OpenAI.

Creazione di una tabella di dati da inviare a OpenAI

Il primo passaggio è la creazione di una tabella contenente la richiesta che si desidera inviare a OpenAI. La righe di dati nella richiesta sono note come "completamenti". Il testo di ogni elemento deve essere contenuto nelle righe di un singolo campo (colonna) nella tabella. Ogni riga nella colonna rappresenta del testo che deve essere completato dall'API OpenAI.

Può esservi un secondo campo aggiuntivo per il Campo di associazione, ma questo deve corrispondere al nome del campo specificato nella configurazione. Si tratta di un campo speciale che non sarà inviato a OpenAI, ma è allegato alle risposte allo scopo di generare un modello dati Qlik.

Nella propria app, aprire l'Editor caricamento dati e incollare il seguente codice in una nuova sezione dello script:

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

 

La tabella comprende un campo denominato Text, che contiene una singola domanda da porre a OpenAI. È possibile aggiungere ulteriori domande come nuove celle individuali sotto la cella della domanda esistente. Il campo RowId è il Campo di associazione, che sarà utilizzato nel passaggio successivo per collegare le risposte al modello dati dell'app.

Creazione di un'istruzione LOAD OpenAI

Il passaggio seguente consiste nella creazione di un'altra istruzione LOAD per la comunicazione con OpenAI. La tabella caricata con questa istruzione punta ai nomi della tabella e dei campi utilizzati per inviare i dati della richiesta. In pratica, una seconda tabella viene caricata dallo script per fornire le risposte di OpenAI agli elementi della richiesta dell'utente.

Per generare questa parte dello script, è possibile utilizzare la procedura guidata Seleziona dati per la connessione utilizzata. Questa genera uno script modello che include i nomi delle proprietà fornite. In alternativa, è possibile aggiungere la tabella manualmente nell'editor dello script senza bisogno di utilizzare la procedura guidata.

Individuare la connessione utilizzata nel pannello Sorgenti dati di Editor caricamento dati e fare clic su Seleziona dati. Questa azione apre la procedura guidata Seleziona dati.

Il pulsante Seleziona dati per una connessione di analisi nell'Editor caricamento dati

La scheda 'Aggiungi dati' dell'Editor caricamento dati, con l'icona di 'Seleziona dati' evidenziata

Quando si utilizza la procedura guidata Seleziona dati, è necessario fornire due proprietà:

  • Il nome della Tabella Resident. È una tabella con le domande da inviare a OpenAI. In questo caso, è SourceTable.

  • Il nome del Campo dati. È un campo contenente le domande da inviare a OpenAI. In questo caso, è Text.

In Tabelle, fare clic sulla casella di controllo della tabella denominata openai.

La procedura guidata di Seleziona dati nell'Editor caricamento dati

La scheda 'Aggiungi dati' dell'Editor caricamento dati, con l'icona di 'Seleziona dati' evidenziata

Quando si fa clic su Inserisci script, la nuova tabella viene aggiunta allo script di caricamento.

Una volta aggiunta l'istruzione di caricamento per OpenAI, lo script di caricamento dovrebbe essere il seguente:

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

 

Nota informaticaPerché il codice utilizzato funzioni correttamente nella propria app, anche la connessione OpenAI deve essere configurata con lo stesso valore Nome di quello specificato per connectionname nello script di caricamento riportato sopra. Per i valori utilizzati per questo tutorial, vedere Creazione di connessioni.

Ora è possibile eseguire lo script di caricamento.

Caricamento dei dati nell'app

Una volta completato lo script, fare clic su Carica dati. Questa opzione consente di eseguire le comunicazioni con OpenAI e inserisce le tabelle nel modello dati della propria app.

Nota informaticaSe si visualizza un messaggio di errore durante il caricamento dello script, è possibile che vi sia una mancata corrispondenza tra il Campo di associazione facoltativo secondario nella configurazione della connessione e lo script di caricamento. Se si è definito un Campo di associazione nella configurazione della connessione, assicurarsi di includerlo anche nello script della richiesta.

Aprire il Sistema di visualizzazione modello dati e notare che le due tabelle sono collegate, come previsto. Nel pannello Anteprima, la risposta di OpenAI alla domanda posta è inclusa nella seconda tabella.

Modello dati creato da una connessione OpenAI

Il Sistema di visualizzazione modello dati con il modello dati risultante, che include due tabelle.

Ora è possibile generare contenuti di analisi utilizzando i dati caricati nell'app. Non sarà necessario fare riferimento alla connessione OpenAI nei grafici creati utilizzando tali dati. Per ulteriori informazioni su come usare la connessione OpenAI direttamente nelle espressioni del grafico (anziché utilizzarla nello script di caricamento), vedere Utilizzo del connettore OpenAI nelle espressioni del grafico.

Utilizzo del connettore OpenAI nelle espressioni del grafico

Oltre ad aggiungere le domande e le risposte di OpenAI al modello dati della propria app utilizzando lo script di caricamento, è possibile anche eseguire queste operazioni direttamente in un grafico della propria app. È un'alternativa all'utilizzo delle tabelle nello script di caricamento per la comunicazione con OpenAI.

I dati per un singolo campo vengono inviati avanti e indietro tra l'utente e OpenAI. In molti casi, il codice utilizzato per la connessione di uno script può essere riutilizzato per un grafico, con alcune differenze notevoli.

Per ulteriori dettagli, vedere Utilizzo delle connessioni OpenAI nelle espressioni di visualizzazione.

Considerazioni relative al volume dati delle richieste

Per le espressioni del grafico per una o alcune righe di dati, si consiglia di utilizzare esclusivamente le connessioni OpenAI. Non si consiglia l'utilizzo di espressioni del grafico per inviare grandi quantità di dati a OpenAI.

È importante verificare il numero di righe che si inviano con ogni richiesta. Gli errori nella configurazione della connessione in un'espressione del grafico possono portare a richieste accidentalmente grandi (ad esempio, a causa di righe identiche con la stessa domanda a causa dell'utilizzo scorretto del modello dati in un grafico). Prima di interagire con una piattaforma di terze parti, assicurarsi di conoscere in che modo i campi utilizzati nel calcolo dell'espressione del grafico, e la loro posizione nel modello dati, hanno effetto sull'accordo finanziario e sulle modalità di fatturazione con le terze parti. Un utilizzo più elevato della piattaforma esterna può determinare costi superiori.

Seguire queste linee guida per controllare e limitare le dimensioni delle richieste:

  • Utilizzare solo la connessione in un'espressione del grafico Testo e immagine. Si sconsiglia vivamente l'utilizzo di una connessione  OpenAI in un oggetto Tabella, soprattutto se si desidera aggiungere l'espressione a una tabella con una o più dimensioni preesistenti.

  • Se l'espressione del grafico è collegata al modello dati della propria app, utilizzare un'istruzione if nell'espressione esclusivamente per calcolare il grafico quando si affettua un'unica selezione nell'app. In questo modo, il numero di righe verrà ridotto notevolmente nelle richieste che il grafico invierà a OpenAI.

  • Se si usa una connessione OpenAI per inviare richieste di grandi dimensioni, usare la connessione nello script di caricamento anziché in un'espressione del grafico, in modo che i dati vengano pre-caricati del modello dati.

Esercizio: creazione di un'espressione del grafico di base

  1. Creare un'app Qlik Sense e aprire un nuovo foglio in modalità di modifica avanzata.

    Nota informaticaLa connessione di analisi utilizzata per l'espressione del grafico deve essere già creata nello spazio dove si crea l'app. È possibile farlo nell'Editor caricamento dati all'interno di un'applicazione o dalla pagina Crea nel centro attività Analisi. Per ulteriori informazioni, vedere Creazione di una connessione OpenAI.
  2. Trascinare un grafico con Testo e immagini sul foglio.

  3. Nel pannello delle proprietà, in Dati > Misure, aggiungere una misura e fare clic su Espressione per aprire l'editor delle espressioni.

  4. Incollare la seguente espressione nell'editor delle espressioni:

    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.')
    Nota informaticaIn questo esempio, è consentito non utilizzare un'istruzione if, poiché si invia una sola riga di dati e non è presente nessuna connessione a un modello dati. In altri scenari, utilizzare un'istruzione if per assicurare che il grafico venga calcolato solo quando si seleziona un unico valore di campo nell'app. Ad esempio, vedere Esempi rapidi.
    Nota informaticaAffinché il codice utilizzato funzioni correttamente nella propria app, anche la connessione OpenAI deve essere configurata con lo stesso valore Nome di quello specificato per connectionname nell'espressione. Per i valori utilizzati per questo tutorial, vedere Creazione di connessioni.
  5. Fare clic su Applica.

Il grafico Qlik SenseTesto e immagini con la risposta di OpenAI

Oggetto di lavoro Qlik Sense con risposta di OpenAI.

Esercizio: creazione di una casella di testo di input che utilizza una variabile

In alternativa, è possibile sostituire la stringa della domanda con il nome della variabile creata nell'app, consentendo la creazione di una casella di input in cui gli utenti dell'app possono inserire le proprie domande senza utilizzare le espressioni.

È possibile utilizzare questa semplice interfaccia per aggiungere informazioni contestuali ai dati della propria app in tempo reale.

  1. Creare un'app e aggiungere alcuni dati e visualizzazioni a un nuovo foglio.

  2. Fare clic su Variabili per creare una variabile. Per questo esercizio, assegnare ilNome vUserQuestion. Lasciare gli altri parametri vuoti.

  3. Nel pannello risorse, trascinare un grafico Input variabile sul foglio. È possibile trovarlo in EstensioniBundle dashboard Qlik.

  4. Nel pannello delle proprietà del grafico Input variabile, espandere Aspetto > variabile.

  5. In Nome, selezionare vUserQuestion.

  6. In Mostra come, selezionare Casella di input.

  7. Nel pannello risorse, trascinare un grafico Testo e immagini vuoto sul foglio.

  8. Nel pannello delle proprietà, in Dati > Misure, aggiungere una misura e fare clic su Espressione per aprire l'editor delle espressioni.

  9. Incollare la seguente espressione nell'editor delle espressioni:

    if(vUserQuestion <> '', endpoints.scriptAggrStr('{"RequestType":"endpoint", "endpoint":{"connectionname":"Chat_Completions_GPT_3.5_4_Rows","column":"choices.message.content"}}',vUserQuestion))
    Nota informaticaAffinché il codice utilizzato funzioni correttamente nella propria app, anche la connessione OpenAI deve essere configurata con lo stesso valore Nome di quello specificato per connectionname nell'espressione. Per i valori utilizzati per questo tutorial, vedere Creazione di connessioni.
  10. Fare clic su Applica.

  11. Ridimensionare le caselle per input e risposta in base alle proprie esigenze.

Ora dovrebbe essere possibile uscire dalla modalità di modifica e digitare una domanda nella casella di input. Quando si preme Invio o si fa clic su un punto qualsiasi del foglio, la casella con la risposta verrà popolata con la risposta di OpenAI.

Foglio semplice con dati generici e casella di input per le domande da porre a OpenAI.

Oggetto di lavoro Qlik Sense con risposta di OpenAI.

La connessione OpenAI in questo esercizio non comunica con il modello dati dell'app, ma è possibile creare app più sofisticate completamente integrate con i dati caricati nell'app, oltre a essere reattive alle selezioni in essa effettuate.

Per ulteriori informazioni sull'uso delle variabili, vedere Creazione di una variabile e Controllo Input variabile.

Differenze tra lo script di caricamento e il codice di espressione del grafico

Nelle seguenti espressioni del grafico, è stato riutilizzato il codice inserito nella lezione precedente relativa allo script di caricamento. Il seguente elenco evidenza le differenze più importanti tra la versione dello script di caricamento e le espressioni del grafico:

  • Modificare ScriptEval in ScriptAggrStr come illustrato. Questa operazione specifica che si desidera inviare un'unica riga di dati e che si prevede di ricevere una singola riga. Ciò è necessario quando si utilizzano dati personalizzati, come una variabile o un valore costante, come in questo caso. “Str” indica che si inviano e si ricevono valori di testo.

  • Aggiungere una nuova proprietà, column, con il valore choices.message.content, come illustrato. È annidata nell'oggetto endpoint. Questa aggiunta alla stringa di configurazione è necessaria per specificare il campo che deve essere restituito dal connettore. Nell'espressione di un grafico, viene utilizzato un unico campo ed è necessario specificare qual è.

Per ulteriori informazioni, vedere Sintassi delle estensioni lato server.

Hai trovato utile questa pagina?

Se riscontri problemi con questa pagina o con il suo contenuto – un errore di battitura, un passaggio mancante o un errore tecnico – facci sapere come possiamo migliorare!