Udostępnij za pośrednictwem


Używanie zaufanych zasobów w przestrzeniach AI/BI Genie

W tym artykule zdefiniowano zaufane zasoby i wyjaśniono, jak używać ich do dostarczania zweryfikowanych odpowiedzi w przestrzeni Genie.

Co to są zaufane zasoby?

Zaufane zasoby to wstępnie zdefiniowane funkcje i przykładowe zapytania przeznaczone do zapewnienia zweryfikowanych odpowiedzi na pytania przewidywane przez użytkowników. Gdy użytkownik przesyła pytanie, które wywołuje zaufany zasób, jest wskazane w odpowiedzi, dodając dodatkową warstwę pewności do dokładności wyników.

Zaufane zasoby mogą obejmować następujące elementy:

  • Sparametryzowane przykładowe zapytania SQL: gdy sparametryzowane przykładowe zapytanie SQL jest używane do generowania odpowiedzi, repozytorium jest oznaczone jako zaufany zasób. Odpowiedź zawiera wartości używane jako argumenty w zapytaniu.
  • Funkcje tabeli zdefiniowane przez użytkownika (UDF): można zdefiniować funkcje niestandardowe i zarejestrować je w wykazie aparatu Unity. Następnie możesz dodać te funkcje jako zaufane zasoby podczas konfigurowania instrukcji w obszarze Genie. Zobacz Tworzenie funkcji tabeli SQL i funkcji zdefiniowanych przez użytkownika (UDF) w wykazie aparatu Unity.

Przykładowe pytanie, na które udzielono odpowiedzi na zaufany zasób.

Uwaga

Zaufane zasoby nie są zastępowane wszystkimi innymi instrukcjami. Usługa Databricks zaleca używanie zaufanych zasobów w celu uzyskania dobrze ustalonych pytań cyklicznych. Zapewniają dokładne odpowiedzi na konkretne pytania.

Dlaczego warto tworzyć zaufane zasoby?

W przypadku korzystania z dowolnego narzędzia sztucznej inteligencji użytkownicy powinni ocenić dokładność wygenerowanych odpowiedzi. Zazwyczaj robią to, rozważając, czy odpowiedź ma sens i skutecznie rozwiązuje swoje pytanie. W przypadku usługi Genie odpowiedź jest dostarczana jako tabela wyników. Użytkownicy mogą przejrzeć wygenerowany kod SQL, który tworzy zestaw wyników, ale użytkownicy nietechniczni mogą nie mieć tła w celu zinterpretowania instrukcji SQL lub oceny poprawności odpowiedzi. Zaufane zasoby pomagają zmniejszyć prawdopodobieństwo wystąpienia odpowiedzi, które są mylące, nieprawidłowe lub trudne do zinterpretowania.

Gdy użytkownik otrzyma odpowiedź oznaczona jako zaufany zasób, może mieć pewność, że ekspert domeny przejrzy instrukcję SQL wypełnia wyniki.

Jaka jest różnica między zaufanymi elementami zawartości i przykładowych zapytań SQL?

Zaufane zasoby zapewniają zweryfikowane odpowiedzi na pytania, które mają zadawać użytkownicy obszaru Genie. Gdy zaufany zasób może odpowiedzieć na pytanie użytkownika, instrukcja przechowywana jako zaufany zasób jest uruchamiana i zwraca określony zestaw wyników. Wszystkie funkcje SQL uwzględnione w instrukcjach są traktowane jako zaufane zasoby. Przykładowe zapytania SQL zawierające parametry mogą być również traktowane jako zaufane zasoby.

  • Funkcje SQL: możesz pisać niestandardowe funkcje SQL dostosowane do obsługi danych i radzić sobie z pytaniami specyficznymi dla firmy. Genie nie uwzględnia zawartości SQL zaufanych zasobów podczas odpowiadania na pytania.
  • Przykładowe zapytania SQL (z parametrami): gdy do wygenerowania odpowiedzi jest używany dokładny tekst zapytania przykładowego, odpowiedź jest automatycznie oznaczona jako zaufany zasób. Jeśli dokładny tekst zapytania nie jest używany lub przykładowe zapytanie nie używa parametrów, zapytanie zawiera kontekst i przewodniki Genie podczas generowania instrukcji SQL w celu przetworzenia innych pytań.

Definiowanie zaufanego zasobu

Definiowanie zaufanego zasobu rozpoczyna się od zidentyfikowania prawdopodobnego pytania. Załóżmy na przykład, że pracujesz z zestawem danych potoku sprzedaży i często zadawanym pytaniem, które może zadać menedżer sprzedaży: "Jakie są otwarte możliwości sprzedaży w moim potoku?"

Przykład: używanie funkcji zdefiniowanej przez użytkownika

W poniższych krokach opisano kroki tworzenia zaufanego zasobu jako funkcji zdefiniowanej przez użytkownika, która odpowiada na następujące pytanie:

  1. Zdefiniuj i przetestuj zapytanie SQL, które odpowiada na pytanie.

    To zapytanie łączy dwie tabele i zwraca zestaw danych otwartych szans sprzedaży wymienionych w kategorii prognozy "Potok". W tym kroku celem jest napisanie podstawowego zapytania zwracającego oczekiwane wyniki.

    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. Zdefiniuj funkcję wykazu aparatu Unity.

    Funkcja wykazu aparatu Unity powinna sparametryzować zapytanie i wygenerować wyniki zgodne z określonymi warunkami, o które użytkownik zapyta. Załóżmy, że menedżer sprzedaży chce zawęzić zestaw wyników, koncentrując się na określonym regionie lub grupie regionów.

    W poniższym przykładzie zdefiniowano funkcję wykazu aparatu Unity, która przyjmuje listę regionów jako parametr i zwraca tabelę. Funkcja zwracana jest niemal identyczna z instrukcją SQL w poprzednim kroku, z wyjątkiem WHERE klauzuli została zmodyfikowana w celu filtrowania wyników według regionu, jeśli podano region. Komentarze podane w definicjach funkcji mają kluczowe znaczenie dla poinstruowania miejsca Genie, kiedy i jak wywołać tę funkcję.

    • Komentarze parametrów: open_opps_in_region funkcja oczekuje tablicy ciągów jako parametru. Komentarz zawiera przykład oczekiwanego danych wejściowych. Jeśli parametr nie zostanie podany, wartość domyślna to NULL. Zobacz Porady dotyczące pisania funkcji , aby uzyskać więcej informacji na temat dołączania opcjonalnych parametrów i komentarzy.
    • Komentarze funkcji: komentarz w funkcji tabeli SQL zawiera szczegółowe wyjaśnienie działania funkcji. Jest to krytyczne, ponieważ informuje Genie, kiedy używać funkcji jako odpowiedzi na pytania użytkownika. Komentarz powinien opisywać cel funkcji tak dokładnie, jak to możliwe. Te informacje zawierają przewodniki Genie w rozpoznawaniu istotności funkcji do konkretnych pytań.
    
    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)
      );
    

    Po uruchomieniu kodu w celu utworzenia funkcji jest on domyślnie zarejestrowany w aktualnie aktywnym schemacie. Zobacz Niestandardowe funkcje SQL w wykazie aparatu Unity. Zobacz Tworzenie funkcji tabeli SQL, aby zapoznać się ze składnią i przykładami.

  3. Dodaj zaufany zasób.

    Po utworzeniu funkcji w wykazie aparatu Unity użytkownik z co najmniej uprawnieniem CAN EDIT w obszarze Genie może dodać ją z karty Instrukcje w obszarze Genie.

Wymagane uprawnienia

Użytkownicy z co najmniej uprawnieniem CAN EDIT w obszarze Genie mogą dodawać lub usuwać zaufane zasoby.

Użytkownicy obszaru Genie muszą mieć CAN USE uprawnienia do katalogu i schematu zawierającego funkcję. Aby wywołać zaufany zasób, muszą mieć EXECUTE uprawnienia do funkcji w wykazie aparatu Unity. Zabezpieczane obiekty wykazu aparatu Unity dziedziczą uprawnienia po kontenerach nadrzędnych. Zobacz Zabezpieczane obiekty w wykazie aparatu Unity.

Aby uprościć udostępnianie w przestrzeni Genie, usługa Databricks zaleca utworzenie dedykowanego schematu zawierającego wszystkie funkcje, których chcesz użyć w przestrzeni Genie.

Porady dotyczące pisania funkcji

Zapoznaj się z poniższymi przykładami, aby dowiedzieć się, jak tworzyć funkcje dynamiczne dla zaufanych zasobów.

Uwzględnij domyślną wartość parametru

Możesz określić wartość domyślną parametru. DEFAULT Użyj klauzuli w podpisie funkcji, jak pokazano w poniższym przykładzie:

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

Uwzględnij przykładowe wartości parametrów

W przypadku kolumn z zestawem wyliczenia wartości zwiększ dokładność, definiując je wyraźnie w komentarzu. Poniższy przykład zawiera przykładową listę wartości:

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

Tworzenie opcjonalnego parametru

Aby utworzyć opcjonalny parametr, ustaw parametr domyślny na NULL , jak pokazano w poniższym przykładzie:

min_date STRING DEFAULT NULL

Określanie formatowania z komentarzami

Możesz określić dokładny format parametru, dołączając go do komentarza, jak pokazano w poniższym przykładzie:

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

Explictly check for NULL values (Eksplotowanie wartości)

Jeśli dołączysz opcjonalny parametr, jedną z możliwych wartości, której należy się spodziewać, jest NULL. Ponieważ porównanie z NULL może spowodować nieprzewidywalne wyniki, należy jawnie skompilować sprawdzanie NULL wartości w funkcji. W poniższym przykładzie przedstawiono przykładowe składnie:

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