ai_decide Funkce

Platí pro:označeno jako ano Databricks SQL označeno jako ano Databricks Runtime

Important

Tato funkce je v beta verzi.

Funkce ai_decide() hodnotí jednu nebo více otázek vůči textu nebo strukturovaným datům. U každé otázky vrací buď pravděpodobnost, volbu z pojmenovaných kritérií, nebo skóre na uspořádané škále. Použijte ho k směrování tiketů na podporu, posouzení, zda akce vyžaduje pozornost, nebo k určení priorit podle hodnoticího kritéria, které si sami definujete.

Všechny otázky v hovoru používají stejný vstup, nazývaný state. Můžete kombinovat různé typy otázek v jednom hovoru a použít vrácené odpovědi v SQL dotazech dále po proudu.

Zabezpečení dat

Vaše data dokumentu se zpracovávají v rámci hraniční sítě zabezpečení Databricks. Databricks neukládá parametry, které jsou předávány do volání funkcí AI, ale uchovává metadata o běhu během operací, například použitou verzi Databricks Runtime.

Požadavky

Licence Apache 2.0

Základní modely, které lze v tuto chvíli použít, jsou licencované v rámci licence Apache 2.0, Copyright © Apache Software Foundation. Zákazníci jsou odpovědní za dodržování příslušných modelových licencí.

Databricks doporučuje zkontrolovat tyto licence, abyste zajistili soulad s platnými podmínkami. Pokud se modely objeví v budoucnu, které fungují lépe podle interních srovnávacích testů Databricks, může Databricks změnit model (a seznam použitelných licencí uvedených na této stránce).

Model, který tuto funkci pohání, je zpřístupněn pomocí Model Serving Foundation Model API. Informace o modelech dostupných v Databricks a licencích a zásadách, které řídí používání těchto modelů, najdete v příslušných podmínkách modelu .

Pokud se objeví modely, které fungují lépe podle interních srovnávacích testů Azure Databricks, databricks může změnit modely a aktualizovat dokumentaci.

Syntax

ai_decide(state, questions [, options])

Arguments

  • state: A nebo STRING výraz obsahující VARIANT obsah, kontext a příklady potřebné k zodpovězení otázek. Hodnota se může lišit podle řádku. Přijímá buď:

    • Obsahuje STRING prostý text nebo objekt či pole kódované v JSON. JSON objekty a pole jsou interpretovány jako strukturovaná data. Ostatní řetězce jsou považovány za text.
    • A VARIANT vytvořené jinou funkcí umělé inteligence (například ai_parse_document nebo ai_extract)
  • questions: Konstantní STRING výraz obsahující neprázdný JSON objekt. Každý klíč je neprázdné ID otázky a každá hodnota je definice otázky. Stejné definice platí pro každý řádek. Viz definice otázek.

  • options: volitelný MAP<STRING, STRING> konstantní výraz. Podporovaná možnost je version, s hodnotou '1.0'. Verze 1.0 je výchozí. Pro explicitní specifikaci použijte map('version', '1.0').

Definice otázek

Každá definice otázky vyžaduje type a instructions, plus criteria pokud je vyžadován typem otázky. Požadovaná pole nemohou být .null Jiné obory nejsou podporovány.

  • type: Jeden z noul, choicenebo score.
  • instructions: Instrukce pro vyhodnocení stavu, vyjádřené jako řetězec, JSON objekt nebo JSON pole.
  • criteria: Popisy, které definují, jak odpovědět. Požadovaný tvar závisí na type.

Otázky ohledně Noula

Použijte k noul odhadu pravděpodobnosti, že otázka je pravdivá. Výsledkem je číslo od 0 do 1.

Volitelný criteria objekt může obsahovat true a klávesy false k popisu těchto výsledků. Každý popis může být řetězec, JSON objekt nebo JSON pole. Vynechejte criteria to, když tyto popisy nepotřebujete. Pokud je podáno, criteria musí být objektem a nemůže být 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."
    }
  }
}

Otázky k výběru

Použijte choice k výběru jednoho štítku ze sady pojmenovaných kritérií.

Požadovaný criteria objekt mapuje 1 na 255 neprázdných štítků na popisy. Každý popis může být řetězec, JSON objekt, JSON pole nebo null. Používejte null jen tehdy, když samotné označení popisuje volbu.

{
  "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"
    }
  }
}

Otázky na hodnocení skóre

Použijte score k hodnocení stavu podle uspořádané škály.

Požadované criteria pole obsahuje 2 až 10 popisů, seřazených od nejnižšího po nejvyšší. Každý popis může být řetězec, JSON objekt nebo JSON pole. První kritérium má index 0, další má index 1, a tak dále.

Výsledkem je pravděpodobnostně vážený průměr těchto indexů. Může být zlomková a pohybuje se od 0 počtu kritérií minus jedna. Například pravděpodobnosti 0.1, 0.3, a 0.6 napříč třemi kritérii dávají skóre 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

Vrací a VARIANT s poli response, metadata, a error_message. Pole response obsahuje answers objekt s jedním záznamem na každou otázku. ID otázek přesně odpovídá těm, která jsou uvedena v parametru questions . Každá odpověď obsahuje type pole odpovídající typu otázky: noul, choice, nebo score. Následující příklady ukazují response pole pro každý typ otázky:

  • Noul otázky: A probability od 0 do 1 odhaduje pravděpodobnost, že otázka je pravdivá.

    {
      "answers": {
        "needs_escalation": {
          "type": "noul",
          "probability": 0.1
        }
      }
    }
    
  • Otázky volby: A obsahující choice štítek s nejvyšší pravděpodobností a objekt, probabilities který mapuje každý štítek na jeho pravděpodobnost. confidence je číslo od 0 do 1, které ukazuje, jak dobře stát hodnocení podporuje. Hodnoty probabilities se součtě tvoří 1. Názvy štítků přesně odpovídají těm uvedeným v criteria.

    {
      "answers": {
        "team": {
          "type": "choice",
          "choice": "shipping",
          "probabilities": {
            "shipping": 0.8,
            "billing": 0.1,
            "technical_support": 0.1
          },
          "confidence": 0.9
        }
      }
    }
    
  • Skóre otázky: A obsahující score pravděpodobnostně vážený průměr indexů kritérií, mapovací legend řetězcové indexy (například "0") na původní popisy kritérií a probabilities objekt mapující tyto indexy na pravděpodobnosti. confidence je číslo od 0 do 1, které ukazuje, jak dobře stát hodnocení podporuje. Hodnoty probabilities se součtě tvoří 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
        }
      }
    }
    

Po úspěchu identifikuje metadata.version použitou verzi funkce a error_message je .null

Při selhání response je a nullerror_message popisuje selhání. Neplatné typy argumentů nebo definice nekonstantních otázek mohou také způsobit chyby dotazů.

Příklady

Následující příklad ukazuje, jak hodnotit několik otázek během jednoho hovoru. Generované odpovědi se mohou lišit mezi jednotlivými hovory.

Vyhodnoťte více typů otázek

Tento příklad hodnotí produktový seznam podle kategorie, použití recyklovaných materiálů a vhodnosti pro turistiku v deštivém počasí:

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;

Příklad odpovědi:

{
  "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
}