Funzione ai_decide

Si applica a:segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime

Importante

Questa funzionalità è in versione beta. Gli amministratori dell'area di lavoro possono controllare l'accesso a questa funzionalità dalla pagina Anteprime . Vedere Gestire le anteprime di Azure Databricks.

La ai_decide() funzione valuta una o più domande rispetto a dati testuali o strutturati. Per ogni domanda, restituisce o una probabilità, una scelta tra criteri nominati o un punteggio su una scala ordinata. Usalo per instradare i ticket di supporto, valutare se un evento necessita di attenzione o dare priorità al lavoro usando una rubrica che definisci tu.

Tutte le domande in una chiamata utilizzano lo stesso input, chiamato state. Puoi combinare diversi tipi di domande in un'unica chiamata e usare le risposte restituite nelle query SQL a valle.

Sicurezza dei dati

I dati del documento vengono elaborati all'interno del perimetro di sicurezza di Databricks. Databricks non memorizza i parametri che vengono passati nelle chiamate di funzione AI, ma conserva i dettagli di esecuzione dei metadati, come la versione Databricks Runtime utilizzata.

Requisiti

Licenza di Apache 2.0

I modelli sottostanti che potrebbero essere usati in questo momento sono concessi in licenza con la licenza Apache 2.0, Copyright © The Apache Software Foundation. I clienti sono tenuti a garantire la conformità con i modelli di licenza applicabili.

Databricks consiglia di esaminare queste licenze per garantire la conformità con le condizioni applicabili. Se i modelli emergono in futuro che offrono prestazioni migliori in base ai benchmark interni di Databricks, Databricks potrebbe modificare il modello (e l'elenco delle licenze applicabili fornite in questa pagina).

Il modello che alimenta questa funzione viene reso disponibile tramite le API Model Serving Foundation Model. Vedere Condizioni del modello applicabili per informazioni sui modelli disponibili in Databricks e sulle licenze e i criteri che regolano l'uso di tali modelli.

Se i modelli emergono che offrono prestazioni migliori in base ai benchmark interni di Azure Databricks, Databricks potrebbe modificare i modelli e aggiornare la documentazione.

Syntax

ai_decide(state, questions [, options])

Arguments

  • state: A VARIANT o STRING espressione contenente il contenuto, il contesto e gli esempi necessari per rispondere alle domande. Il valore può variare a seconda della riga. Accetta una:

    • A contenente STRING testo semplice o un oggetto o un array codificato in JSON. Gli oggetti e gli array JSON sono interpretati come dati strutturati. Altre stringhe sono trattate come testo.
    • Oggetto VARIANT prodotto da un'altra funzione di intelligenza artificiale (ad esempio ai_parse_document o ai_extract)
  • questions: Un'espressione costante STRING che contiene un oggetto JSON non vuoto. Ogni chiave è un ID di domanda non vuoto, e ogni valore è una definizione di domanda. Le stesse definizioni si applicano a ogni riga. Vedi definizioni di domande.

  • options: Un'espressione costante MAP<STRING, STRING> opzionale. L'opzione supportata è version, con il valore '1.0'. La versione 1.0 è la predefinita. Per specificarlo esplicitamente, usa map('version', '1.0').

Definizioni delle domande

Ogni definizione di domanda richiede type e instructions, più criteria quando richiesto dal tipo di domanda. I campi richiesti non possono essere null. Altri campi non sono supportati.

  • type: uno di noul, choiceo score.
  • instructions: Istruzioni per la valutazione dello stato, espresse come stringa, oggetto JSON o array JSON.
  • criteria: Le descrizioni che definiscono come rispondere. La forma richiesta dipende da type.

Domande di Noul

Usalo noul per stimare la probabilità che una domanda sia vera. Il risultato è un numero da 0 a 1.

L'oggetto opzionale criteria può contenere true tasti e false chiavi per descrivere quegli esiti. Ogni descrizione può essere una stringa, un oggetto JSON o un array JSON. Ometti criteria quando non hai bisogno di queste descrizioni. Se fornito, criteria deve essere un oggetto e non può essere null.

{
  "needs_escalation": {
    "type": "noul",
    "instructions": "Does this ticket need immediate escalation?",
    "criteria": {
      "true": "An active service outage blocks the customer from working.",
      "false": "The customer can continue working or has a workaround."
    }
  }
}

Domande di scelta

Usare choice per selezionare un'etichetta da un insieme di criteri nominati.

L'oggetto richiesto criteria mappa da 1 a 255 etichette non vuote a descrizioni. Ogni descrizione può essere una stringa, un oggetto JSON, un array JSON o null. Usalo null quando l'etichetta sola descrive la scelta.

{
  "team": {
    "type": "choice",
    "instructions": "Which team should handle this ticket?",
    "criteria": {
      "shipping": "Delivery or shipment issues",
      "billing": "Payment or invoice issues",
      "technical_support": "Product technical problems"
    }
  }
}

Domande sul punteggio

Usalo score per valutare lo stato rispetto a una scala ordinata.

L'array richiesto criteria contiene da 2 a 10 descrizioni, ordinate dal minimo al più alto. Ogni descrizione può essere una stringa, un oggetto JSON o un array JSON. Il primo criterio ha indice 0, il successivo ha indice 1, e così via.

Il risultato è la media ponderata per probabilità di questi indici. Può essere frazionaria e varia da 0 fino al numero di criteri meno uno. Ad esempio, le probabilità di 0.1, 0.3, e 0.6 su tre criteri producono un punteggio di 1.5.

{
  "urgency": {
    "type": "score",
    "instructions": "How urgent is this ticket?",
    "criteria": [
      "Routine request with no time pressure",
      "Time-sensitive issue with a workaround",
      "Critical issue that blocks the customer"
    ]
  }
}

Returns

Restituisce a VARIANT con i campi response, metadata, e error_message. Il response campo contiene un answers oggetto con una voce per ogni domanda. Gli ID delle domande corrispondono esattamente a quelli forniti nel questions parametro. Ogni risposta include un type campo che corrisponde al tipo di domanda: noul, choice, o score. I seguenti esempi mostrano il response campo per ogni tipo di domanda:

  • Domande di Noul: A probability da 0 a 1 che stima la probabilità che la domanda sia vera.

    {
      "answers": {
        "needs_escalation": {
          "type": "noul",
          "probability": 0.1
        }
      }
    }
    
  • Domande di scelta: A che choice contiene l'etichetta con la probabilità più alta e un probabilities oggetto che mappa ogni etichetta alla sua probabilità. confidence è un numero da 0 a 1 che indica quanto bene lo stato supporta la valutazione. I probabilities valori sommano a 1. I nomi delle etichette corrispondono esattamente a quelli forniti in criteria.

    {
      "answers": {
        "team": {
          "type": "choice",
          "choice": "shipping",
          "probabilities": {
            "shipping": 0.8,
            "billing": 0.1,
            "technical_support": 0.1
          },
          "confidence": 0.9
        }
      }
    }
    
  • Domande sul punteggio: A che score contiene la media ponderata per probabilità degli indici dei criteri, una legend stringa di indici di mappa (come "0") alle descrizioni originali dei criteri, e un probabilities oggetto che mappa tali indici alle probabilità. confidence è un numero da 0 a 1 che indica quanto bene lo stato supporta la valutazione. I probabilities valori sommano a 1.

    {
      "answers": {
        "urgency": {
          "type": "score",
          "score": 1.5,
          "legend": {
            "0": "Routine request with no time pressure",
            "1": "Time-sensitive issue with a workaround",
            "2": "Critical issue that blocks the customer"
          },
          "probabilities": {
            "0": 0.1,
            "1": 0.3,
            "2": 0.6
          },
          "confidence": 0.8
        }
      }
    }
    

In caso di successo, metadata.version identifica la versione di funzione utilizzata ed error_message è null.

Sul guasto, response è null e error_message descrive il guasto. Tipi di argomento invalidi o definizioni di domande non costanti possono anch'essi causare errori di interrogazione.

Examples

Il seguente esempio mostra come valutare diverse domande in un'unica chiamata. Le risposte generate possono variare tra le chiamate.

Valuta più tipi di domande

Questo esempio valuta un elenco di prodotti per la sua categoria, l'uso di materiali riciclati e l'idoneità per escursioni in condizioni di pioggia:

SELECT ai_decide(
  '{"name": "TrailShell jacket", "description": "Lightweight waterproof hiking jacket made from recycled polyester. Packs into its own pocket."}',
  '{
    "category": {
      "type": "choice",
      "instructions": "Which product category best fits this item?",
      "criteria": {
        "outerwear": "Jackets, coats, and other protective outer layers",
        "footwear": "Shoes, boots, and sandals",
        "accessories": "Bags, hats, and other accessories"
      }
    },
    "recycled_materials": {
      "type": "noul",
      "instructions": "Does the listing state that the product uses recycled materials?"
    },
    "hiking_suitability": {
      "type": "score",
      "instructions": "How suitable is this product for hiking in rainy weather?",
      "criteria": [
        "Not suitable for outdoor use in rain",
        "Offers some protection from rain",
        "Designed for hiking with waterproof protection"
      ]
    }
  }',
  map('version', '1.0')
) AS decision;

Risposta di esempio:

{
  "response": {
    "answers": {
      "category": {
        "type": "choice",
        "choice": "outerwear",
        "probabilities": { "outerwear": 0.95, "footwear": 0.01, "accessories": 0.04 },
        "confidence": 0.95
      },
      "recycled_materials": { "type": "noul", "probability": 0.98 },
      "hiking_suitability": {
        "type": "score",
        "score": 1.8,
        "legend": {
          "0": "Not suitable for outdoor use in rain",
          "1": "Offers some protection from rain",
          "2": "Designed for hiking with waterproof protection"
        },
        "probabilities": { "0": 0.05, "1": 0.1, "2": 0.85 },
        "confidence": 0.9
      }
    }
  },
  "metadata": { "version": "1.0" },
  "error_message": null
}