Condividi tramite


Utilizzare asset attendibili in spazi IA/BI Genie

Questo articolo definisce gli asset attendibili e spiega come usarli per fornire risposte verificate in uno spazio Genie.

Che cosa sono gli asset attendibili?

Gli asset attendibili sono funzioni predefinite e query di esempio progettate per fornire risposte verificate alle domande previste degli utenti. Quando un utente invia una domanda che richiama un asset attendibile, viene indicato nella risposta, aggiungendo un ulteriore livello di garanzia all'accuratezza dei risultati.

Gli asset attendibili possono includere i seguenti:

  • Query SQL di esempio con parametri: quando viene usata una query SQL di esempio con parametri per generare una risposta, la risposta viene etichettata come asset attendibile. La risposta include i valori usati come argomenti nella query.
  • Funzioni di tabella definite dall'utente (UDF): è possibile definire le funzioni personalizzate e registrarle con il catalogo Unity. È quindi possibile aggiungere tali funzioni come asset attendibili durante la configurazione delle istruzioni nello spazio Genie. Vedere Creare una funzione di tabella SQL e funzioni definite dall'utente (UDF) nel catalogo Unity.

Esempio di domanda a cui è stata data una risposta con un asset attendibile.

Nota

Gli asset attendibili non sostituiscono tutte le altre istruzioni. Databricks consiglia di usare asset attendibili per domande ricorrenti consolidate. Gli asset attendibili forniscono risposte esatte a domande specifiche.

Perché creare asset attendibili?

Quando si usa uno strumento di IA, gli utenti devono valutare l'accuratezza delle risposte generate. In genere, questa operazione viene eseguita considerando se la risposta ha senso ed è in grado di rispondere in modo efficace alla domanda. Con Genie, una risposta viene recapitata come tabella dei risultati. Gli utenti possono esaminare il codice SQL generato che crea il set di risultati, ma gli utenti non tecnici potrebbero non avere la formazione adeguata a interpretare l'istruzione SQL o a valutare la correttezza della risposta. Gli asset attendibili consentono di ridurre la probabilità che questi utenti riscontrino risposte fuorvianti, errate o difficili da interpretare.

Quando un utente riceve una risposta etichettata come asset attendibile, può avere la certezza che un esperto di dominio ha esaminato l'istruzione SQL che popola i risultati.

Qual è la differenza tra asset attendibili e query SQL di esempio?

Gli asset attendibili forniscono risposte verificate a domande che si prevede vengano poste dagli utenti nello spazio Genie. Quando un asset attendibile può rispondere alla domanda di un utente, l'istruzione archiviata come asset attendibile viene eseguita e restituisce il set di risultati specificato. Tutte le funzioni SQL incluse nelle istruzioni vengono considerate come asset attendibili. Anche lequery SQL di esempio che includono parametri possono essere considerate come asset attendibili.

  • Funzioni SQL: è possibile scrivere funzioni SQL personalizzate personalizzate per gestire i dati e rispondere a domande specifiche dell'azienda. Quando risponde alle domande, Genie non considera il contenuto SQL degli asset attendibili.
  • Query SQL di esempio (con parametri): quando viene usato il testo esatto di una query di esempio con parametri per generare una risposta, la risposta viene etichettata automaticamente come asset attendibile. Se il testo esatto della query non viene usato o la query di esempio non usa parametri, la query fornisce il contesto e le guide Genie nella generazione delle istruzioni SQL per elaborare altre domande.

Definire un asset attendibile

La definizione di un asset attendibile inizia con l'identificazione di una domanda probabile. Ad esempio, se si lavora con un set di dati della pipeline di vendita e un responsabile vendite chiede "Quali sono le opportunità di vendita aperte nella pipeline?"

Esempio: Usare una UDF

I passaggi seguenti illustrano come creare un asset attendibile, come una UDF, che risponde a questa domanda:

  1. Definire e testare una query SQL che risponde alla domanda.

    Questa query unisce due tabelle e restituisce un set di dati di opportunità aperte elencate nella categoria di previsione "Pipeline". In questo passaggio, l'obiettivo è scrivere una query di base che restituisca i risultati previsti.

    SELECT
      o.id AS `OppId`,
      a.region__c AS `Region`,
      o.name AS `Opportunity Name`,
      o.forecastcategory AS `Forecast Category`,
      o.stagename,
      o.closedate AS `Close Date`,
      o.amount AS `Opp Amount`
    FROM
    users.user_name.opportunity o
    JOIN catalog.schema.accounts a ON o.accountid = a.id
    WHERE
    o.forecastcategory = 'Pipeline'
    AND o.stagename NOT LIKE '%closed%';
    
  2. Definire una funzione del catalogo Unity.

    La funzione catalogo Unity deve parametrizzare la query e produrre risultati corrispondenti alle condizioni specifiche che si prevede che l'utente chieda. Si supponga che il responsabile vendite voglia restringere il set di risultati concentrandosi su una determinata area o gruppo di aree.

    L'esempio seguente definisce una funzione del catalogo Unity che accetta come parametro un elenco di aree e restituisce una tabella. La funzione restituita è quasi identica all'istruzione SQL nel passaggio precedente, ad eccezione del fatto che la clausola WHERE è stata modificata per filtrare i risultati in base all'area, se è stata specificata un'area. I commenti forniti nelle definizioni di funzione sono fondamentali per indicare allo spazio Genie su quando e come richiamare questa funzione.

    • Commenti dei parametri: la funzioneopen_opps_in_region prevede una matrice di stringhe come parametro. Il commento include un esempio dell'input previsto. Se non viene specificato alcun parametro, il valore predefinito è NULL. Per altre informazioni su come includere parametri e commenti facoltativi, vedere Suggerimenti per la scrittura di funzioni .
    • Commenti di funzione: il commento nella funzione tabella SQL fornisce una spiegazione dettagliata delle operazioni che la funzione esegue. Questo è fondamentale perché informa Genie quando usare la funzione come risposta alle domande dell'utente. Il commento deve descrivere lo scopo della funzione nel modo più preciso possibile. Queste informazioni guidano Genie nel riconoscere la rilevanza della funzione a domande specifiche.
    
    CREATE
    OR REPLACE FUNCTION users.user_name.open_opps_in_region (
      regions ARRAY < STRING >
      COMMENT 'List of regions.  Example: ["APAC", "EMEA"]' DEFAULT NULL
    ) RETURNS TABLE
    COMMENT 'Addresses questions about the pipeline in the specified regions by returning
     a list of all the open opportunities. If no region is specified, returns all open opportunities.
     Example questions: "What is the pipeline for APAC and EMEA?", "Open opportunities in
     APAC"'
    RETURN
      SELECT
      o.id AS `OppId`,
      a.region__c AS `Region`,
      o.name AS `Opportunity Name`,
      o.forecastcategory AS `Forecast Category`,
      o.stagename,
      o.closedate AS `Close Date`,
      o.amount AS `Opp Amount`
      FROM
      catalog.schema.opportunity o
      JOIN catalog.schema.accounts a ON o.accountid = a.id
      WHERE
      o.forecastcategory = 'Pipeline'
      AND o.stagename NOT LIKE '%closed%'
      AND (
        isnull(open_opps_in_region.regions)
        OR array_contains(open_opps_in_region.regions, region__c)
      );
    

    Quando si esegue il codice per creare una funzione, viene registrato nello schema attualmente attivo per impostazione predefinita. Si veda Funzioni definite dall'utente (UDF) nel catalogo Unity. Vedere Creare una funzione di tabella SQL per la sintassi e gli esempi.

  3. Aggiungere un asset attendibile.

    Dopo aver creato la funzione nel catalogo Unity, può essere aggiunta dalla scheda Istruzioni dello spazio Genie da un utente che abbia come minimo l'autorizzazione CAN EDIT.

Autorizzazioni necessarie

Gli utenti che dispongono almeno dell'autorizzazione CAN EDIT per uno spazio Genie possono aggiungere o rimuovere asset attendibili.

Gli utenti dello spazio Genie devono disporre dell'autorizzazioneCAN USE per il catalogo e lo schema che contiene la funzione. Per richiamare un asset attendibile, è necessario disporre dell'autorizzazione EXECUTE per la funzione nel catalogo Unity. Gli oggetti a protezione diretta del catalogo Unity ereditano le autorizzazioni dai contenitori padre. Vedere Oggetti a protezione diretta nel catalogo Unity.

Per semplificare la condivisione in uno spazio Genie, Databricks consiglia di creare uno schema dedicato per contenere tutte le funzioni da usare nello spazio Genie.

Suggerimenti per la scrittura di funzioni

Vedere i seguenti esempi per informazioni su come creare funzioni dinamiche per asset attendibili.

Includere un valore predefinito per un parametro

È possibile specificare un valore predefinito per un parametro. Usare la clausola DEFAULT nella firma della funzione come illustrato nell'esempio seguente:

countries ARRAY<STRING> COMMENT 'List of countries' DEFAULT ARRAY()

Includere valori dei parametri di esempio

Per le colonne con un'enumerazione definita di valori, aumentare l'accuratezza definendole chiaramente nel commento. L'esempio seguente fornisce un elenco di valori di esempio:

regions ARRAY < STRING > COMMENT 'List of regions. Values: ["AF","AN","AS", "EU", "NA", "OC", "SA", NULL]'

Creare un parametro facoltativo

Per creare un parametro facoltativo, impostare il parametro predefinito su NULL, come illustrato nell'esempio seguente:

min_date STRING DEFAULT NULL

Specificare la formattazione con i commenti

È possibile specificare un formato esatto di un parametro includendolo in un commento, come illustrato nell'esempio seguente:

min_date STRING COMMENT 'minimum date (included) for a transaction, in `yyyy-mm-dd` format'

Verificare esplicitamente la presenza di valori NULL

Se si include un parametro facoltativo, un valore possibile da prevedere è NULL. Poiché il confronto con NULL può produrre risultati imprevedibili, è consigliabile compilare nella funzione un controllo dei valori NULL. Nell'esempio seguente viene fornita una sintassi di esempio:

WHERE (isnull(min_date) OR created_date >= min_date)