Competenze della finestra di dialogo SQL

Le finestre di dialogo SQL sono competenze che possono tradurre le espressioni del linguaggio naturale di un utente in query SQL, inviare le query a un'origine dati backend e visualizzare la risposta. Questa versione delle finestre di dialogo SQL supporta l'integrazione con i servizi di database Oracle, ad esempio Oracle Enterprise Database Service.

Nota

Questa versione non supporta le competenze o le competenze della finestra di dialogo SQL multilingue in cui la lingua principale non è l'inglese. Quando si crea una nuova skill (o una nuova versione o una copia di una skill), utilizzare il campo Lingua principale nella finestra di dialogo Crea per specificare la lingua principale. Uno skill è multilingue se il bundle di risorse, le espressioni di esempio, l'apprendimento automatico e gli elenchi di valori, ad esempio, hanno più lingue o se il flusso della finestra di dialogo contiene codice per rilevare la lingua dell'input utente e tradurla dietro le quinte.

Quando scrivono competenze che forniscono informazioni sul database agli utenti finali, gli sviluppatori in genere devono definire i casi d'uso, scrivere componenti personalizzati per recuperare i dati, creare intenti per i casi d'uso, mappare le espressioni degli utenti agli intenti e scrivere il flusso di finestre di dialogo per gestire ogni intento. Con le competenze della finestra di dialogo SQL, non è necessario eseguire questi passi. Invece, si mappano i modelli mentali degli utenti dei dati all'origine dati fisica e l'abilità utilizza la mappa per generare dinamicamente SQL dalle espressioni del linguaggio naturale.

Ad esempio, gli utenti potrebbero sapere che i dipendenti appartengono a reparti che si trovano in varie ubicazioni e che dispongono di ID dipendente, titoli mansione, date di assunzione e, talvolta, commissioni. Dato il loro modello mentale, possono recuperare i dati chiedendo l'abilità "Qual è il lavoro di James Smith?", "Quando è stato assunto James Smith?", "Quanti dipendenti sono a New York?", e "Chi ha la commissione più alta?

È possibile creare una competenza della finestra di dialogo SQL in modo diverso rispetto alle competenze normali. Per consentire all'abilità di comprendere e rispondere alle espressioni del linguaggio naturale, si crea un modello logico dal modello fisico e si insegna tale modello utilizzando i termini del linguaggio naturale per descrivere il modello fisico.

Funzionamento delle finestre di dialogo SQL

Per implementare uno skill Finestra di dialogo SQL, è necessario creare uno skill Finestra di dialogo visiva e importare informazioni sul modello fisico (schema di database) dal servizio dati. Oracle Digital Assistant utilizza queste informazioni per creare un'entità di query per ogni tabella importata (il modello logico). Le entità di query contengono attributi che modellano le colonne della tabella.

Se una tabella nel modello fisico dispone di una chiave esterna, l'entità query dispone di un attributo che si collega all'entità query correlata. Ad esempio, se una tabella Emp dispone di una chiave esterna per la tabella Dept, l'entità query Emp dispone di un attributo dept che si collega all'entità Dept.

Non appena si creano le entità di query e si identificano le relative chiavi primarie, è possibile addestrare l'abilità ed è pronta per l'uso in modo rudimentale. Cioè, è possibile utilizzare espressioni in formato libero, ma, per ora, la query deve utilizzare l'esatta entità e attributi nomi primari, che sono inizialmente derivati dai nomi del modello fisico (i nomi canonici). Questo cambierà man mano che si migliora il modello logico per riflettere più da vicino il linguaggio naturale.

Per consentire agli utenti finali di utilizzare il linguaggio naturale per chiedere informazioni sui dati, è possibile mappare la terminologia dell'utente finale al modello fisico modificando i nomi principali e aggiungendo sinonimi sia per le entità di query che per i relativi attributi. Ad esempio, è possibile modificare il nome principale della tabella Emp in "dipendente" e aggiungere il sinonimo "membro staff". L'aggiunta di nomi e sinonimi primari è uno dei due modi in cui si addestra il parser NLP (Natural Language Parser) per risolvere le espressioni nelle query Oracle che significa linguaggio di query di rappresentazione (OMRQL). Le query OMRQL sono simili alle query SQL, ma si basano sui nomi canonici dei modelli di oggetti (le entità di query). Ad esempio, se si modifica il nome principale di empno in "numero dipendente", "Qual è il numero dipendente di Joe Smith" viene risolto in SELECT empno FROM emp WHERE ename = 'Joe Smith'.

Per migliorare ulteriormente la risoluzione NLP (Natural Language Processor), è inoltre possibile associare gli attributi agli elenchi di valori, che vengono popolati automaticamente dal servizio dati al momento della creazione.

Si supponga, ad esempio, di importare le tabelle Emp e Dept da un servizio dati, il che comporta l'importazione di entità di query Emp e Dept. Subito dopo aver importato le tabelle e addestrato la competenza, è possibile eseguire una query sulle entità della query utilizzando espressioni come quelle riportate di seguito.

Show all Emp in dept 10

Dopo aver modificato i nomi principali per le entità e gli attributi in termini di linguaggio più naturale, ad esempio Employees per l'entità e department per l'attributo, è possibile utilizzare espressioni come questa:

Show all the employees in department 10

È inoltre possibile aggiungere sinonimi per modellare tutti i modi in cui le persone in genere fanno riferimento all'entità o all'attributo. Ad esempio, è possibile aggiungere i sinonimi district e territory per department in modo che l'NLP riconosca questa espressione:

Show all employees in district 10

Con espressioni più complesse, puoi insegnare alla competenza come risolvere le query in OMRQL aggiungendo dati di formazione personalizzati che associano le espressioni a specifiche istruzioni OMRQL.

Se la tua abilità ha l'intenzione di gestire casi d'uso non SQL o è inclusa in un DA, dovrai aggiungere espressioni di instradamento al set di dati delle entità di query per aiutare la competenza a distinguere tra espressioni correlate SQL e espressioni non correlate SQL.

Quando lo skill restituisce un risultato di query, consente all'utente di assegnare un pollice in alto o un pollice in basso per indicare se il risultato è corretto. La pagina Approfondimenti mostra i pollici in alto (interrogazioni corrette) e i pollici in basso (interrogazioni errate) conteggi in modo da poter vedere l'efficacia dello skill.

Query supportate

Il modello di elaborazione del linguaggio naturale delle finestre di dialogo SQL supporta query che si traducono nelle clausole SQL di base: SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY e LIMIT.

Una query può coinvolgere fino a 3 entità diverse. Cioè, può avere fino a 2 join. Le query che coinvolgono 3 join potrebbero risolvere per correggere i risultati a seconda del caso d'uso. Per 4 o più join, è necessario aggiungere dati di formazione personalizzati per assicurarsi che la competenza fornisca i risultati corretti.

Le finestre di dialogo SQL non supportano le query più complesse che coinvolgono subquery e operatori SET (INTERSECT, UNION, EXCEPT e NONE). Inoltre, non supporta query non inglesi, query che richiedono una risposta sì o no, query con pronomi e query di follow-up. Per informazioni su queste e altre limitazioni delle query relative alle finestre di dialogo SQL, vedere Risoluzione dei problemi delle query SQL.

Per alcune query non supportate, è possibile risolvere il problema utilizzando viste di database o creando attributi virtuali come descritto in Aggiungi un attributo personalizzato.

Di seguito è riportata una tabella che descrive i tipi di query supportati dalle finestre di dialogo SQL. Utilizza i seguenti valori di database:

Tabella dipendenti

employee_id nome Ruolo stipendio department_id
1 Alex Smith VP 500.000 1
2 Samyra Kent Addetto vendite 60.000 1
3 Laticia Fan Addetto vendite 80.000 1

Tabella reparti

department_id nome posizione
1 Vendite Dallas

Di seguito sono riportati i tipi di query supportati dalle finestre di dialogo SQL.

Categoria descrizione; Esempi
Visualizza

È possibile richiedere un'entità, attributi e aggregazioni di attributi.

Le aggregazioni supportate sono medie, somma, min, max, count(attribute), count(column), count(distinct attribute)

Se la query non assegna un nome ad alcun attributo, lo skill visualizza gli attributi elencati per Attributi predefiniti nella scheda Presentazione dell'entità.

  • mostrami tutti i dipendenti
  • nome, stipendio e nome reparto dei dipendenti
  • Quali sono le mansioni uniche che un dipendente può avere?
  • numero di dipendenti
  • restituire lo stipendio più alto di tutti i dipendenti
filtri

È possibile filtrare le righe della tabella in base a condizioni in base ad attributi specifici.

Gli attributi di testo possono essere uguali a un valore, contenere un valore o iniziare o terminare con un valore.

È possibile utilizzare comparatori diversi per filtrare le colonne numeriche e di data/ora (=, <, <=, >, >=).

Utilizzare AND e OR per combinare più condizioni.

  • mostra i nomi dei dipendenti il cui titolo professionale è impiegato
  • restituire lo stipendio di tutti gli impiegati
  • dipendenti i cui nomi iniziano con Jo
  • visualizzare i dipendenti che hanno aderito nel 2020 e guadagnano oltre 7000
Filtri con date

Quando si applica un filtro in base a un attributo data o data/ora, tenere presente quanto riportato di seguito.

  • Per gli attributi data/ora, i valori devono contenere date e ore (10 dicembre 2020 alle 3 del pomeriggio).
  • I valori possono essere assoluti (10 dicembre 2020) o relativi (oggi).
  • Il filtro può essere un intervallo, ad esempio "ultimo anno" o "dal 5 gennaio al 5 luglio" e può avere date o date con orari.
  • Utilizzare l'impostazione Preferenza temporale dell'attributo nella scheda Informazioni generali per impostare se i valori ambigui, ad esempio "Mercoledì", devono essere impostati per impostazione predefinita sulla data più vicina, passata o futura.
  • Sono supportati i valori di durata che devono essere forzati in date, ad esempio "2 giorni".
  • Esempio assoluto: chi sono stati i dipendenti assunti il 10 dic 2020
  • Esempio di intervallo relativo: chi sono stati i dipendenti assunti l'anno scorso
  • Esempio di data relativa: i dipendenti assunti oggi
  • Esempio di data + ora: pacchetti consegnati ieri alle 6 pm
  • Esempio di data + intervallo di tempo: pacchetti consegnati tra 5 gen 7 pm e 5 feb 10 am
  • Esempio di data ambigua: chi erano i dipendenti assunti mercoledì
  • Esempio di durata: dipendenti assunti da 1 mese
Ordinazione e limitazione del numero di righe È possibile richiedere in modo esplicito che lo skill ordini le righe risultanti in base a un determinato attributo. È inoltre possibile richiedere un determinato numero di valori più alti o più bassi di un attributo o di un'entità.
  • mostra i dipendenti ordinati in base ai nomi dei rispettivi reparti
  • dipendenti ordinati per nome dalla Z alla A
  • restituisce il nome e lo stipendio di tutti i dipendenti in ordine decrescente di stipendio
  • Quali sono i 10 salari più alti di tutti i dipendenti
  • quale dipendente ha lo stipendio più basso
  • mostra i primi 5 dipendenti
Gruppo per È possibile richiedere aggregati diversi dopo il raggruppamento in base a un attributo o a un'entità.
  • lo stipendio medio di ogni mansione
  • Qual è lo stipendio più alto per reparto?
  • mostra il nome, l'ubicazione e il numero di dipendenti per reparto
Raggruppa per e filtra È possibile filtrare attributi o entità in base alle aggregazioni.
  • mostra tutti i lavori con uno stipendio medio superiore a 3000
  • dipartimenti il cui stipendio minimo è 4000
  • Quali reparti hanno almeno 20 dipendenti?
Raggruppa per e ordina con limite facoltativo È possibile ordinare attributi o entità in base alle aggregazioni e, facoltativamente, richiedere di visualizzare un numero di righe superiori o inferiori.
  • mostra tutte le mansioni ordinate in base allo stipendio più alto pagato ai dipendenti in quella mansione
  • Quale reparto ha lo stipendio medio più basso?
  • visualizzare il nome dei reparti con i 3 conteggi dipendenti più alti

Esercitazione: Introduzione alle finestre di dialogo SQL

Puoi dare un'occhiata pratica alle finestre di dialogo SQL esaminando questa esercitazione:

Introduzione alle finestre di dialogo SQL.

Flusso di lavoro finestre di dialogo SQL

Il modo in cui si crea una competenza della finestra di dialogo SQL è diverso dalle competenze normali. Di seguito sono riportati i passi principali per creare una competenza della finestra di dialogo SQL e addestrarla in modo che le persone possano utilizzare il linguaggio naturale per eseguire query sui servizi dati.

I partecipanti AI seguenti passi sono sviluppatore di competenze, amministratore di servizi, esperto di database e formatore AI.

  • Lo sviluppatore di competenze raccoglie i requisiti di competenze (personali utente, casi d'uso e attività) e il corpus di formazione (espressione utente di esempio) e crea lo skill. Lo sviluppatore aiuta anche a definire come vengono visualizzati i risultati. Questa persona viene a volte indicata come designer di conversazioni.

  • L'amministratore del servizio aggiunge una connessione al servizio di dati.

  • L'esperto di database analizza i requisiti di competenza e il corpus di formazione per identificare le tabelle e gli attributi che forniscono le risposte. L'esperto crea quindi il modello logico di base importando informazioni dal modello fisico nello skill. L'esperto assiste inoltre lo sviluppatore di competenze e l'addestratore di intelligenza artificiale con task quali l'aggiunta di attributi basati su espressioni SQL, l'associazione di attributi a elenchi di valori caricati dalle tabelle, l'associazione di attributi a espressioni di rilettura e l'esecuzione di addestramento personalizzato.

  • Il trainer AI aggiunge nomi e sinonimi primari per insegnare al parser di linguaggio naturale (NLP) come comprendere le espressioni del linguaggio naturale. Per espressioni che l'abilità non può tradurre in OMRQL, l'addestratore AI aggiunge addestramento personalizzato per insegnare al parser di linguaggio naturale come comprendere queste espressioni. Il formatore monitora e testa continuamente le competenze per aumentare l'accuratezza della traduzione del linguaggio naturale in query di database.

Per illustrare il flusso di lavoro, verrà utilizzato un servizio di dati di contabilità fornitori di esempio con le seguenti tabelle. Per brevità, mostriamo solo le colonne menzionate in questo argomento.

tabella Colonne
fatture
  • invoice_num
  • invoice_date
  • pmt_status_flag
  • invoice_amount
  • fornitore
payment_schedules
  • invoice_num
  • due_date
  • amount_remaining
fornitori
  • vendor_num
  • vendor_name
  1. Definisci i requisiti: lo sviluppatore di skill raccoglie i casi d'uso e i task che lo skill della finestra di dialogo SQL dovrebbe supportare. Ad esempio, un reparto contabilità fornitori potrebbe avere questo caso d'uso:

    • Caso d'uso: paga tutte le fatture con saldi in sospeso che scadono entro 30 giorni in modo da evitare penali.

      • Task: trovare tutte le fatture non approvate in scadenza entro 30 giorni, in modo da poterle approvare in tempo.

      • Task: trovare tutte le fatture approvate in sospeso con scadenza entro 30 giorni, in modo da poterle pianificare il pagamento in tempo.

    Come parte di questa fase dei requisiti, lo sviluppatore di abilità compila un elenco rappresentativo dei diversi modi in cui le persone chiedono queste informazioni. Questo elenco funge da set di espressioni di esempio utilizzate dall'addestratore AI per il corpus di addestramento.

  2. Impostazione dello skill: l'amministratore del servizio, lo sviluppatore dello skill e l'esperto del database collaborano per impostare lo skill di base.

    1. Integrazione con il servizio: l'amministratore del servizio crea una connessione da Oracle Digital Assistant al servizio dati. Vedere Connettersi al servizio dati.

    2. Crea skill finestra di dialogo SQL: lo sviluppatore di competenze crea lo skill della finestra di dialogo SQL, assicurandosi che la modalità della finestra di dialogo sia impostata su Visuale nella finestra di dialogo Crea skill. Vedere Creare la competenza della finestra di dialogo SQL.

    3. Importare lo schema: esperto di database identifica le tabelle e i campi necessari per supportare i casi d'uso e quindi, dalla pagina Entità dello skill, le importa dal servizio dati come descritto in Crea entità query per modellare il servizio dati. In questo modo viene creato un modello logico di base che contiene un'entità query per ogni tabella importata.

      Nel nostro esempio, l'esperto di database importa le tabelle invoices, payment_schedules e vendors.

      A questo punto, l'abilità è pronta per l'uso con funzionalità limitate. Per il modello logico di base, i nomi di entità e attributi vengono derivati dai nomi di tabella e campo del modello fisico. Ad esempio, se il nome della tabella è payment_schedules, il nome principale è payment schedules. Il formatore AI può testare le query dalla pagina Entità oppure utilizzare il tester di conversazione (Anteprima) per provare la funzionalità SQL.

      Nel nostro servizio dati di esempio, possono utilizzare espressioni di test come "mostra fatture con flag stato pagamento N", "mostra numero fattura 17445" o "mostra schedulazioni pagamenti con data di scadenza precedente a 2022-08-30".

  3. Formazione: consente di aggiungere i dati di addestramento tramite nomi primari, sinonimi, elenchi di valori, espressioni regolari e query in linguaggio naturale mappate a OMRQL.

    1. Aggiungi terminologia in linguaggio naturale: per facilitare l'associazione delle frasi in linguaggio naturale alla struttura di dati di base, il trainer AI insegna alla competenza i diversi modi in cui gli utenti finali fanno riferimento alle entità e agli attributi. Cioè, i nomi che le persone useranno nelle loro espressioni del linguaggio naturale. Il formatore inizia analizzando le frasi che lo sviluppatore di abilità ha raccolto per identificare le espressioni che l'abilità dovrebbe gestire (il corpus di allenamento). Inoltre, possono consultare un thesaurus per sinonimi e crowd-source per frasi simili. Quindi l'addestratore AI registra i termini equivalenti modificando i nomi primari e aggiungendo sinonimi. Vedere Fornire dati di formazione mediante nomi e sinonimi.

      Nel nostro esempio, una delle espressioni raccolte durante la fase dei requisiti è "Dammi un elenco di fatture con un saldo in sospeso maggiore di zero". L'attributo che contiene il saldo è amount remaining, pertanto il formatore AI aggiunge il sinonimo outstanding balance a tale attributo.

    2. Associa a elenchi di valori: per migliorare la precisione, l'addestratore AI può, se necessario, creare elenchi di valori contenenti valori di esempio dal servizio dati. Lo skill associa automaticamente gli elenchi ai rispettivi attributi, il che consente al parser di linguaggio naturale di comprendere i tipi di valori che tali attributi possono contenere. Vedere Fornire dati di formazione mediante elenchi di valori.

      Nel nostro esempio, associano l'attributo vendor_name a un elenco di valori recuperato dal servizio dati. Se l'elenco di valori include "Seven Corporation" e un utente chiede "mostra flag di riepilogo per Seven Corporation", l'NLP dedurrà che Seven Corporation è un nome fornitore.

    3. Associa a espressioni regolari: quando i valori di un attributo devono corrispondere a un pattern specifico, il formatore AI può creare un'entità di espressione regolare e associarla a tale attributo. Vedere Fornire dati di formazione mediante espressioni regolari.

      Ad esempio, il formatore AI può associare un attributo ip_address all'espressione regolare (\\d{1,2}|(0|1)\\d{2}|2[0-4]\\d|25[0-5]).

    4. Mappa query complesse: nei casi in cui lo skill non è in grado di tradurre un'espressione valida in OMRQL, l'addestratore AI aggiunge tale espressione AI dati di addestramento e la mappa a OMRQL come descritto in Fornire dati di addestramento tramite le espressioni. Ad esempio, è possibile mappare "Mostra fatture non pagate" a SELECT * payment_schedules WHERE payment_status_flag = 'Y' .

    5. Fornire suggerimenti di completamento automatico: per consentire agli utenti di apprendere a cosa può rispondere il modello logico, aggiungere espressioni di esempio come descritto in Fornire suggerimenti di query per gli utenti della finestra di dialogo SQL.

    6. Fornire dati di instradamento: se la competenza della finestra di dialogo SQL ha intenti o si trova in un DA, sarà necessario aggiungere espressioni per consentire alla competenza di distinguere le query di database. Vedere Instradare gli argomenti alla conversazione delle finestre di dialogo SQL.

    7. Formazione del modello NLP: per incorporare dati di formazione nel modello NLP, lo sviluppatore di competenze o l'addestratore AI fa clic sull'icona Formazione e fa clic su Sottometti.

  4. Configura modalità di visualizzazione delle informazioni: esperto di database e sviluppatore di competenze collaborano per ottimizzare la modalità di visualizzazione dei risultati di ciascuna entità, come descritto in Configura presentazione di entità e attributi. Ad esempio, possono impostare il criterio di ordinamento predefinito di un'entità, visualizzarlo come modulo o tabella, impostare gli attributi minimi da includere nell'output, aggiungere pulsanti e collegamenti ai risultati e aggiungere attributi che visualizzano dati derivati o calcolati.

    Nel nostro esempio, potrebbero impostare sia il criterio di ordinamento predefinito dell'entità fattura che gli attributi minimi su invoice_num e gli attributi predefiniti su invoice_num, invoice_date, pmt_status_flag e invoice_amount. Possono inoltre aggiungere un attributo age calcolato utilizzando la differenza tra la data odierna e la data della fattura.

  5. Configura regole query: esperto di database e addestratore AI collaborano per impostare le regole di query, ad esempio quando utilizzare la corrispondenza parziale e l'attributo da utilizzare per la misurazione quando qualcuno chiede di confrontare le righe senza specificare un attributo con cui eseguire il confronto. Vedere Definisci regole query.

    Nel nostro esempio, anticipano gli utenti finali che chiedono la maggior parte dei 10 pagamenti da effettuare, quindi configureranno l'entità payment schedules in modo che utilizzi due_date per i confronti e invertiranno i confronti per quell'attributo in modo che le date precedenti siano superiori alle date successive.

  6. Test e riparazione: il trainer AI utilizza il tester di query della pagina Entità per verificare che le espressioni di test vengano risolte nel linguaggio OMRQL desiderato e che la competenza possa tradurre il linguaggio OMRQL in SQL eseguibile. Quando il tester query non è in grado di tradurre OMRQL in SQL, richiede i dati di addestramento. In molti casi, è possibile risolvere il problema aggiungendo il risultato ai dati di formazione e associandolo a un'istruzione OMRQL. Vedere Test e riparazione.

  7. Monitora e migliora: dopo che la competenza è entrata nella fase di beta test e oltre, il trainer AI, lo sviluppatore di competenze, il project manager e le parti coinvolte possono monitorare continuamente i test batch e i dati Insights per vedere quanto bene la competenza sta funzionando e identificare le aree da migliorare. Vedere Monitoraggio e miglioramento.

Connettersi al servizio dati

Prima di poter accedere a un servizio dati da qualsiasi competenza della finestra di dialogo SQL, è necessario aggiungere un'integrazione del servizio dati che consenta a Oracle Digital Assistant di accedere al servizio dati. È necessaria una sola integrazione per ogni servizio dati.

Le integrazioni sono state testate con Oracle Database Cloud Service Enterprise Edition 12c e 19c Oracle Autonomous Transaction Processing e MySQL HeatWave Database Service con MySQL versione 8.

Nota

Dopo aver creato il servizio, non è possibile modificarlo. In caso di modifica della password, sarà necessario eliminare e ricreare l'integrazione del servizio dati.

Servizi di dati Oracle

Per connettersi a un database Oracle, procedere come segue.

  1. In Digital Assistant, fare clic su icona menu laterale per aprire il menu laterale, fare clic su Impostazioni, su Servizi aggiuntivi e sulla scheda Dati.

  2. Fare clic su + Aggiungi servizio.

  3. Nella finestra di dialogo Nuovo servizio dati fornire le informazioni di base riportate di seguito.

    Nome campo descrizione;
    Tipo di database Selezionare Oracle.
    Nome Un nome univoco per il servizio.
    Descrizione servizio dati Descrizione facoltativa dell'integrazione del servizio dati, ad esempio la descrizione del database o lo scopo.
    Nome utente Chiedere all'amministratore del database il nome utente e la password che consentono di accedere alle tabelle necessarie agli sviluppatori di skill per creare le entità composte per la competenza della finestra di dialogo SQL, come descritto in Crea entità query per modellare il servizio dati.
    Password Password dell'utente. Per l'integrazione con Oracle Digital Assistant, una password deve contenere almeno 14 caratteri e non più di 30 caratteri e almeno un carattere maiuscolo, un carattere minuscolo e un numero. Inoltre, non può iniziare con una cifra.
  4. Fare clic su Continua per configurare l'autenticazione dell'utente finale se il servizio dati è configurato per l'accesso basato sui ruoli. Di seguito è riportata una descrizione dei campi della pagina.

    Nome campo descrizione;
    L'autenticazione utente finale è obbligatoria Selezionare questa opzione se il servizio dati è configurato per l'accesso basato su ruolo.
    Servizio di autenticazione

    Selezionare un servizio di autenticazione configurato in Impostazioni > Servizi di autenticazione.

    Identificativo utente finale Selezionare il tipo di identificativo dell'utente finale.
    Espressione personalizzata

    Se il tipo di identificativo dell'utente finale selezionato è custom, immettere un'espressione FreeMarker in una variabile del profilo utente che rappresenta l'identificativo dell'utente finale.

    Per ulteriori informazioni ed esempi, vedere Espressioni per richieste di rimborso profilo OICD.

  5. Fare clic su Continue per aggiungere i dettagli della connessione.

  6. Nella pagina Dettagli connessione, selezionare Di base o Connessione al wallet cloud per il tipo di connessione.

    • Per i database a nodo singolo e i database abilitati per RAC, è necessario selezionare Basic.
    • Se si sta eseguendo la connessione a un database ATP, è necessario selezionare Connessione al wallet cloud.
  7. Se il tipo di connessione è Base, immettere i valori riportati di seguito, che è possibile ottenere dall'amministratore del database.

    Nome campo descrizione;
    Usa TLS Spostare questo switch sulla posizione ON se si desidera utilizzare TLS (Transport Layer Security) per proteggere la connessione.
    Nota

    Se si utilizza un certificato CA privato per connettersi al database, questa opzione deve essere attivata.
    Nome host

    Immettere l'host per il servizio dati. Non utilizzare il prefisso https://. Ad esempio: example.com.

    Porta Porta che consente le connessioni client al database.
    Identificativo servizio

    Procedere in uno dei seguenti modi:

    • Selezionare SID e immettere l'identificativo di sistema Oracle dell'istanza del database.

    • Selezionare Nome servizio e immettere il nome del servizio per il database.

    Endpoint privato Questa opzione viene visualizzata solo se nell'istanza di Digital Assistant sono configurati endpoint privati.

    Se si sta eseguendo la connessione a un endpoint privato per accedere al servizio, passare all'endpoint privato passando alla posizione ON, quindi effettuare la selezione da una lista di endpoint privati associati all'istanza.

    L'uso di un endpoint privato consente di accedere a un servizio non accessibile direttamente dalla rete Internet pubblica. Per i dettagli, vedere Endpoint privato.

  8. Se il tipo di connessione è Connessione al wallet cloud, immettere i valori riportati di seguito, che è possibile ottenere dall'amministratore del database.

    Nome campo descrizione;
    File wallet Trovare e selezionare il file Cloud Wallet contenente le credenziali client oppure trascinarlo nel campo.
    Password wallet Immettere la password fornita al momento del download del file wallet. Tenere presente che per l'integrazione di Oracle Digital Assistant, una password del wallet deve contenere almeno 15 caratteri e non più di 30 caratteri e almeno un carattere maiuscolo, un carattere minuscolo, un carattere speciale e un numero. Inoltre, non può iniziare con una cifra.
    Servizio Selezionare il nome del servizio di database. Assicurarsi di selezionare un servizio con concorrenza servizio sufficientemente elevata in modo che le query non richiedano più di 30 secondi (a quel punto il timeout). I nomi dei servizi con i suffissi _tp e _tpurgent sono in genere le scelte più appropriate. Per ulteriori informazioni su queste considerazioni, consulta la sezione relativa ai nomi dei servizi di database per Autonomous Database e alla concorrenza dei servizi.
    Endpoint privato Questa opzione viene visualizzata solo se nell'istanza di Digital Assistant sono configurati endpoint privati.

    Se si sta eseguendo la connessione a un endpoint privato per accedere al servizio, passare all'endpoint privato passando alla posizione ON, quindi effettuare la selezione da una lista di endpoint privati associati all'istanza.

    L'uso di un endpoint privato consente di accedere a un servizio non accessibile direttamente dalla rete Internet pubblica. Per i dettagli, vedere Endpoint privato.

  9. Nella pagina Proprietà avanzate, se è necessario un certificato CA privato per connettersi al database, passare alla posizione ON Usa attendibilità privata e compilare il resto dei campi obbligatori.
    Nome campo descrizione;
    Usa trust privato Se si utilizza un certificato CA privato per connettersi al database, passare alla posizione ON. Questa opzione è abilitata solo se nella pagina Dettagli connessione è stato selezionato Usa TLS.
    Risorsa certificati Selezionare Self Managed.
    Scegliere un file PEM e Incolla testo PEM Selezionare una di queste opzioni per fornire il certificato.
  10. Fare clic su Aggiungi servizio.

    Ora è possibile importare lo schema di database in una competenza per creare entità di query che consentono agli utenti di eseguire query sul database utilizzando il linguaggio naturale.

Espressioni per richieste di risarcimento profilo OICD

Se si dispone di una connessione a un servizio dati con accesso basato su ruolo e si è selezionato Personalizzato come tipo di identificativo utente, è necessario fornire un'espressione FreeMarker a una variabile di profilo utente che rappresenta l'identificativo dell'utente finale, come richiesta OIDC (OpenID Connect) standard o personalizzata. Di seguito ne vengono riportati alcuni esempi.

  • ${userProfile.MyAuthService1.value.sub}
  • ${userProfile.MyAuthService1.value["http://acme.com/custom_identifier"]}

Per ulteriori informazioni sul funzionamento delle richieste di profilo in OIDC e su alcuni reclami di esempio, vedere le risorse riportate di seguito.

MySQL Servizi di dati

  1. In Digital Assistant, fare clic su icona menu laterale per aprire il menu laterale, fare clic su Impostazioni, su Servizi aggiuntivi e sulla scheda Dati.

  2. Fare clic su + Aggiungi servizio.

  3. Nella finestra di dialogo Nuovo servizio dati fornire le informazioni di base riportate di seguito.

    Nome campo descrizione;
    Tipo di database Selezionare MySQL.
    Nome Un nome univoco per il servizio.
    Descrizione servizio dati Descrizione facoltativa dell'integrazione del servizio dati, ad esempio la descrizione del database o lo scopo.
    Tipo di autenticazione L'amministratore del database dirà se selezionare Predefinito, Kerberos o OS.
    Nome utente Chiedere all'amministratore del database il nome utente e la password che consentono di accedere alle tabelle necessarie agli sviluppatori di skill per creare le entità composte per la competenza della finestra di dialogo SQL, come descritto in Crea entità query per modellare il servizio dati.
    Password Password dell'utente. Per l'integrazione con Oracle Digital Assistant, una password deve contenere almeno 14 caratteri e non più di 30 caratteri e almeno un carattere maiuscolo, un carattere minuscolo e un numero. Inoltre, non può iniziare con una cifra.
  4. Fare clic su Continua per configurare i dettagli di connessione elencati nella tabella riportata di seguito.

    Nome campo descrizione;
    Usa TLS Spostare questo switch sulla posizione ON se si desidera utilizzare TLS (Transport Layer Security) per proteggere la connessione.
    Nota

    Se si utilizza un certificato CA privato per connettersi al database, questa opzione deve essere attivata.
    Nome host

    Immettere l'host per il servizio dati. Non utilizzare il prefisso https://. Ad esempio: example.com.

    Porta Porta che consente le connessioni client al database.
    Database

    il nome del database;.

    Endpoint privato Questa opzione viene visualizzata solo se nell'istanza di Digital Assistant sono configurati endpoint privati.

    Se si sta eseguendo la connessione a un endpoint privato per accedere al servizio, passare all'endpoint privato passando alla posizione ON, quindi effettuare la selezione da una lista di endpoint privati associati all'istanza.

    L'uso di un endpoint privato consente di accedere a un servizio non accessibile direttamente dalla rete Internet pubblica. Per i dettagli, vedere Endpoint privato.

  5. Nella pagina Proprietà avanzate, se è necessario un certificato CA privato per connettersi al database, passare alla posizione ON Usa attendibilità privata e compilare il resto dei campi obbligatori.
    Nome campo descrizione;
    Usa trust privato Se si utilizza un certificato CA privato per connettersi al database, passare alla posizione ON. Questa opzione è abilitata solo se nella pagina Dettagli connessione è stato selezionato Usa TLS.
    Risorsa certificati Selezionare Self Managed.
    Scegliere un file PEM e Incolla testo PEM Selezionare una di queste opzioni per fornire il certificato.
  6. Fare clic su Aggiungi servizio.

    Ora è possibile importare lo schema di database in una competenza per creare entità di query che consentono agli utenti di eseguire query sul database utilizzando il linguaggio naturale.

Crea abilità finestra di dialogo SQL

Per creare uno skill della finestra di dialogo SQL, è sufficiente creare uno skill con la modalità Dialog impostata su Visuale.

Creare entità di query per modellare il servizio dati

Per abilitare le query del servizio dati in una competenza della finestra di dialogo SQL, è possibile importare informazioni sul modello fisico di un servizio dati (le tabelle o le viste e le relative colonne) per creare un modello logico di base. Durante l'importazione, la competenza aggiunge entità query al modello logico, in cui ogni entità query rappresenta una tabella fisica.

Nota

Una competenza non può avere più di 50 entità e attributi di query. Ad esempio, è possibile avere 5 entità di query combinate con 45 attributi.

Quando si forma lo skill, utilizza le informazioni delle entità di query per creare un modello per il parser del linguaggio naturale, che consente di tradurre le espressioni utente in OMRQL. OMRQL è un linguaggio di query simile a SQL, ma basato su modelli di oggetti che, in questo caso, sono le entità di query.

Prima di iniziare, è necessario eseguire le operazioni riportate di seguito.

  • Uno skill creato utilizzando la modalità Visuale.

  • Integrazione del servizio dati per la connessione al servizio dati, come descritto nella sezione Connetti al servizio dati.

Per creare entità di query per le tabelle desiderate nel servizio dati:

  1. Nella pagina Entità fare clic su Altro, quindi selezionare Importa da servizio dati.

    Viene visualizzata la finestra di dialogo Importa entità query.

  2. Selezionare il servizio dati, quindi selezionare le tabelle e gli attributi che si desidera utilizzare nello skill.

  3. Fare clic su Importa.

    Lo skill aggiunge entità di query per le tabelle selezionate. Imposta i nomi principali di entità e attributi in base ai nomi canonici. Ad esempio, se il nome canonico è "invoice_num", il nome principale sarà "num fattura".

  4. Per ogni entità di query aggiunta, selezionare l'entità, fare clic sulla scheda Configurazione e verificare che la chiave primaria sia impostata nella sezione Mapping backend.

A questo punto, è possibile eseguire il test delle query utilizzando i nomi principali delle entità e degli attributi, ad esempio "Mostra fatture il cui numero di fattura è 12345". Prima, tuttavia, è necessario fare clic su icona treno con badge, quindi, al termine, è possibile fare clic su Test query per provare le espressioni oppure fare clic su Anteprima per eseguire il test nel tester della conversazione.

Poiché si sta utilizzando una competenza della finestra di dialogo SQL minimo, è possibile eseguire l'addestramento con Trainer Ht o Trainer Tm. Tuttavia, dopo aver aggiunto suggerimenti di completamento automatico, dati di instradamento e dati di formazione personalizzati, Trainer Tm produce risultati più accurati.

Il passo successivo consiste nell'insegnare allo skill come gli utenti finali fanno riferimento alle entità e agli attributi. Vedere Formazione dell'abilità per convertire gli usi del linguaggio naturale in SQL.

Addestrare la competenza per convertire gli argomenti del linguaggio naturale in SQL

In qualità di formatore AI, il tuo compito è quello di consentire al parser di linguaggio naturale di tradurre espressioni in linguaggio naturale come "quante fatture hanno una data di scadenza precedente al 12/15/22" in una query OMRQL per il recupero della risposta dall'origine dati sottostante (il modello fisico). Lo si fa costruendo un modello logico intuitivo dei dati che riflette da vicino il linguaggio naturale.

Dopo la creazione del modello logico mediante l'importazione dall'origine dati, è possibile utilizzare i nomi principali, i sinonimi, gli elenchi di valori e le espressioni per consentire al parser del linguaggio naturale dello skill di associare le frasi in linguaggio naturale alle tabelle e alle colonne del modello fisico.

  • Per insegnare alla competenza i diversi modi in cui le persone fanno riferimento agli oggetti, è necessario aggiungere nomi e sinonimi primari come descritto in Fornire dati di formazione mediante nomi e sinonimi. Ad esempio, si potrebbe desiderare di insegnare allo skill che le persone usano "numero fattura" per fare riferimento alla colonna invoice_num e si potrebbe anche voler aggiungere "numero fattura" e "numero riferimento" come sinonimi.

  • Per facilitare l'identificazione dei valori degli attributi in un'espressione, è necessario creare elenchi di valori di esempio e associarli agli attributi come descritto in Fornire dati di formazione mediante elenchi di valori. Ad esempio, è possibile creare un elenco di valori contenente gli stati di pagamento effettivi e associare l'elenco all'attributo payment status della fattura.

  • Per facilitare l'identificazione dei valori degli attributi in base ai pattern, è possibile creare entità di espressione regolare e associarle agli attributi come descritto in Fornire dati di formazione mediante espressioni regolari. Ad esempio, è possibile creare un'entità di espressione regolare con l'espressione (\\d{1, 2}|(0|1)\\d{2}|2[0-4]\\d|25[0-5]) e associarla all'attributo ip_address.

  • Quando lo skill non è in grado di tradurre correttamente un'espressione in OMRQL, è possibile aggiungere un mapping enunciato-to-OMRQL al set di dati dell'entità query come descritto in Fornire dati di addestramento mediante valori e Test e riparazione. È inoltre possibile aggiungere espressioni per consentire allo skill di sapere quando instradare un'espressione al flusso che la elabora come esecuzione SQL (ovvero, si traduce in OMRQL e quindi invia una query SQL all'origine dati).

Fornire dati di formazione tramite nomi e sinonimi

Per aiutare un SQL Dialogs ad associare le frasi in linguaggio naturale alla struttura di dati sottostante (modello fisico), inizia prendendo le espressioni identificate che l'abilità deve gestire (il corpus di addestramento) e analizzandole per scoprire i diversi modi in cui gli utenti finali fanno riferimento alle entità e agli attributi.

Per esempio, supponete di avere queste espressioni nel vostro corpo di addestramento:

  • Mostrami le fatture con saldi insoluti maggiori di zero.

  • Qual è l'importo dovuto per il riferimento 12656?

Qui, si vede che le persone usano "saldo in sospeso" e "importo dovuto" per fare riferimento alla colonna amount_remaining. Vedi anche che il "riferimento" è un modo in cui le persone si riferiscono a invoice_num.

Oltre al corpus di addestramento, potresti anche voler raccogliere le espressioni dai tuoi utenti target per ottenere più frasi e analizzarle.

Dopo aver compilato l'elenco dei modi in cui le persone fanno riferimento alle entità e agli attributi, selezionare il termine che si desidera utilizzare per il nome principale di ogni entità e attributo. Devono essere nomi più vicini agli usi più comuni. Quando scegli il nome, considera che il modello NLP predefinito non comprenderà probabilmente le relazioni specifiche del dominio. Ad esempio, non capirà automaticamente che il numero fattura e il riferimento fanno riferimento alla stessa cosa. Poiché il numero fattura è comunemente utilizzato e si avvicina anche ad altri termini comunemente utilizzati, ad esempio n. fattura e numero fattura, è necessario impostarlo come nome principale.

Tratta il resto dei termini come sinonimi. Nell'esempio precedente, è possibile aggiungere riferimento, n. fattura e numero bill all'elenco di sinonimi.

Si noti che il nome principale è quello predefinito per le intestazioni e le etichette delle colonne dei risultati, ma è possibile modificarlo nella scheda Presentazione.

L'elenco consente di creare i dati di formazione nella pagina Entità.

  • Per impostare il nome principale e i sinonimi dell'entità, aprire la scheda Configurazione dell'entità ed espandere Lingua naturale.

  • Per impostare il nome principale e i sinonimi dell'attributo, aprire la scheda Lingua naturale dell'attributo.

Nota

Quando si elaborano espressioni, il parser del linguaggio naturale non prende in considerazione i nomi canonici del modello fisico, ovvero non esamina i nomi delle tabelle e delle colonne. Utilizza solo i mapping del linguaggio naturale definiti mediante nomi e sinonimi (il modello logico).

Fornisci dati di formazione tramite elenchi di valori

È possibile migliorare l'accuratezza del parser del linguaggio naturale associando gli attributi a elenchi di valori o entità dinamiche. Ciò consente al parser di identificare un attributo in base ai relativi valori noti. Utilizzare Entità di riferimento nella scheda Informazioni generali dell'attributo per associare l'attributo ai valori dell'entità di riferimento. Per le entità dell'elenco di valori, è possibile creare automaticamente l'entità, importare i valori del servizio dati e associarla come entità di riferimento in un unico passo.

Quando si decide se utilizzare un elenco di valori o un'entità dinamica per memorizzare i valori, valutare se l'entità è aperta o chiusa.

  • Una lista aperta è infinita o dinamica (o entrambe). Per gli elenchi aperti, considerare la possibilità di creare e gestire un'entità dinamica anziché un elenco di valori. Se si sceglie di utilizzare un elenco di valori, è necessario curarlo per assicurarsi che contenga almeno i valori utilizzati più di frequente. Ad esempio, per un elenco di fornitori che molto probabilmente cresce nel tempo, è necessario che l'elenco includa i fornitori utilizzati più di frequente. Questo perché le query relative a un fornitore senza utilizzare la parola "fornitore", ad esempio "mostra il flag di riepilogo per Seven Corporation", non corrispondono se tale valore non è presente nell'elenco di valori. In questo modo si aumenta la frequenza delle risoluzioni corrette includendo almeno i valori utilizzati più di frequente.

  • Un elenco chiuso è un elenco finito statico. Ideale per le entità dell'elenco di valori.

Per gli elenchi di valori e le entità dinamiche, aggiungere versioni di sinonimi singolari e plurali (se applicabile) per ogni valore di entità per indicare i modi in cui gli utenti finali faranno riferimento al valore.

I sinonimi sono particolarmente importanti quando l'elenco contiene valori che in genere gli utenti finali non utilizzano. Prendiamo, ad esempio, questo elenco di stati di pagamento validi. Gli utenti saranno molto più propensi a usare parole come pagate, non pagate e parzialmente pagate che usare Y, N e P. L'aggiunta di queste parole come sinonimi consente di assicurare che l'NLP riconosca che gli utenti fanno riferimento all'attributo dello stato del pagamento.

Valori stato pagamento Sinonimo
c pagato
S non pagato, non pagato
P parziale, parzialmente pagato, non pagato

Quando un termine descrive più valori di entità, aggiungere tale termine come sinonimo a ciascuno di essi. Ad esempio, sia N che P indicano che la fattura non è stata pagata. Se si aggiunge "non pagato" come sinonimo per entrambi gli stati, "Mostra fatture non pagate" recupererà le fatture con un valore payment_status di N o P.

Per le entità dinamiche, creare l'entità e quindi utilizzare Entità di riferimento nella scheda Informazioni generali dell'attributo per associarlo all'elenco.

Per gli elenchi di valori, è possibile creare un elenco di valori dal servizio dati e associarlo a un'entità effettuando le operazioni riportate di seguito.

  1. Nella pagina Entità, modificare l'attributo e andare alla scheda Informazioni generali.

  2. Selezionare Entità nell'elenco a discesa Tipo.

  3. Fare clic su Se l'entità desiderata non esiste, è possibile generare un'entità elenco di valori in base al mapping in background facendo clic qui. L'elenco di valori viene creato e popolato dal servizio dati e l'entità di riferimento punta al nuovo elenco di valori.

  4. (Facoltativo) Per aumentare le possibilità che l'input dell'utente corrisponda a un valore dell'elenco, aprire l'entità dell'elenco di valori e attivare Corrispondenza parziale. Altrimenti utilizza una corrispondenza rigorosa, il che significa che l'input dell'utente deve corrispondere esattamente ai valori e ai sinonimi. Ad esempio, "auto" non corrisponde a "auto".

    La corrispondenza parziale utilizza l'origine delle parole per identificare gli attributi dalla query. Ad esempio, "pound" corrisponde a "pounds", "hold" corrisponde a "on hold", "necessarie approvazioni" corrisponde a "necessarie approvazioni" e "rent-lease" corrisponde a "rent lease".

    Si noti che la corrispondenza non esatta non funziona per "_" e "?". Inoltre, la corrispondenza parziale non funziona. Ad esempio, "Seven" non corrisponde a "Seven Corporation". Se è necessario abilitare la corrispondenza per tali stringhe, aggiungerle all'elenco dei sinonimi.

  5. Fare clic su Applica per salvare le modifiche.

Nota

Se un valore qualsiasi nella tabella fisica del servizio dati termina con un punto, un punto interrogativo o spazi, tali caratteri non vengono inclusi nell'elenco di valori perché non sono consentiti per i nomi canonici.

Fornire dati di formazione tramite espressioni regolari

Se i valori di un attributo devono corrispondere a un determinato pattern, è possibile aiutare il parser del linguaggio naturale a identificare i valori di tale attributo associando l'attributo a un'entità espressione regolare.

Ciò può essere utile quando tutti i valori devono seguire un pattern specifico e il set di valori validi è troppo grande per un elenco di valori o è infinito. Ad esempio, per un attributo ip_address è possibile associarlo a un'entità di espressione regolare denominata IpAddress, che dispone dell'espressione regolare (\\d{1,2}|(0|1)\\d{2}|2[0-4]\\d|25[0-5]).

Tenere presente che, in modo simile agli elenchi di valori, se è possibile associare più attributi nel modello alla stessa espressione regolare, gli utenti dovranno fornire un contesto sufficiente nella query per distinguere tra i due (o più) attributi.

Per associare un attributo a un'espressione regolare:

  1. Nella pagina Entità, fare clic su + Aggiungi entità, selezionare Espressione regolare nell'elenco a discesa Tipo, immettere l'espressione regolare e fare clic su Crea.

    Assicurarsi di creare l'espressione regolare in modo da impedire al parser di linguaggio naturale di associare valori non correlati all'attributo.

  2. Selezionare l'entità con l'attributo che si desidera associare all'espressione regolare, modificare l'attributo e andare alla scheda Informazioni generali.

  3. Selezionare Entità nell'elenco a discesa Tipo.

  4. Selezionare l'entità dell'espressione regolare nell'elenco a discesa Entità di riferimento.

  5. Fare clic su Applica per salvare le modifiche.

Fornire i dati di formazione attraverso gli argomenti

Come allenatore di intelligenza artificiale, incontrerai espressioni di linguaggi naturali che l'abilità non può tradurre in OMRQL. Ad esempio, il modello potrebbe non essere in grado di gestire sinonimi specifici del dominio che non sembrano essere strettamente correlati al nome primario. Un altro esempio è quando il modello non è in grado di distinguere tra due entità simili. Quando ciò accade, è possibile utilizzare i dati di addestramento per insegnare all'abilità come analizzare correttamente l'espressione in OMRQL.

L'aggiunta ai dati di formazione viene spesso definita formazione personalizzata. La formazione personalizzata consente di insegnare al modello ad associare parole e frasi ad attributi, entità e parole chiave OMRQL nel contesto di un'espressione completa mappando l'espressione a OMRQL.

Per ogni scenario che si sta risolvendo, iniziare con 20 espressioni e aggiungere di più se necessario. Poiché troppi esempi potrebbero indurre il modello a prevedere gli attributi e gli operatori, è necessario concentrarsi su un insieme più piccolo di espressioni diverse piuttosto che su un insieme grande di espressioni simili e di qualità inferiore. Si noti che esiste un limite di 120 espressioni per abilità.

Tutti i valori nell'istruzione OMRQL devono corrispondere esattamente al valore e al formato del database. Prendiamo, per esempio, la frase "chi è il dipendente il cui nome è Jones". Se i valori del database per l'attributo nome sono tutte lettere maiuscole, il valore del nome deve essere anche tutte lettere maiuscole. Questo è "SELECT * FROM Emp WHERE name = 'JONES'".

Quando l'espressione che si sta mappando utilizza un sinonimo per il valore effettivo del database, è necessario definire tale sinonimo per il valore in un elenco di valori e OMRQL deve utilizzare il valore effettivo del database. Ad esempio, se l'espressione è "mostrare il reparto la cui posizione è la grande mela", allora "big apple" deve essere definito nell'elenco di valori dept_loc come sinonimo del valore "NEW YORK" e l'OMRQL deve essere "SELECT * FROM Dept WHERE loc = 'NEW YORK'".

È possibile aggiungere espressioni che contengono date assolute, ad esempio "fatture in scadenza il 5 gennaio 2022", ma non utilizzare espressioni con date o date relative senza l'anno. Ad esempio, se l'espressione è "fatture in scadenza oggi", la data odierna sarà non modificabile in OMRQL come SELECT * FROM fatture WHERE due_date = '2022-01-01'. Inoltre, se si utilizza una data relativa come "oggi", è possibile che venga visualizzato un errore che indica che le date relative non sono supportate.

Di seguito sono riportate alcune best practice per le espressioni di formazione personalizzate.

  • Salvare il numero di espressioni: alcuni scenari più complessi potrebbero richiedere più espressioni rispetto a quelli semplici, ma cercare di bilanciare il numero di espressioni per scenario.

  • Salvare la formazione di attributi ed entità simili: se si dispone di due attributi simili ed è necessario fornire dati di formazione personalizzati per uno di essi, è necessario fornire anche la stessa quantità di dati di formazione per l'altro. Quando i dati di addestramento si concentrano solo su uno degli attributi simili, il modello potrebbe prevedere l'attributo rispetto alla sua controparte. Lo stesso vale per entità simili. Ad esempio, la valuta di pagamento e la valuta della fattura sono attributi simili. Se la valuta di pagamento è sovra-rappresentata nei dati di formazione, il modello potrebbe prevedere la valuta di pagamento anche quando l'espressione richiede la valuta della fattura.

    Quando è necessario insegnare al modello come distinguere tra due attributi simili o strettamente correlati, bilanciare la ponderazione dell'importanza fornendo metà delle espressioni per un attributo e metà delle espressioni per l'altro.

    Variare le espressioni che si riferiscono a questi attributi simili. Ad esempio, qui ci sono coppie di espressioni contrastanti per aiutare il modello a distinguere tra amount_remaining e amount_paid:

    • indica l'importo rimanente per le fatture approvate
    • mostra l'importo pagato per le fatture approvate
    • visualizza l'importo totale da pagare a AAD del fornitore
    • calcolare l'importo totale pagato all'AD del fornitore
    • qual è l'importo dovuto sulle fatture al fornitore AAD
    • elencare l'importo pagato sulle fatture per l'AD del fornitore
  • Salvare la formazione di valori che corrispondono a nomi o sinonimi principali: ad esempio, si supponga che il modello disponga di un attributo manager e che "manager" sia anche un valore per l'attributo dipendente job. Se si desidera aggiungere "Quanti manager" ai dati di formazione, è necessario bilanciare questi dati di formazione con espressioni che utilizzano l'attributo manager, ad esempio "Chi è il manager del dipendente Adam Smith", nonché espressioni che utilizzano il manager job, ad esempio "Mostra tutti i manager". In questo modo, il modello può imparare a distinguere tra i due usi. Se non si includono esempi per entrambi i tipi di utilizzo, lo skill potrebbe prevedere più di un utilizzo rispetto all'altro.

  • Diversificare le frasi: le procedure ottimali per la formulazione di frasi diverse per i dati personalizzati sono simili a quelle per le espressioni dell'intento:

    • Utilizzare frasi complete.

    • Utilizzare verbi diversi. Ad esempio: visualizzare, elencare, mostrare, dire e vedere.

    • Utilizzare vari sinonimi e parafrasi oltre al nome dell'entità o dell'attributo.

    • Utilizzare pronomi diversi. Per esempio: mostrami, possiamo vedere, dirci, voglio.

    • Varia la struttura della frase. Ad esempio, posizionare il valore dell'attributo vicino all'inizio, al centro e alla fine delle frasi.

    • Se si dispone di espressioni con un'aggregazione, ad esempio AVG, aggiungere anche espressioni con altri operatori.

    • Se possibile, utilizzare clausole diverse, ad esempio Raggruppa per e dove le clausole con condizioni AND e OR.

  • Diversificare i valori: quando si utilizzano più valori nelle espressioni dello scenario, il modello è in grado di riconoscere valori diversi. Includere valori con lunghezze di parola diverse. Includere alcuni valori con caratteri speciali come '/' e "-". Includere alcuni valori con parole chiave speciali come 'and'.

  • Includere una combinazione di valori noti e sconosciuti. Per gli attributi degli elenchi di valori, utilizzare un set rappresentativo di valori di attributo (ma non tutti) per addestrare le corrispondenze degli elenchi di valori come segnali importanti. Inoltre, per gli elenchi di valori che non sono elenchi chiusi, includere i valori che non sono nell'elenco di valori per insegnargli anche ad associare determinati infrasamenti all'attributo.

Per aggiungere un'espressione mappata ai dati di addestramento:

  1. Se il pulsante Formazione è associato a un badge rosso, fare clic su icona treno con badge e addestrare utilizzando Trainer Tm.

  2. Nella pagina Entità, andare alla scheda Set di dati e fare clic su Entità query.

  3. Fare clic sulla scheda Dati formazione.

  4. Fare clic su Aggiungi disposizione.

    Viene visualizzata la finestra di dialogo Crea uso.

  5. Immettere l'espressione e fare clic su Continue.

    Nella finestra di dialogo viene visualizzata la query OMRQL per l'espressione. Se non è possibile tradurre l'espressione nella query, la query sarà vuota.

    Si noti che se lo skill non è stato addestrato, non è possibile tradurre l'espressione in una query OMRQL.

  6. Rivedere la query e correggerla se è errata.

    Per le parole chiave e gli esempi di OMRQL, vedere Riferimento OMMRQL.

  7. Fare clic su Fine per aggiungere l'espressione mappata ai dati di addestramento.

Fornire suggerimenti di query per gli utenti della finestra di dialogo SQL

È possibile aiutare gli utenti a conoscere le query di database che possono eseguire fornendo suggerimenti di completamento automatico. Questi suggerimenti forniscono suggerimenti su quali tipi di domande il modello logico è in grado di rispondere. Le espressioni aiutano anche l'abilità con il routing.

Per creare suggerimenti di completamento automatico per una competenza delle finestre di dialogo SQL, effettuare le operazioni riportate di seguito.

  1. Se il pulsante Formazione è associato a un badge rosso, fare clic su icona treno con badge e formare utilizzando Trainer TM.

  2. Nella pagina Entità, andare alla scheda Set di dati e fare clic su Entità query.

  3. Fare clic sulla scheda Suggerimenti completamento automatico.

  4. Fare clic su Aggiungi disposizione.

    Viene visualizzata la finestra di dialogo Crea uso.

  5. Digitare l'espressione, fare clic al di fuori della casella di testo, quindi fare clic su Continua.

    Nella finestra di dialogo viene visualizzata la query OMRQL per l'espressione. Se non è possibile tradurre l'espressione in una query, la query sarà vuota.

    Si noti che se lo skill non è stato addestrato, non è possibile tradurre l'espressione in una query OMRQL.

  6. Rivedere la query e correggerla se è errata.

    Per le parole chiave e gli esempi di OMRQL, vedere Riferimento OMMRQL.

  7. Fare clic su Fine per aggiungere l'espressione mappata ai suggerimenti di completamento automatico.

Instrada gli argomenti alla conversazione delle finestre di dialogo SQL

Se la tua abilità ha intenti o si trova in un DA, allora, proprio come con gli intenti, la tua abilità ha bisogno di espressioni per aiutarlo a instradare le query SQL alla conversazione delle finestre di dialogo SQL. Il meccanismo di instradamento utilizza i suggerimenti di completamento automatico, i dati di addestramento, le espressioni di instradamento generate e le espressioni di instradamento create a mano per imparare a riconoscere le query SQL. È possibile visualizzare ogni tipo di espressione nelle schede separate della pagina Data set entità query.

Nella scheda Dati di instradamento generati è possibile generare rapidamente 100 espressioni di instradamento basate sul modello logico, come descritto in Genera dati di instradamento finestre di dialogo SQL. È quindi possibile rivederli, modificarli se necessario e approvare o annullare l'approvazione. I dati approvati vengono aggiunti alla scheda Dati instradamento combinato e sono contrassegnati come sintetici oppure, se modificati, come raffinati.

Nella scheda Dati instradamento combinato sono elencati tutti i tipi di set di dati. È inoltre possibile aggiungere manualmente i dati di instradamento creati a mano come descritto in Dati di instradamento delle finestre di dialogo SQL Handcraft.

Si noti che il numero totale di espressioni autocomplete, di addestramento, generate e realizzate a mano non può superare 10.000. Se si supera tale limite, verrà visualizzato il messaggio "È stato raggiunto il numero massimo di esempi di corpus per questo bot (10000)." C'è anche un limite di 120 espressioni di allenamento.

Per informazioni sui suggerimenti di completamento automatico e sui dati di addestramento, vedere Fornire suggerimenti di query per gli utenti della finestra di dialogo SQL e Fornire dati di addestramento mediante gli argomenti.

Suggerimento

Ogni entità dispone di una scheda del set di dati in cui è possibile visualizzare le espressioni che utilizzano attributi da tale entità specifica.

Genera dati instradamento finestre di dialogo SQL

Se la tua abilità ha intenti o si trova in un DA, allora, proprio come con gli intenti, la tua abilità ha bisogno di espressioni per aiutarlo a instradare le query SQL alla conversazione delle finestre di dialogo SQL. Oltre ai suggerimenti di completamento automatico, ai dati di addestramento e ai dati di instradamento creati a mano, il meccanismo di instradamento utilizza le espressioni di instradamento generate create dalla scheda Dati di instradamento generati nel set di dati entità query. Le espressioni generate rappresentano un'ampia copertura di domande su tutte le entità di query nel modello logico.

Per generare i dati di instradamento:

  1. Se il pulsante Formazione è associato a un badge rosso, fare clic su icona treno con badge e formare utilizzando Trainer TM.

  2. Nella pagina Entità, andare alla scheda Set di dati e fare clic su Entità query.

  3. Fare clic sulla scheda Dati instradamento generato.

  4. Fare clic su Genera.

    Viene visualizzata la finestra di dialogo Genera dati di instradamento.

  5. Nel campo Seleziona entità selezionare Tutto. La prima volta che si generano i dati di instradamento, è necessario generare i dati per tutte le entità. Dopo aver generato il set iniziale, è possibile tornare e generare per entità specifiche se necessario.

  6. Fare clic su Genera.

    L'abilità genera 100 espressioni, che riflettono le domande a cui il modello logico può rispondere.



  7. Rivedere i dati generati e modificare quelli che devono essere perfezionati.

    Suggerimento

    L'espressione non è modificabile se è stata approvata. Se si desidera modificare un'espressione approvata, annullarne l'approvazione, modificarla e quindi approvarla di nuovo.
  8. Eliminare le voci se necessario e approvare il resto.

    Le espressioni approvate vengono aggiunte ai dati di routing combinati. Se si modifica un'espressione, il relativo sottotipo di instradamento nella scheda Dati di instradamento combinato è Raffinato. In caso contrario, è Sintetico.

Dati instradamento finestre di dialogo SQL artigianali

Se esistono query SQL valide che il DA o lo skill non instrada alla conversazione SQL, è necessario aggiungere tali espressioni ai dati di instradamento dalla scheda Dati instradamento combinato della pagina Data set entità query.

Per aggiungere dati di instradamento creati a mano:

  1. Se il pulsante Formazione è associato a un badge rosso, fare clic su icona treno con badge e formare utilizzando Trainer TM.

  2. Nella pagina Entità, andare alla scheda Set di dati e fare clic su Entità query.

  3. Fare clic sulla scheda Dati instradamento combinato.

  4. Fare clic su Aggiungi disposizione.

    Viene visualizzata la finestra di dialogo Crea disposizione.

  5. Digitare l'espressione e quindi fare clic al di fuori della casella di testo.

  6. Fare clic su Continua.

  7. Rivedere la query OMRQL per verificare che i relativi risultati rispondano alla query. In caso contrario, correggere la query, quindi fare clic su Reinterpreta. Per le parole chiave di query OMRQL, vedere Riferimento OMMRQL.

  8. Fare clic su Fine.

    L'espressione viene aggiunta ai dati con il sottotipo di instradamento impostato su Handcrafted.

Configura presentazione di entità e attributi

Di seguito sono riportate le operazioni che è possibile eseguire per controllare quando e come le righe e gli attributi dell'entità vengono visualizzati nei risultati.

In genere, l'esperto di database e il progettista di conversazioni lavorano insieme su questo task, poiché uno ha esperienza nello schema di database e l'altro ha familiarità con le aspettative degli utenti.

È possibile eseguire il test delle modifiche facendo clic su Anteprima per aprire il tester di conversazione e immettere un'espressione per recuperare i dati appropriati.

Suggerimento

La maggior parte delle modifiche apportate richiederà la riqualificazione del parser di linguaggio naturale (NLP). Quando si eseguono i test delle modifiche, se l'icona Formazione è contrassegnata da un badge rosso (icona treno con badge), sarà necessario prima fare clic su Formazione e completare il processo di formazione.

Configura se visualizzare form o tabella

Lo skill può visualizzare i risultati dell'entità sotto forma di tabella, modulo o tabella (in cui è possibile espandere una riga per visualizzare ulteriori dettagli in modalità modulo). Utilizzare i campi di conversione del layout nella scheda Presentazione dell'entità per configurare quando i risultati devono essere visualizzati in ciascuna modalità.

Per impostazione predefinita, lo skill visualizza ogni riga della risposta come form a meno che il numero di righe non superi una soglia specificata per Utilizzare il layout del form per questo numero di righe o meno. Di seguito sono riportati alcuni esempi di risposta in modalità modulo e tabella.


Descrizione di sql-results-form.png segue
Descrizione dell'immagine sql-results-form.png


Descrizione di sql-results-table.png segue
Descrizione dell'immagine sql-results-table.png

Se il numero di colonne supera una soglia, lo skill visualizza un form tabella. Con un form tabella vengono visualizzati solo il numero specificato di colonne e l'utente può espandere il form per visualizzare gli altri attributi. Per specificare la soglia, utilizzare Passa al layout form tabella quando il numero di colonne supera questo numero. Di seguito è riportato un esempio di layout di form tabella per la soglia di colonna 2.


Segue la descrizione di sql-results-table-form.png
Descrizione dell'immagine sql-results-table-form.png

Mostra una o due sezioni orizzontali nel form

Per impostazione predefinita, in modalità modulo, lo skill visualizza tutti gli attributi dei risultati uno sotto l'altro. Per salvare la stanza, è possibile impostare Numero di sezioni orizzontali nel layout del form su 2 per visualizzare due colonne di attributi.

Imposta il titolo per i risultati

Per impostazione predefinita, lo skill utilizza il nome dell'entità di query per il titolo dei risultati, ma è possibile utilizzare il nome visualizzato nella scheda Presentazione per impostare un titolo diverso.

Tenere presente che dopo aver impostato il nome visualizzato, non è possibile cancellare il campo.

Definire l'ordinamento predefinito di un'entità

È possibile specificare un criterio di ordinamento predefinito da utilizzare per lo skill ogni volta che l'espressione dell'utente non ne specifica uno. Per impostare l'impostazione predefinita, andare alla scheda Generale dell'entità, fare clic su Aggiungi ordine attributi, selezionare un attributo e selezionarne l'ordine (crescente o decrescente). È possibile continuare a fare clic su Aggiungi ordine attributi per aggiungere altri attributi al criterio di ordinamento.

Definisce gli attributi da includere se non specificati dall'argomento

Se l'espressione non nomina alcun attributo, è probabile che i risultati includano alcuni campi essenziali. Per specificare questi campi, è possibile utilizzare Attributi predefiniti nella scheda Presentazione dell'entità. Ad esempio, per un'entità invoices, è possibile visualizzare invoice_num, invoice_date e invoice_amount quando non viene assegnato alcun nome ad alcun attributo.

Tenere presente che non è possibile aggiungere attributi di tipo entità query all'elenco di attributi predefiniti.

Definire gli attributi da includere sempre nei risultati

Quando un'espressione identifica attributi specifici, è possibile che il risultato includa non solo gli attributi richiesti, ma anche un contesto. Ad esempio, se qualcuno inserisce "Mostra importi fattura", i dati non avranno senso se mostrano solo i valori invoice_amount e non un contesto identificativo come invoice_num. Utilizzare Attributi minimi nella scheda Presentazione dell'entità per identificare gli attributi minimi.

Impossibile aggiungere attributi di tipo entità query alla lista di attributi minimi.

Configura la dimensione della pagina dei risultati

Utilizzare il numero massimo di righe per pagina nella scheda Presentazione dell'entità per impostare il numero di righe da visualizzare contemporaneamente.

L'utente può fare clic sui pulsanti per visualizzare i risultati.

Pulsanti di aggiunta e collegamenti ai risultati

È possibile aggiungere pulsanti e collegamenti ai risultati di un'entità di query sia a livello globale che a livello di riga. In ogni riga viene visualizzata un'azione riga e sotto i risultati viene visualizzata un'azione globale.

Ad esempio, per un'entità dipendente è possibile aggiungere un'azione globale che si collega alla pagina di ricerca dei dipendenti dell'azienda. A livello di riga, è possibile aggiungere un'azione per una query di follow-up comune, ad esempio una query sul reparto del dipendente.

È possibile aggiungere azioni dalla scheda Presentazione dell'entità. Se si dispone di più azioni, è possibile indicare la sequenza di visualizzazione delle azioni. Per i tipi di azione QUERY, è necessario fornire una QUERY OMRQL. Per i tipi di azione URL, sarà necessario impostare l'URL.

Per le azioni di follow-up a livello di riga, è possibile utilizzare ${row.attributeName} per fare riferimento ai valori degli attributi di ogni riga. Ad esempio, select * from Emp WHERE dept.loc = "${row.loc}". In fase di esecuzione, il pulsante di ogni riga avrà un valore diverso per la query. Questa sintassi è disponibile solo per le azioni a livello di riga.

Facoltativamente, è possibile limitare quando viene visualizzata l'azione. Ad esempio, è possibile che si disponga di un'azione riga per visualizzare i riporti diretti di un dipendente, che deve essere visualizzata solo se la mansione del dipendente è Manager. A tale scopo, selezionare Espressione visibilità su Attiva e fornire un'espressione FreeMarker, ad esempio ${row.job = 'MANAGER'}.

Nota

Le azioni riga vengono visualizzate sotto forma di pulsanti o collegamenti in ogni riga di un layout di form o di form tabella. Tuttavia, non vengono visualizzati nei layout di tabella.

Aggiungi un attributo personalizzato

È possibile aggiungere attributi personalizzati per visualizzare informazioni aggiuntive, ad esempio valori derivati o calcolati.

  1. Nella scheda Attributi della pagina dell'entità, fare clic su + Aggiungi attributo e fornire un nome e un tipo canonico.

  2. Nella scheda Lingua naturale fornire un nome principale e, facoltativamente, aggiungere sinonimi.

  3. Nella scheda Mapping backend, selezionare Espressione SQL e aggiungere l'espressione.

Se l'espressione fa riferimento a una colonna, utilizzare il nome della colonna dal modello fisico (schema di database) e anteporre ${alias}. Ad esempio, per un'entità invoices è possibile aggiungere un attributo amount_to_pay con l'espressione ${alias}invoice_amount + ${alias}discount_taken dove:

  • invoice_amount e discount_taken sono nomi di colonna fisica esistenti nella tabella invoices.
  • La nuova colonna derivata amount_to_pay è la somma dei valori delle colonne fisiche invoice_amount e discount_taken.

È possibile utilizzare questa tabella per determinare il tipo da utilizzare per l'attributo:

Digita Quando utilizzare Esempi
Numerico I valori sono solo numerici e non sono limitati a un set list. ID dipendente numerico, importo fattura
Date Il valore è una data senza un'ora. Data di assunzione
Data/ora Il valore può avere sia una data che un'ora. Data e ora di partenza
Entità L'attributo è associato a un'entità elenco di valori. Tenere presente che se l'elenco di valori elenca tutti i valori validi (ovvero un elenco chiuso) e i valori vengono utilizzati raramente nelle espressioni in linguaggio naturale, è necessario aggiungere sinonimi per i valori nell'elenco. stato (chiuso), nomi fornitore (aperto)
Stringa Da utilizzare per il testo che può contenere numeri e caratteri in cui non ha senso associarsi a un elenco di valori. Numero fattura alfanumerico, descrizione prodotto
Entità query Utilizzare solo quando è necessario collegarsi a un'altra entità di query. Nessun esempio
Boolean Non utilizzare. Non applicabile

Configurazione dinamica della presentazione mediante gestori di eventi

Se si desidera che lo skill modifichi in modo dinamico il modo in cui lo skill presenta i risultati della query SQL, è possibile aggiungere gestori di eventi query dati a un package di componenti personalizzati, aggiungere il package allo skill come servizio di componenti personalizzati, quindi associare le entità ai relativi handler specifici dalle schede di presentazione dell'entità. Lo skill attiva l'evento query dati di un'entità quando l'entità query è la prima entità denominata nella clausola FROM (l'entità radice).

Ad esempio, è possibile aggiungere dinamicamente un conteggio di righe al testo dell'intestazione, aggiungere una riga alla tabella per visualizzare una somma o determinare quando mostrare o nascondere un attributo.

Per informazioni su come creare gestori di eventi query dati, vedere Scrittura di handler di eventi query SQL.

Definisci regole query

Di seguito viene descritto come utilizzare le impostazioni di un'entità nella pagina Entità per controllare i modi in cui gli utenti finali possono chiedere informazioni sui dati e come valutare i risultati.

È possibile eseguire il test delle modifiche facendo clic su Anteprima per aprire il tester di conversazione e immettere un'espressione per recuperare i dati appropriati.

Suggerimento

Alcune delle modifiche apportate richiederanno la riqualificazione del parser di linguaggio naturale (NLP). Quando si eseguono i test delle modifiche, se l'icona Formazione è contrassegnata da un badge rosso (icona treno con badge), sarà necessario prima fare clic su Formazione e completare il processo di formazione.
  • Identificare l'attributo da utilizzare per la misurazione o il confronto: se l'espressione chiede di confrontare gli elementi di entità con un numero o chiede di classificare le entità utilizzando un superlativo come il più grande o il meno, quale attributo misurabile, se presente, deve essere utilizzato dallo skill per eseguire il confronto? Si supponga, ad esempio, che gli utenti chiedano informazioni sul fornitore più elevato. È possibile che lo skill utilizzi l'attributo rating per i confronti. Per specificare l'attributo da utilizzare per la misurazione o il confronto, andare alla scheda Generale dell'entità e selezionare l'attributo dall'elenco a discesa Misura per. Se la classificazione è opposta all'ordine numerico, ad esempio 5 è migliore di 1, è inoltre necessario impostare Inverti confronto su true nella scheda Informazioni generali dell'attributo.

  • Specifica della modalità di confronto degli attributi misurabili: per impostazione predefinita, i valori degli attributi misurabili vengono confrontati utilizzando l'ordine numerico, dove 1 è minore di 5. Tuttavia, a volte è più appropriato invertire il confronto dove 1 è migliore di 5. Ad esempio, quando si esaminano i risultati di gara, i 5 momenti migliori sono i valori più bassi nei risultati. Per invertire i confronti per un attributo, impostare Inverti confronto su true nella relativa scheda Informazioni generali. Tenere presente che questa impostazione influisce anche sull'ordinamento dell'attributo.

  • Consenti corrispondenza parziale per stringhe: se si prevede che gli utenti tralascino spesso i caratteri o i valori iniziali o finali, ad esempio "manager" anziché "department manager", è consigliabile abilitare la corrispondenza parziale. Quando la corrispondenza parziale è attivata, la "clausola Where" SQL generata utilizza upper (<column-name>) LIKE UPPER(%<string>%) anziché = <string>. È possibile abilitare la corrispondenza parziale nella scheda Informazioni generali dell'attributo. Si noti che il funzionamento della corrispondenza parziale per gli attributi entità è diverso dal funzionamento della corrispondenza parziale per gli elenchi di valori.

  • Specificare la modalità di risoluzione di date e ore ambigue: per gli attributi di tipo data o data/ora, è possibile specificare se i valori ambigui, ad esempio "Mercoledì", devono essere corretti nel passato, nel futuro o nella data o ora più vicina. È possibile impostarlo utilizzando la preferenza temporale nella scheda Informazioni generali dell'attributo.

    AVVERTENZA:

    Tenere presente che l'impostazione della preferenza temporale sulla data o sull'ora più vicina funziona solo per l'input di date e ore fisse, ad esempio "Mercoledì". Se un utente immette un valore di durata, ad esempio "due giorni", la query non verrà risolta poiché il valore di durata è uguale sia per il passato che per il futuro. A meno che non si sia certi che un utente non immetterà mai un valore di durata, è necessario impostare solo la preferenza temporale su passata o futura.

    Suggerimento

    Se a volte un attributo può avere come valore predefinito il passato e talvolta il futuro a seconda del contesto, considerare la possibilità di creare attributi personalizzati con preferenze temporali diverse. Ad esempio, per un attributo due_date è possibile aggiungere un attributo due con una preferenza futura e un attributo overdue con una preferenza passata.

Abilita query in linguaggio naturale per colonne denormalizzate

Se si dispone di un attributo denormalizzato con un nome che utilizza un pattern per identificare gli attributi rappresentati dalla colonna, ad esempio PTD_LBR_CST, è possibile rendere l'attributo denormalizzato comprensibile al modello di linguaggio naturale mediante il mapping di un'entità normalizzata mediante l'uso di un mapping backend di espansione di colonna.

Ad esempio, si supponga di disporre di un'entità di query costToSales con gli attributi PTD_LBR_CST, QTD_LBR_CST, YTD_LBR_CST, PTD_SUB_CST, QTD_SUB_CST, YTD_SUB_CST.

Per consentire allo skill di associare query in linguaggio naturale a questi attributi, è necessario creare un'entità query costo contenente gli attributi di identificazione univoca, ad esempio project_num, oltre a periodo, tipo e costo. Gli attributi periodo e tipo sono di tipo entità e fanno riferimento agli elenchi di valori periodo (PTD, QTD, YTD) e tipo (LBR, SUB). Il mapping backend dell'attributo di costo è un'espansione di colonna con l'espressione "${period}_${type}_CST". Il passo finale consiste nell'aggiungere l'attributo di costo all'entità costToSales, che fa riferimento all'entità query Costo per collegare le due entità.

Quando la query è "Costi manodopera YTD personali", il mapping di espansione della colonna backend indica alla competenza di recuperare il valore dall'attributo YTD_LBR_CST, che si trova nell'entità costToSales (supponendo che siano impostati i nomi e i sinonimi principali necessari).

Test e riparazione

Durante la definizione e l'aggiunta di dati di addestramento alle entità e agli attributi mediante nomi, sinonimi, elenchi di valori e dati di addestramento nel set di dati delle entità di query, sarà necessario verificare l'efficacia dei dati di addestramento per consentire al parser di linguaggio naturale di tradurre le espressioni dell'utente finale in query SQL.

Suggerimento

Se l'icona Treno ha un distintivo rosso (icona treno con badge), sarà necessario fare clic su Formazione e completare il processo di formazione prima di poter testare le espressioni.

La pagina Entities dispone di un collegamento Test Query, che consente di aprire il tester di query per provare le espressioni del caso d'uso. Nel tester è possibile immettere il risultato del test ed esaminare la query OMRQL generata dallo skill.



Se il tester traduce l'espressione in una query, esaminare la query OMRQL per verificare che produca i risultati desiderati. Se la query OMRQL non è corretta, sarà necessario riparare la competenza utilizzando la correzione appropriata:

Suggerimento

Si consiglia di utilizzare Salva come caso di test per salvare alcune query valide nel tester batch, che è possibile utilizzare per assicurarsi che le modifiche apportate non influiscano negativamente su altre aree. Vedere Monitoraggio con test batch entità query.

Si noti che alcune espressioni potrebbero non essere tradotte correttamente a causa di limitazioni nella funzione Finestre di dialogo SQL. In alcuni casi è possibile risolvere queste limitazioni aggiungendo dati di formazione personalizzati. Vedere Risoluzione dei problemi delle query SQL.

Se il tester di query segnala che esistono dati di formazione insufficienti, è possibile fare clic su Visualizza JSON per ottenere informazioni su come è stato analizzato il risultato. Il valore translatable indica se il modello supporta la query. Il file confusionSpanText potrebbe fornire un indizio sulla parte della query non supportata.


Descrizione di query-tester-json.png:
Descrizione dell'immagine query-tester-json.png

Per le espressioni che non possono essere tradotte, verificare innanzitutto se è stato introdotto un errore di battitura, se la query è troppo vaga o se la query non rientra nell'ambito del modello. Questi problemi non possono essere risolti con la formazione. In caso contrario, potrebbe essere possibile risolvere dati di addestramento insufficienti aggiungendo un sinonimo o aggiungendo l'espressione ai dati di addestramento personalizzati nel set di dati delle entità di query. Di seguito sono riportati alcuni esempi dei tipi di problemi di dati di formazione insufficienti che è possibile risolvere aggiungendo dati di formazione personalizzati.

  • Confusione degli attributi: ad esempio, lo stato fa riferimento allo stato del pagamento o allo stato di approvazione.

  • Confusione tra attributo e valore: ad esempio, "quanti manager sono presenti" (si riferisce al valore dell'attributo manager o al valore della mansione del dipendente?).

  • Cercare valori che siano anche parole chiave o operatori: ad esempio, distinguendo il sinonimo "total" dall'operatore SUM.

Se OMRQL è valido, è possibile verificare la modalità di conversione di OMRQL in SQL facendo clic su Fare clic per eseguire il test nel tester della conversazione. Viene visualizzato il tester di conversazione insieme ai risultati.

Nel tester delle conversazioni è possibile visualizzare le istruzioni OMRQL e SQL nella scheda Finestre di dialogo SQL. Quando non è in grado di tradurre la query, indica che la query non è traducibile e mostra quale testo ha causato la confusione.



Risoluzione dei problemi delle query SQL

Quando una query non si risolve come previsto, potrebbe essere perché il modello non dispone di informazioni sufficienti o l'espressione è fuori ambito. Potrebbe anche essere dovuto a limitazioni delle finestre di dialogo SQL.

Per informazioni su come risolvere i problemi, vedere Test e riparazione per i casi in cui il modello non dispone di informazioni sufficienti. Esistono limitazioni delle finestre di dialogo SQL slso che possono impedire al parser del linguaggio naturale di tradurre correttamente l'espressione in OMRQL. Questa sezione fornisce informazioni su queste limitazioni e sui modi per aggirare le limitazioni, ove possibile.

Limitazioni generali nelle finestre di dialogo SQL

Nella tabella riportata di seguito vengono descritte le limitazioni generali nelle finestre di dialogo SQL di cui è necessario essere a conoscenza. Queste limitazioni non hanno soluzioni alternative.

Categoria Limitazione Esempi di query non supportate
Numero di entità e attributi supportati Il modello logico può avere un totale di 50 attributi più entità. Questo limite include tutti gli attributi ed entità virtuali creati.  
Query non inglese Qualsiasi query in una lingua diversa dall'inglese. numero totale di empleadas
Uso dei pronomi Utilizzando pronomi come "io", "me" e "mio" in un enunciato.
  • Qual è il mio stipendio?
  • di chi sono il manager?
  • dipendenti assunti prima di me
Sì e nessuna domanda Qualsiasi domanda per la quale la risposta è un sì o un no. Le finestre di dialogo SQL supportano solo le query per le quali la risposta è un set di risultati di una query di tabella dati.
  • John è un impiegato?
  • Ci sono analisti nel reparto contabilità?
  • Abbiamo meno di 30 dipendenti nel reparto vendite?
Negazione

Utterances che contengono parole negation come "not" e "no" o query per valori che indicano valori negativi o nulli.

  • Quali dipendenti non sono nel reparto contabilità?
  • quali dipendenti guadagnano una commissione (le query per la commissione non sono nulle)
  • Quali fatture non vengono pagate?
  • fatture per fornitori non federali (query per un valore contenente la negazione)
Operatori SQL complessi Le finestre di dialogo SQL non supportano le query più complesse che coinvolgono subquery, operatori SET (INTERSECT, UNION, EXCEPT e NONE), query che richiedono operatori aritmetici e parole chiave EXISTS e NOT.

Anche se, in rare occasioni, è possibile trovare una query complessa che risolva correttamente, per garantire risultati coerenti, è consigliabile utilizzare le viste di database o creare attributi virtuali come descritto in Aggiungi un attributo personalizzato.

  • mostra i dipendenti i cui stipendi sono superiori allo stipendio più alto del reparto vendite
  • Qual è la retribuzione complessiva percepita da ciascun dipendente?
  • mostrare posti di lavoro che impiegano dipendenti sia maschili che femminili
    • seleziona lavoro da emp dove genere = M INTERSECT seleziona lavoro da emp dove genere = F
Operatori SQL impliciti

Le finestre di dialogo SQL non supportano le funzioni delle clausole SQL non richieste in modo esplicito. Ad esempio:

  • Implicito distinto: implicare che i risultati restituiti devono essere distinti.
  • Aggregazioni implicite: implicano un'operazione di aggregazione.
  • Ordine implicito: implicante un ordine dei risultati. Si consiglia di impostare l'espressione ordine predefinita nella scheda Generale dell'entità.

distinti:

  • mostra le città di tutti i dipendenti (restituisce più righe con città ripetute)
  • mostra i nomi dei reparti in cui tutti i dipendenti guadagnano più di 10000 (restituisce più righe con lo stesso nome di reparto, uno per ogni dipendente che guadagna più di 10.000)

Aggregazione:

  • quanto paghiamo a tutti i dipendenti del reparto contabilità (implica una richiesta per lo stipendio totale di tutti i dipendenti in contabilità)
  • mostra stipendio per reparto (implica la somma)

Ordina per

  • mostrare tutti i nomi dei dipendenti (l'utente potrebbe volerli ordinare in ordine alfabetico, ma il criterio di ordinamento non è esplicitamente implicito)
  • mostrare i dipendenti in ordine crescente (l'attributo da ordinare è implicito)
Supporto limitato per domande di follow-up Le finestre di dialogo SQL non supportano le domande di follow-up predefinite. In altre parole, gli utenti non possono formulare una nuova domanda di follow-up per aggiornare la risposta.

Suggerimento

È possibile aggiungere azioni rapide ai risultati sotto forma di collegamenti o pulsanti che eseguono query di follow-up comuni. Vedere Pulsanti Aggiungi e collegamenti ai risultati.
Ecco alcuni esempi di domande di follow-up per la voce originale "mostrare tutti i dipendenti a Seattle"
  • Mostra solo gli impiegati
  • ora mostra i manager
  • Quale di questi guadagni supera i 3000?
In questi casi, gli utenti devono inserire la domanda completa, come "mostrare a tutti i dipendenti di Seattle che lavorano come impiegati".

Risoluzione dei problemi di query di base

Categoria Descrizione del problema Esempi di query non supportate Soluzione alternativa
Selezionare attributo Selezione di più di 3 attributi Mostra nome, titolo mansione, stipendio e commissione di tutti i dipendenti Aggiungere dati di formazione personalizzati. I dati di formazione possono includere esempi che coprono entità diverse e alcuni set diversi di 4 (o più) attributi.
Seleziona entità Richiesta di più entità
  • mostrare tutti i dipendenti e i loro reparti
  • mostra fornitore e sede fornitore per tutte le fatture
Utilizzare dati di addestramento personalizzati per insegnare all'entità a eseguire l'output di un attributo dalla seconda entità. Ad esempio, per "mostrare il fornitore di ogni fattura", è possibile aggiungere dati di formazione che mappano la query a OMRQL: select invoiceid, vendor.vendor_name from invoices
dove Tre o più condizioni nella clausola WHERE mostra i dipendenti assunti dopo il 2000 e che lavorano nel reparto finanziario come analista Aggiungere dati di formazione con esempi contenenti più condizioni
Ordina per Ordinamento per più di un singolo attributo o entità mostra i dipendenti ordinati per titolo mansione e nome Aggiungere dati di formazione con esempi contenenti l'ordinamento in base a 2 o più attributi
Gruppo per Raggruppa per più di un singolo attributo o entità mostra stipendio medio per mansione e ubicazione reparto Aggiungere dati di formazione con esempi contenenti il raggruppamento per altri 2 attributi o entità
Raggruppa per + dopo Più di una condizione nella clausola Having mostrare posti di lavoro con almeno 20 dipendenti e uno stipendio medio superiore a 30000 Aggiungere dati di addestramento con esempi che contengono più di una condizione nella clausola having
Self join Se un'entità ha un collegamento a se stessa, il calcolo potrebbe non essere possibile per il modello, anche con i dati di addestramento personalizzati. Qui, le query richiedono i dati dei dipendenti che si collegano ai dati dei dipendenti.
  • mostra il nome e lo stipendio del manager di John
  • Quali dipendenti segnalano a Chris?
Non esiste una soluzione alternativa verificata.

Risoluzione dei problemi relativi a data e ora

Categoria Descrizione del problema Esempi di query non supportate Soluzione alternativa
Valori data e data/ora impliciti Quando si filtra in base a una data o a una data/ora, è necessario specificare in modo esplicito il contesto per la clausola WHERE.

Ad esempio, invece di dire "quale fattura è scaduta", è necessario dire "quale fattura ha una data di scadenza precedente a oggi".

  • qual è il prossimo evento?
  • Quali fatture sono scadute?
Creare un attributo virtuale (ad esempio per indicare se un evento è imminente) e quindi utilizzare la formazione personalizzata per insegnare al modello il comportamento previsto.
Riferimento passato o futuro implicito Per gli attributi di data e data/ora, utilizzare la scheda Preferenza temporale dell'attributo nella scheda Informazioni generali per specificare come risolvere date o date ambigue.

Le affermazioni che implicano che un valore ambiguo deve essere risolto come data o data/ora passata o futura vengono ignorate e viene utilizzata la preferenza temporale.

dipendenti che verranno assunti mercoledì
    • Se la preferenza temporale predefinita è passata, verrà risolta in una data passata, anche se il contesto è implicitamente futuro
È possibile creare 2 attributi derivati per risolvere questo problema per lo scenario.
Contesto "passato" con operatori < e > Le finestre di dialogo SQL non supportano l'uso degli operatori < e > in date o data/ora passate contenenti una durata.
  • dipendenti assunti più di 2 giorni fa
  • fatture scadute di meno di 2 giorni
Nessuna soluzione alternativa affidabile. Cercare di insegnare qualcosa di simile con l'addestramento personalizzato può causare al modello di iniziare a prevedere in modo errato questo in altri casi.
Ora senza data Le finestre di dialogo SQL non supportano query con orari ma non date. ordini consegnati alle 3 del pomeriggio Nessuna soluzione alternativa nota.
Date ricorrenti Le finestre di dialogo SQL non supportano le date che specificano un valore ripetuto in un intervallo specifico. quale riunione si svolge il primo lunedì di ogni mese? Nessuna soluzione alternativa nota

Risoluzione dei problemi di selezione degli attributi

Categoria Descrizione del problema Esempi di query non supportate Soluzione alternativa
Prestazioni limitate per sinonimi entità/attributi specifici del dominio Per i sinonimi tecnici o specifici del dominio, non comunemente utilizzati come sinonimi, il modello potrebbe avere difficoltà a mapparlo all'attributo corretto

Attributo: ip_address

Sinonimo: dispositivi

Aggiungere dati di formazione personalizzati. Includere esempi utilizzando i sinonimi dell'attributo e un altro set di esempi con il nome principale per garantire che il modello non dimentichi la funzionalità esistente
Attributo di identificazione per le entità Implicare un attributo facendo riferimento solo all'entità Mostra fatture contenenti 1234
  • Implica il filtro in base al numero di fattura
Aggiungere dati di formazione personalizzati.
  • Creare dati con esempi utilizzando =, LIKE, starts with e ends with (ad esempio "mostrare tutte le fatture contenenti 1234")
  • Assicurarsi che i dati di formazione contengano alcuni esempi in cui il nome dell'entità viene utilizzato per fare riferimento all'entità stessa (ad esempio, "mostra tutte le fatture")
Disambiguazione In casi ambigui con molteplici possibilità, il modello non può disambiguare Mostra importo per tutte le fatture
  • non è chiaro se "importo" si riferisce a "importo della fattura" o "importo lordo"
Aggiungere dati di formazione personalizzati.
  • Includere esempi che mappano il nome ambiguo all'attributo desiderato.
  • Includere alcuni esempi utilizzando i nomi completi (non ambigui) delle opzioni per quel particolare uso ambiguo.
Riferimento implicito all'attributo per valori non presenti nell'entità elenco di valori Se si fa riferimento a un attributo solo per valore e tale valore non è presente nell'elenco di valori (valore/sinonimo canonico)
  • Mostra stipendio di tutti i dipendenti in ODA
    • Dove "ODA" non è un valore nell'elenco di valori per i nomi dei reparti
  • Mostra reparti situati in USA
    • Dove "USA" non è un sinonimo di "Stati Uniti" nell'elenco di valori dell'ubicazione
È possibile aggiungere dati di formazione personalizzati, ma in ogni caso non saranno affidabili. Ad esempio, il modello può apprendere che le "fatture emesse da VALUE" devono essere mappate all'attributo nome fornitore. Tuttavia, il modello non può imparare "fatture per VALUE" o "fatture per valore" perché le parole per, per, in e così via sono molto generali e possono essere utilizzate in una vasta gamma di contesti.
Ordine di valore e nome attributo L'odore è meno robusto quando il valore viene menzionato prima del nome dell'attributo nell'espressione. (Questo è più di un problema quando i valori non sono nell'elenco di valori e per i valori con più parole). mostra fatture approvate Aggiungere dati di formazione personalizzati.
  • Creare esempi con il valore che precede l'attributo nelle condizioni, nonché alcuni esempi con attributi che precedono i valori.

Risoluzione dei problemi Raggruppa per

Categoria Descrizione del problema Esempi di query non supportate Soluzione alternativa
Raggruppa per più di 2 entità Raggruppamento tra più entità con aggregazioni
  • mostra il numero di rate per ogni fornitore
    • in cui sono coinvolte tre entità: fornitori, fatture, rate
  • importo totale rimanente per ogni fornitore
    • dove l'importo rimanente si trova nell'entità rate
È possibile provare ad aggiungere dati di formazione personalizzati. Tuttavia, il tentativo di risolvere questo problema è rischioso e richiederebbe molti dati di formazione personalizzati.
Raggruppa per + Ordina per + Min o Max Ordinamento delle entità in base ai valori minimo o massimo dell'attributo dopo il raggruppamento per tale entità.
  • Mostra tutti i reparti ordinati in base allo stipendio dipendente più alto
  • mostrare tutte le mansioni nell'ordine dello stipendio minimo pagato ai dipendenti in quella mansione
Aggiungere dati di formazione personalizzati.
Raggruppa per + Ordina per + Min/Max + Limite 1 o Limite N Prima raggruppare in base all'attributo o all'entità, ordinare in base al minimo o al massimo di un attributo numerico, quindi selezionare la prima riga quale reparto ha lo stipendio minimo più alto Aggiungere dati di formazione personalizzati.
Le clausole Select e Having hanno aggregazioni diverse La clausola Select e Having ha aggregazioni diverse mostra lo stipendio medio per ogni reparto con almeno 10 dipendenti
  • la clausola SELECT deve avere avg(invoices.amount) e la clausola HAVING deve avere count(invoice)
Aggiungere dati di formazione personalizzati.
Le clausole Seleziona e Ordina per hanno aggregazioni diverse Le clausole Seleziona e Ordina per hanno aggregazioni diverse mostrare il nome e la fattura media di ciascun fornitore e ordinare i fornitori in ordine alfabetico in base al nome del fornitore;
  • In questo caso, la clausola SELECT deve avere avg(invoices.amount) e la clausola ORDER BY deve avere vendor_name
Aggiungere dati di formazione personalizzati.
Più aggregazioni nella clausola Select Le finestre di dialogo SQL supportano le clausole Select con un'unica aggregazione, valore medio più somma e valore minimo più massimo.

Non supporta altre combinazioni come media più min, media più somma più max e conteggio più somma.

  • mostra lo stipendio medio e minimo per reparto
  • per ogni mansione, mostra il conteggio dei dipendenti e lo stipendio medio
Aggiungere dati di formazione personalizzati.
Con clausole + Where Raggruppa per query con una clausola Having e una Where Quali fornitori di tipo LEGALE hanno più di 6 fatture? Aggiungere dati di formazione personalizzati.

Risoluzione dei problemi relativi alle entità

Categoria Descrizione del problema Esempi di query non supportate Soluzione alternativa
Composizione orizzontale  
  • Dipendenti nel reparto di conteggio
    • Valore acounting ha un errore di battitura
  • Dipartimento di emlpoyee nme John Doe
    • L'attributo emlpoyee nme ha un tipo
Nessuna soluzione alternativa. Gli errori di battitura nei valori non funzioneranno nemmeno con la formazione personalizzata.
Entità diverse dalle elenchi di valori e dalle espressioni regolari Associazione di qualsiasi attributo a qualsiasi tipo di entità diverso dall'elenco di valori (ad esempio: entità ML personalizzate)   Nessuna soluzione alternativa.
Corrispondenza non esatta Per la corrispondenza non esatta, è supportato solo lo stemming. Fatture da Amazon
  • Dove non c'è contesto, e l'elenco di valori ha "Amazon LLC"
Aggiungi sinonimi nell'elenco valori.
Corrispondenza non esatta La corrispondenza non esatta non funziona per i caratteri _ e ? Fatture pagate utilizzando DBX EFT
  • Dove non esiste un contesto e l'elenco di valori contiene "DBX_EFT"
Aggiungi sinonimi nell'elenco valori.
Numeri in formato non numerico Le finestre di dialogo SQL supportano un elenco limitato di numeri che possono essere rappresentati in altre forme (0-10, 20 e 50). Tutti gli altri numeri, se utilizzati come riferimento in un formato diverso da numerico, non sono supportati
  • mostra le fatture con importo dovuto minore di trenta
  • mostra fatture con importo dovuto inferiore a 1 KB
  • Mostra fatture con importo dovuto inferiore a 1 mila
  • Mostra fatture con importo dovuto inferiore a 1.000
Nessuna soluzione alternativa.

Risoluzione di altri problemi

Categoria Descrizione del problema Esempi di query non supportate Soluzione alternativa
2 o più filtri numerici Due clausole Where con numeri (sia che si tratti dello stesso attributo o di un attributo diverso)
  • Dipendenti il cui stipendio è superiore a 10000 e la cui commissione è pari ad almeno 2000
  • Dipendenti il cui stipendio è inferiore a 2000 o è pari ad almeno 5000
Aggiungere dati di formazione personalizzati.
Ordine dei superlativi

Chiedere le entità N in alto o in basso.

Nota

Il modello è più robusto con la parte superiore rispetto alla parte inferiore
Mostra il miglior dipendente
  • L'OMRQL ideale è "SELECT * FROM Emp ORDER BY * DESC LIMIT 1"
  • Tuttavia, il modello presenta problemi con order by *
Aggiungere dati di formazione personalizzati.
Attributi in cui le aggregazioni sono precalcolate Se lo schema contiene aggregazioni precalcolate come total_amount che già memorizza la somma o total_servers che memorizza il conteggio totale dei server, il modello potrebbe essere confuso tra la necessità di utilizzare la funzione SUM/COUNT o l'attributo con l'aggregazione precalcolata. Mostra l'importo totale per la fattura 1234
  • Dove total_amount è un attributo derivato, ma il modello può prevedere SUM(amount)
Aggiungere dati di formazione personalizzati.
Selezione predefinita Il modello prevede talvolta il nome o l'ID dell'entità anziché selezionare *.

Si tratta di un errore raro e l'impatto non è critico poiché l'utente visualizza l'attributo minimo anziché gli attributi predefiniti dell'entità.

Mostra le fatture approvate.
  • L'OMRQL ideale è "SELECT * dalle fatture in cui approval_status = 'approved'"
  • Tuttavia, il modello prevede "selezionare invoice_num"
Aggiungere dati di formazione personalizzati, se si tratta effettivamente di un problema

Monitora e migliora

Durante la creazione e il test delle proprie competenze, è possibile utilizzare Approfondimenti e test in batch per monitorare l'efficacia con cui le competenze raggiungono i propri obiettivi ed esporre le aree che richiedono miglioramenti. Quando entri nella fase di test e alla fine rilasci l'abilità al pubblico, vorrai continuare a eseguire controlli e test periodici.

Monitoraggio mediante approfondimenti

La pagina Insight dello skill fornisce diverse metriche che è possibile utilizzare per misurare le prestazioni dello skill della finestra di dialogo SQL e per determinare dove apportare miglioramenti.

In qualità di business analyst, nella scheda Panoramica potresti essere interessato a queste metriche di query dei dati:

  • Prestazioni: Andamento conversazioni per stato (riga) mostra il numero di conversazioni in un determinato periodo di tempo e se il traffico tende verso l'alto, verso il basso o lateralmente.

  • Il rapporto tra le interrogazioni corrette e le interrogazioni errate indica quanto siano soddisfatti gli utenti del bot con l'accuratezza della traduzione delle espressioni in query SQL.

  • Il rapporto tra le conversazioni Completate e Incomplete mostra in che misura i problemi tecnici influiscono sulle esperienze degli utenti.

  • Il rapporto tra Conversazioni totali e Query non risolte (OOD/OOS) consente di misurare la misura in cui lo skill soddisfa le aspettative degli utenti finali.

  • Sia Andamento conversazioni per tipo che il rapporto tra Conversazioni totali e Conversazioni query dati mostrano la proporzione di espressioni che sono query SQL.

  • Le entità query dati mostrano quali entità vengono sottoposte a query di maggiore entità.

In qualità di trainer AI, è possibile esaminare i messaggi utente nella scheda Conversazioni per individuare le aree da migliorare. Ad esempio, è possibile rivedere i seguenti messaggi utente:

  • I messaggi utente Tipo: Intento, Risultato: Incompleto indicano problemi durante la conversione dell'espressione in una query SQL. Spesso è possibile risolvere questi problemi aggiungendo sinonimi o, per query più complesse, aggiungendo espressioni mappate al set di dati delle entità di query. È inoltre possibile visualizzare questi messaggi selezionando Errori gestiti dal sistema dall'elenco a discesa Errori.

  • I messaggi utente Tipo: intento, intento: unresolvedIntent indicano sia espressioni fuori ambito che espressioni che lo skill non riconosce come espressione di query dati. Per le espressioni che sono query di dati valide ma la competenza non riconosce come tali, è spesso possibile risolvere i problemi aggiungendo sinonimi o mappando le espressioni a OMRQL nel set di dati della query.

  • Nel campo Tipo: Query dati, Entità vengono visualizzati i messaggi utente per entità di query.

  • Nel campo Tipo: Query dati, Risultato: Non corretto vengono visualizzati i messaggi che gli utenti ritengono abbiano restituito risultati errati. È necessario verificare che i risultati non siano corretti e, in tal caso, aggiungere sinonimi, elenchi di valori e voci del data set di query in base alle esigenze.

Monitoraggio con test batch entità query

In qualità di trainer AI, è buona norma creare test batch per garantire che il miglioramento di un'area non influisca negativamente su un'altra. È inoltre possibile utilizzare i test batch per assicurarsi che le modifiche apportate al modello logico non abbiano effetti negativi sull'addestramento personalizzato o sull'instradamento alle conversazioni SQL.

Proprio come con i test in batch per le espressioni degli intenti, potresti voler accantonare circa il 20% delle query del mondo reale che hai raccolto per utilizzarle per il test in batch delle query. È possibile eseguire il test batch periodicamente e dopo aver apportato modifiche al modello logico, all'addestramento personalizzato o ai dati di instradamento.

Poiché ogni caso di test deve appartenere a una suite di test, prima di creare un caso di test è consigliabile creare una suite di test che rifletta alcuni aspetti del test delle query, ad esempio il test degli errori, il test nel dominio o il test fuori dominio. Forniamo una suite chiamata Default Test Suite. È possibile assegnare casi di test a questa suite di test se non ne sono stati ancora creati altri.

È possibile aggiungere un caso di test a un test batch in due modi:

  • Dopo aver testato un'espressione dal tester query, è possibile selezionare una suite di test dall'elenco a discesa Salva come caso di test per salvarla in tale suite.

  • È possibile fare clic su + Caso di test nella scheda Suite di test del tester batch.

Per accedere al tester batch:

  1. Nella pagina Entità, fare clic su Query di test.

    Viene visualizzato il tester query.

  2. Fare clic su Vai a casi di test.

    Nella scheda Suite di test è possibile selezionare una suite di test ed eseguire tutti i casi di test oppure selezionare ed eseguire casi specifici. I risultati vengono visualizzati nella pagina Risultati del test. Il completamento dei test richiede tempo. L'esecuzione è stata completata quando in In corso viene visualizzato 0.

Riferimento OMRQL

Di seguito sono riportate le parole chiave che è possibile utilizzare quando si definiscono query OMRQL per le espressioni aggiunte al data set delle entità di query. Si noti che si utilizzano i nomi canonici e non i nomi e i sinonimi primari

Componente Parole chiave OMRQL Esempio OMRQL Limitazioni
Componenti di base
  • SELEZIONA
  • *
  • DA
SELEZIONA * DA Emp OMRQL non può assegnare un nome agli attributi a cui non viene fatto riferimento nell'espressione.
Filtro DOVE Stipendio DOVE dipendente > 100000 Nessuno.
Collegamento di entità

Per una spiegazione del funzionamento, vedere Attributi collegamento.

. (punto) SELECT * FROM Dipendente WHERE Departments.location = 'NYC' Nessuno.
Ordinamento
  • ORDINA PER
  • LIMITAZIONE
  • ASC
  • DESC
SELECT name FROM ORDER BY stipendio DESC LIMIT 10 L'OMRQL può ordinare i dati utilizzando ORDER BY <ATTR> [LIMIT N] solo se l'espressione include l'ordine delle parole o i suoi sinonimi di linguaggio naturale come ordinati, ordinati, più alti e più piccoli.
Ordinazione senza un attributo specifico

L'asterisco (*) viene utilizzato insieme a ORDER BY quando un utente chiede di ordinare qualcosa senza specificare cosa ordinare. Ad esempio, "mostra i primi 10 dipendenti" (non è chiaro quale attributo dobbiamo ordinare). Il backend sostituisce quindi * con un attributo predefinito prespecificato (measure_by).

ORDINA PER * SELECT name FROM ORDER BY * DESC LIMIT 10 ORDER BY * funziona solo dall'inizio alla fine quando il valore "measure_by" è impostato per l'entità nell'interfaccia utente
Funzioni di aggregazione
  • COUNT
  • DIFFERENTE
  • AVG
  • SUM
  • MIN
  • MAX
SELECT AVG(sal) da dipendente L'OMRQL può contenere DISTINCT solo se l'espressione contiene tale parola o un sinonimo di linguaggio naturale come diverso o univoco.
Raggruppamento
  • GRUPPO PER
SELECT location, AVG(Employees.salary) DA Department GROUP BY location La clausola FROM deve contenere l'entità a cui appartiene l'attributo group by
Raggruppamento per entità GRUPPO PER * SELEZIONA *, MAX(Employees.salary) DA GRUPPO DI Reparto PER *

Nota: questa opzione raggruppa in base all'entità nella clausola FROM (il backend converte Group By * in Group By, la chiave primaria dell'entità radice).

 
Raggruppamento e filtraggio AVERE SELECT location FROM Department GROUP BY location HAVING AVG(Employees.salary) < 4000  
Operatori di confronto
  • =
  • !=
  • <>
  • >
  • >=
  • <
  • <=
  • LIKE
  • NON SIMILE A
  • TRA
  • IN
  • NOT IN
SELECT * from Dipartimento WHERE nome IN ('Vendite', 'HR') Per gli operatori >, >=, < e <=, l'espressione deve contenere un sinonimo di linguaggio naturale equivalente, ad esempio maggiore di, almeno, minore di e al massimo.

Se l'espressione non contiene un sinonimo operatore, OMRQL deve contenere =.

OMRQL può contenere LIKE solo se l'espressione contiene tale parola o un sinonimo di linguaggio naturale, ad esempio include, contiene o sottostringa.

L'OMRQL può contenere BETWEEN solo se l'espressione contiene quella parola o un sinonimo di linguaggio naturale come nell'intervallo di.

Operatori logici
  • E
  • oppure
  • NOT
SELECT name FROM Dipendente WHERE stipendio > 10000 AND ruolo = 'VP' Nessuno.

Tutti i valori nell'istruzione OMRQL devono corrispondere esattamente al valore e al formato del database. Prendiamo, per esempio, la frase "chi è il dipendente il cui nome è Jones". Se i valori del database per l'attributo nome sono tutte lettere maiuscole, il valore del nome deve essere anche tutte lettere maiuscole. Questo è "SELECT * FROM Emp WHERE name = 'JONES'".

Quando l'espressione che si sta mappando utilizza un sinonimo per il valore effettivo del database, è necessario definire tale sinonimo per il valore nell'elenco di valori e OMRQL deve utilizzare il valore effettivo del database. Ad esempio, se l'espressione è "mostrare il reparto la cui posizione è la grande mela", allora "big apple" deve essere definito nell'elenco di valori dept_loc come sinonimo del valore "NEW YORK" e l'OMRQL deve essere "SELECT * FROM Dept WHERE loc = 'NEW YORK'".

Ecco alcuni esempi di come scrivere OMRQL per le tue espressioni:

Pronuncia SQL OMRQL commenti
Mostrami tutti i dipendenti che lavorano come impiegati SELECT * FROM Emp WHERE job = 'CLERK' SELECT * FROM Emp WHERE job = 'CLERK' OMRQL è identico a SQL.
Mostra il numero di dipendenti che lavorano nel reparto vendite SELECT COUNT(*) FROM Emp AS T1 JOIN Dept AS T2 ON T1.deptno = T2.deptno WHERE T2.dname = 'SALES' SELECT COUNT(*) FROM Emp WHERE dept.dname = 'SALES' Al posto di JOIN, utilizzare "link_attribute.attribute_name" per fare riferimento a un attributo di un'altra entità.
Adams è membro di quale dipartimento? SELECT * FROM Dept AS T1 JOIN Emp AS T2 ON T1.deptno = T2.deptno WHERE T2.ename = 'Adams' SELEZIONA * DA reparto DOVE emp.ename = 'ADAMS' Al posto di JOIN, utilizzare "link_attribute.attribute_name" per fare riferimento a un attributo di un'altra entità.
Qual è l'ubicazione del reparto e il ruolo lavorativo del dipendente Adams SELEZIONARE T1. UBICAZIONE, T2. JOB DAL REPARTO T1 JOIN EMP T2 SU T1. N. REPARTO = T2. N. REPARTO DOVE T2. NOME = 'ADAMS' SELECT loc, emp.job FROM Reparto WHERE emp.ename = 'ADAMS' Si noti come OMRQL sia più semplice da scrivere rispetto all'SQL.
Quanti dipendenti ci sono per ogni ruolo lavorativo? SELECT COUNT(*), job FROM Emp GROUP BY SELECT COUNT(*), job FROM Emp GROUP BY OMRQL è identico a SQL.
Quale dipendente ha lo stipendio più alto? SELEZIONA * DA ORDINE Emp BY stipendio DESC LIMIT 1 SELEZIONA * DA ORDINE Emp BY stipendio DESC LIMIT 1 OMRQL è identico a SQL.
Mostra il nome del dipendente e il nome del reparto ordinati in base allo stipendio in ordine crescente SELEZIONA T1.ename, T2.dname FROM Emp AS T1 JOIN Dept AS T2 ON T1.deptno = T2.deptno ORDER BY T1.sal ASC SELECT ename, dept.dname FROM Emp ORDER BY stipendio ASC Si noti come OMRQL sia più semplice da scrivere rispetto all'SQL.
Numero di dipendenti in ogni ubicazione SELECT COUNT(*), loc FROM Emp AS T1 JOIN Dept AS T2 ON T1.deptno = T2.deptno GROUP BY T2.loc SELECT loc, COUNT(emp) from Dept GROUP BY loc Con GROUP BY, quando si conta un'entità collegata, viene utilizzata una nuova sintassi COUNT(LINK) anziché COUNT(*). Ciò rende OMRQL più leggibile di SQL.
Visualizzare le ubicazioni con stipendio medio di almeno 40000 SELEZIONA T2.name FROM Emp AS T1 JOIN Dept AS T2 ON T1.deptno = T2.deptno GROUP BY T2.name HAVING AVG(T1.sal) >= 40000 SELECT loc from Dept GROUP BY loc HAVING AVG(emp.sal) <= 40000 Esempio di clausola GROUP BY con HAVING.
Stipendio medio dei dipendenti in ogni reparto SELECT AVG(T1.sal), T2.dno FROM Emp AS T1 JOIN Dept AS T2 ON T1.deptno = T2.deptno GROUP BY T2.dno SELEZIONA *, AVG (sal) da Dept GROUP BY * L'obiettivo è raggruppare in base a un attributo univoco nell'entità "reparto". La chiave primaria è il candidato più adatto, ma la visualizzazione della chiave primaria potrebbe non essere sempre utile.

In OMRL invece raggruppiamo per *. Il backend eseguirà il raggruppamento in base alla chiave primaria e visualizzerà anche gli attributi minimi dell'entità per rendere il risultato più intuitivo

Mostra l'ubicazione e lo stipendio minimo dei dipendenti per ogni reparto SELEZIONA T2.dno, T2.loc, MIN(T1.sal) DA Emp AS T1 JOIN Dept AS T2 ON T1.deptno = T2.deptno GROUP BY T2.dno, T2.loc SELEZIONA *, loc, MIN(sal) da Dept GROUP BY *, loc Qui, vogliamo ancora raggruppare per entità reparto, ma l'espressione sta anche specificatamente richiedendo di visualizzare la posizione dei reparti. Tenere presente che sia la clausola SELECT che la clausola GROUP BY hanno un * e gli attributi di visualizzazione richiesti.
Visualizzare il nome e l'ubicazione del reparto con lo stipendio medio più alto SELEZIONA T2.name, T2.loc FROM Emp AS T1 JOIN Dept AS T2 ON T1.deptno = T2.deptno GROUP BY T2.name ORDER BY AVG(T1.sal) LIMIT 1 SELECT *, name, loc from Dept GROUP BY *, name, loc ORDER BY AVG(emp.sal) LIMIT 1 Un altro esempio di raggruppamento per entità e visualizzazione degli attributi richiesti, questa volta con ORDER BY LIMIT 1
Mostra i primi 10 dipendenti SELEZIONA * da Emp ORDER BY rating LIMIT 10 SELEZIONA * da Emp ORDER BY * LIMITE 10 Supponendo che "migliori dipendenti" implichino l'ordine in base al rating, il rating verrà impostato come attributo "measure_by" per l'entità dipendente

Attributi collegamento

Ad eccezione delle entità di collegamento, i componenti OMRQL sono simili a SQL. Invece di un JOIN SQL, è possibile utilizzare una coppia di attributi di collegamento per collegare un'entità a un'altra. L'attributo di collegamento ha nomi e sinonimi principali che definiscono la relazione tra le entità. Ad esempio, un collegamento di attributo dipendente/reparto con una relazione 1-1 può avere un nome principale "reparto" e sinonimi "lavora", "appartiene a" e "team". Un collegamento attributo reparto/dipendenti con una relazione 1-molti può avere un nome principale "dipendenti" e sinonimi "membri" e "lavoratori".

Oltre ai tipici attributi chiave primaria/collegamento chiave esterna, è possibile avere anche i seguenti tipi di attributi di collegamento:

  • Più attributi di collegamento da un'entità a un'altra che definiscono più relazioni semantiche.
  • Attributo di collegamento da un'entità a se stessa che implica un self join.
  • Attributo di collegamento per una tabella di intersezione a causa di un join molti-a-molti