Použití důvěryhodných prostředků v prostorech AI/BI Genie

Důležité

Tato funkce je ve verzi Public Preview. Viz Povolení prostorů Genie ve vašem pracovním prostoru.

Tento článek definuje důvěryhodné prostředky a vysvětluje, jak je používat k poskytování ověřených odpovědí v prostoru Genie.

Co jsou důvěryhodné prostředky?

Důvěryhodné prostředky jsou předdefinované funkce a ukázkové dotazy, které mají poskytovat ověřené odpovědi na otázky, které očekáváte od uživatelů. Když uživatel odešle otázku, která vyvolá důvěryhodný prostředek, je uvedena v odpovědi a přidává další vrstvu záruky k přesnosti výsledků.

Mezi důvěryhodné prostředky patří:

  • Parametrizované ukázkové dotazy SQL: Když se k vygenerování odpovědi použije parametrizovaný ukázkový dotaz SQL, označí se jako důvěryhodný prostředek. Odpověď obsahuje hodnoty použité jako argumenty v dotazu.
  • Uživatelem definované funkce tabulek (UDF): Můžete definovat vlastní funkce a zaregistrovat je v katalogu Unity. Tyto funkce pak můžete přidat jako důvěryhodné prostředky při nastavování pokynů v prostoru Genie. Viz Vytvoření funkce tabulky SQL a uživatelem definované funkce (UDF) v katalogu Unity.

Ukázková otázka zodpovězená s důvěryhodným assetem

Poznámka:

Důvěryhodné prostředky nejsou náhradou za všechny ostatní pokyny. Databricks doporučuje používat důvěryhodné prostředky pro dobře zavedené opakované otázky. Poskytují přesné odpovědi na konkrétní otázky.

Proč vytvářet důvěryhodné prostředky?

Při použití libovolného nástroje AI by uživatelé měli vyhodnotit přesnost vygenerovaných odpovědí. Obvykle to dělají zvážením, zda odpověď dává smysl a efektivně řeší svou otázku. S Genie se odpověď doručí jako tabulka výsledků. Uživatelé můžou zkontrolovat vygenerovaný SQL, který vytvoří sadu výsledků, ale uživatelé, kteří nejsou technickými uživateli, nemusí mít zkušenosti s interpretem příkazu SQL nebo posoudit správnost odpovědi. Důvěryhodné prostředky pomáhají snížit pravděpodobnost, že tito uživatelé narazí na odpovědi, které jsou zavádějící, nesprávné nebo obtížně interpretovatelné.

Když uživatel obdrží odpověď označenou jako důvěryhodný prostředek, může mít jistotu, že odborník na doménu zkontroloval příkaz SQL vyplňující výsledky.

Jaký je rozdíl mezi důvěryhodnými prostředky a ukázkovými dotazy SQL?

Důvěryhodné prostředky poskytují ověřené odpovědi na otázky, které očekáváte, že se uživatelé prostoru Genie ptají. Pokud důvěryhodný prostředek může odpovědět na otázku uživatele, instrukce, kterou jste uložili jako důvěryhodné prostředky, se spustí a vrátí zadanou sadu výsledků. Všechny funkce SQL, které do pokynů zahrnete, se považují za důvěryhodné prostředky. Příklady dotazů SQL, které obsahují parametry, lze také považovat za důvěryhodné prostředky.

  • FUNKCE SQL: Můžete psát vlastní funkce SQL přizpůsobené pro zpracování dat a řešit otázky specifické pro společnost. Genie při odpovídání na otázky nebere v úvahu obsah SQL vašich důvěryhodných prostředků.
  • Ukázkové dotazy SQL (s parametry):: Když se k vygenerování odpovědi použije přesný text parametrizovaného ukázkového dotazu, odpověď se automaticky označí jako důvěryhodný prostředek. Pokud se přesný text dotazu nepoužívá nebo ukázkový dotaz nepoužívá parametry, poskytne dotaz kontext a provede Genie generováním příkazů SQL ke zpracování dalších otázek.

Definování důvěryhodného prostředku

Definování důvěryhodného prostředku začíná identifikací pravděpodobné otázky. Předpokládejme například, že pracujete s datovou sadou prodejního kanálu a běžnou otázkou, kterou může prodejní manažer položit, je "Co jsou otevřené prodejní příležitosti v mém kanálu?".

Příklad: Použití funkce definované uživatelem

Následující kroky popisují postup vytvoření důvěryhodného prostředku jako uživatelem definovaného uživatelem, který odpovídá na tuto otázku:

  1. Definujte a otestujte dotaz SQL, který odpovídá na otázku.

    Tento dotaz spojí dvě tabulky a vrátí datovou sadu otevřených příležitostí uvedených v kategorii prognózy "Kanál". V tomto kroku je cílem napsat základní dotaz, který vrátí očekávané výsledky.

    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. Definujte funkci Katalogu Unity.

    Funkce Katalogu Unity by měla parametrizovat dotaz a vytvářet výsledky odpovídající konkrétním podmínkám, o kterých očekáváte, že se uživatel zeptá. Předpokládejme, že manažer prodeje chce zúžit sadu výsledků tím, že se zaměří na konkrétní oblast nebo skupinu oblastí.

    Následující příklad definuje funkci Katalogu Unity, která přebírá seznam oblastí jako parametr a vrací tabulku. Vrácení funkce je téměř stejné jako příkaz SQL v předchozím kroku, s výjimkou WHERE klauzule byla upravena tak, aby filtrovala výsledky podle oblasti, pokud byla zadána oblast. Komentáře uvedené v definicích funkce jsou důležité pro instrukci prostoru Genie o tom, kdy a jak tuto funkci vyvolat.

    • Komentáře parametrů: Funkce open_opps_in_region očekává jako parametr pole řetězců. Komentář obsahuje příklad očekávaného vstupu. Pokud není zadán žádný parametr, je výchozí hodnota NULL. Další informace o zahrnutí volitelných parametrů a komentářů najdete v tématu Tipy pro psaní funkcí .
    • Komentáře k funkcím: Komentář ve funkci tabulky SQL poskytuje podrobné vysvětlení toho, co funkce dělá. To je důležité, protože informuje Genie, kdy funkci použít jako odpověď na dotazy uživatelů. Komentář by měl co nejpřesněji popsat účel funkce. Tyto informace provází Genie rozpoznáváním relevance funkce pro konkrétní otázky.
    
    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)
      );
    

    Když spustíte kód pro vytvoření funkce, ve výchozím nastavení se zaregistruje do aktuálně aktivního schématu. Viz uživatelem definované funkce (UDF) v katalogu Unity. Informace o syntaxi a příkladech najdete v tématu Vytvoření funkce tabulky SQL.

  3. Přidejte důvěryhodný prostředek.

    Po vytvoření funkce v Katalogu Unity může uživatel s alespoň oprávněním CAN EDIT v prostoru Genie přidat tuto funkci z karty Instrukce prostoru Genie.

Požadována oprávnění

Uživatelé s alespoň oprávněním CAN EDIT v prostoru Genie mohou přidávat nebo odebírat důvěryhodné prostředky.

Uživatelé prostoru Genie musí mít CAN USE oprávnění k katalogu a schématu obsahujícímu funkci. K vyvolání důvěryhodného prostředku musí mít EXECUTE oprávnění k funkci v katalogu Unity. Zabezpečitelné objekty Unity dědí oprávnění z nadřazených kontejnerů. Viz Zabezpečitelné objekty v katalogu Unity.

Pro zjednodušení sdílení v prostoru Genie doporučuje Databricks vytvořit vyhrazené schéma, které bude obsahovat všechny funkce, které chcete použít ve vašem prostoru Genie.

Tipy pro psaní funkcí

V následujících příkladech se dozvíte, jak vytvořit dynamické funkce pro důvěryhodné prostředky.

Zahrnutí výchozí hodnoty parametru

Můžete zadat výchozí hodnotu parametru. Použijte klauzuli DEFAULT v podpisu funkce, jak je znázorněno v následujícím příkladu:

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

Zahrnout ukázkové hodnoty parametrů

U sloupců se sadou výčtů hodnot zvyšte přesnost tím, že je jasně definujete v komentáři. Následující příklad obsahuje ukázkový seznam hodnot:

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

Vytvoření volitelného parametru

Pokud chcete vytvořit volitelný parametr, nastavte výchozí parametr tak, jak NULL je znázorněno v následujícím příkladu:

min_date STRING DEFAULT NULL

Určení formátování s komentáři

Přesný formát parametru můžete zadat tak, že ho zahrnete do komentáře, jak je znázorněno v následujícím příkladu:

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

Explictly zkontrolovat NULL hodnoty

Pokud zahrnete volitelný parametr, měla by být jedna možná hodnota, kterou byste měli očekávat NULL. Vzhledem k tomu, že porovnání s NULL můžou přinést nepředvídatelné výsledky, měli byste explicitně vytvořit kontrolu NULL hodnot do funkce. Následující příklad obsahuje příklad syntaxe:

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