Sdílet prostřednictvím


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

Tato stránka 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ý zdroj, je to označeno v odpovědi, což poskytuje další úroveň jistoty ohledně přesnosti výsledků.

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

  • parametrizované ukázkové dotazy SQL: Pokud se k vygenerování odpovědi použije parametrizovaný ukázkový dotaz SQL, je označen jako důvěryhodný zdroj. Odpověď obsahuje hodnoty použité jako argumenty v dotazu. Uživatelé mohou upravit hodnotu parametru v odpovědi.
  • uživatelem definované funkce tabulky (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živatelsky definovaných funkcí (UDF) v Unity Catalogu.

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

Poznámka:

Důvěryhodné prostředky nejsou náhradou za jiné 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é, znamená to, že odborník na doménu přidal příkaz SQL použitý k vygenerování výsledků jako instrukce v prostoru.

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ů. Příklady dotazů SQL , které obsahují parametry a funkce SQL , které přidáte do kontextu prostoru, se považují za důvěryhodné prostředky.

  • 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á. Uživatelé prostoru můžou upravit hodnotu parametru v odpovědi a znovu spustit dotaz pomocí nové hodnoty.
  • 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 aktiv.

Poznámka:

Pokud se nepoužívá přesný text dotazu nebo ukázkový dotaz nepoužívá parametry, ukázkové dotazy poskytují kontext a průvodce Genie při generování příkazů SQL, ale nejsou označené jako důvěryhodné.

Definujte důvěryhodný prostředek

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

Příklad: Vytvořit uživatelsky definovanou funkci k zodpovězení otázky

Následující kroky popisují, jak napsat testovací dotaz a použít ho k vytvoření uživatelsky definované funkce:

  1. K definování a otestování dotazu SQL, který odpovídá na otázku, použijte editor SQL nebo poznámkový blok.

Tento dotaz spojí dvě tabulky a vrátí datovou sadu otevřených příležitostí uvedených v kategorii prognózy “Pipeline”. 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%';
  1. 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 například, ž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 tipy pro psaní funkcí.
  • komentáře k funkcím: Komentář v SQL funkci tabulky 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živatelsky definované funkce (UDF) v katalogu Unity. Informace o syntaxi a příkladech najdete v tématu Vytvoření funkce tabulky SQL.

  1. Přidejte důvěryhodné aktivum.

    Po vytvoření funkce v katalogu Unity ji může uživatel s alespoň oprávněním CAN EDIT přidat do prostoru Genie. Klikněte na Konfigurovat>kontextové>dotazy SQL. Potom klikněte na Přidat.

Požadována oprávnění

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

Uživatelé prostoru Genie musí mít oprávnění CAN USE pro katalog a schéma, které obsahuje funkci. Aby mohl využít důvěryhodné aktivum, musí mít k funkci v katalogu Unity oprávnění EXECUTE. 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 na NULL, jak 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'

Explicitně zkontrolujte hodnoty NULL

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ůže přinést nepředvídatelné výsledky, měli byste do funkce explicitně vytvořit kontrolu NULL hodnot. Následující příklad obsahuje příklad syntaxe:

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