Freigeben über


Verwenden vertrauenswürdiger Ressourcen in AI/BI Genie Spaces

Wichtig

Dieses Feature befindet sich in der Public Preview. Weitere Informationen finden Sie unter Aktivieren von Genie-Räumen in Ihrem Arbeitsbereich.

In diesem Artikel werden vertrauenswürdige Ressourcen definiert und erläutert, wie sie verwendet werden, um überprüfte Antworten in einem Genie-Bereich bereitzustellen.

Was sind vertrauenswürdige Ressourcen?

Vertrauenswürdige Ressourcen sind vordefinierte Funktionen und Beispielabfragen, die überprüfte Antworten auf Fragen bereitstellen sollen, die Sie von Benutzern erwarten. Wenn ein Benutzer eine Frage sendet, die eine vertrauenswürdige Ressource aufruft, wird er in der Antwort angegeben und fügt der Genauigkeit der Ergebnisse eine zusätzliche Zuverlässigkeitsebene hinzu.

Vertrauenswürdige Ressourcen sind z. B. die folgenden:

  • Parametrisierte Beispiel-SQL-Abfragen: Wenn eine parametrisierte SQL-Beispielabfrage zum Generieren einer Antwort verwendet wird, wird die Antwort als vertrauenswürdige Ressource bezeichnet. Die Antwort enthält die Werte, die in der Abfrage als Argumente verwendet werden.
  • Benutzerdefinierte Tabellenfunktionen (UDFs): Sie können benutzerdefinierte Funktionen definieren und bei Unity Catalog registrieren. Dann können Sie diese Funktionen als vertrauenswürdige Ressourcen hinzufügen, wenn Sie Anweisungen in Ihrem Genie-Bereich einrichten. Siehe Erstellen einer SQL-Tabellenfunktion und benutzerdefinierte Funktionen (USER-Defined Functions, UDFs) im Unity Catalog.

Beispielfrage, die mit einer vertrauenswürdigen Ressource beantwortet wurde.

Hinweis

Vertrauenswürdige Ressourcen sind kein Ersatz für alle anderen Anweisungen. Databricks empfiehlt die Verwendung vertrauenswürdiger Ressourcen für bewährte wiederkehrende Fragen. Sie bieten genaue Antworten auf bestimmte Fragen.

Warum vertrauenswürdige Ressourcen erstellen?

Bei Verwendung eines KI-Tools sollten Benutzer die Genauigkeit der generierten Antworten bewerten. In der Regel prüfen sie dabei, ob die Antwort sinnvoll ist und ihre Frage tatsächlich beantwortet. Mit Genie wird eine Antwort in Form einer Ergebnistabelle geliefert. Die Benutzer können die generierte SQL-Anweisung, die das Resultset erzeugt, überprüfen, aber technisch nicht versierte Benutzer haben möglicherweise nicht das nötige Hintergrundwissen, um die SQL-Anweisung zu interpretieren oder die Korrektheit der Antwort zu beurteilen. Vertrauenswürdige Ressourcen helfen dabei, die Wahrscheinlichkeit zu verringern, dass diese Benutzer auf Antworten stoßen, die irreführend, falsch oder schwer zu interpretieren sind.

Wenn ein Benutzer eine Antwort erhält, die als vertrauenswürdige Ressource bezeichnet wird, kann er sicher sein, dass ein Domänenexperte die SQL-Anweisung überprüft hat, die die Ergebnisse auffüllt.

Was ist der Unterschied zwischen vertrauenswürdigen Ressourcen und Beispiel-SQL-Abfragen?

Verwenden Sie vertrauenswürdige Ressourcen, um überprüfte Antworten auf bestimmte Fragen bereitzustellen, die von Benutzern gestellt werden. Wenn eine vertrauenswürdige Ressource die Frage eines Benutzers beantworten kann, wird die Anweisung, die Sie als vertrauenswürdige Ressource gespeichert haben, ausgeführt und gibt das angegebene Resultset zurück. Alle SQL-Funktionen, die Sie in die Anweisungen einbeziehen, werden als vertrauenswürdige Ressourcen behandelt. Beispiel-SQL-Abfragen, die Parameter enthalten, können auch als vertrauenswürdige Ressourcen behandelt werden.

  • SQL-Funktionen: Sie können benutzerdefinierte SQL-Funktionen schreiben, die auf ihre Daten zugeschnitten sind, und unternehmensspezifische Fragen behandeln. Genie berücksichtigt nicht den SQL-Inhalt Ihrer vertrauenswürdigen Ressourcen bei der Beantwortung von Fragen.
  • Beispiel-SQL-Abfragen (mit Parametern): Wenn der genaue Text einer parametrisierten Beispielabfrage zum Generieren einer Antwort verwendet wird, wird die Antwort automatisch als vertrauenswürdige Ressource bezeichnet. Wenn der genaue Text der Abfrage nicht verwendet wird oder die Beispielabfrage keine Parameter verwendet, stellt die Abfrage Kontext bereit und leitet Genie beim Generieren der SQL-Anweisungen zum Verarbeiten anderer Fragen.

Definieren einer vertrauenswürdigen Ressource

Das Definieren einer vertrauenswürdigen Ressource beginnt mit der Identifizierung einer wahrscheinlichen Frage. Angenommen, Sie arbeiten mit einem Dataset für Vertriebspipelines und eine häufige Frage, die ein Vertriebsleiter möglicherweise stellen kann, lautet: "Was sind die offenen Verkaufschancen in meiner Pipeline?"

Beispiel: Verwenden einer UDF

In den folgenden Schritten werden die Schritte zum Erstellen einer vertrauenswürdigen Ressource als UDF beschrieben, die diese Frage beantwortet:

  1. Definieren und testen Sie eine SQL-Abfrage, die die Frage beantwortet.

    Diese Abfrage verknüpft zwei Tabellen und gibt ein Dataset mit offenen Verkaufschancen zurück, die in der Prognosekategorie "Pipeline" aufgeführt sind. In diesem Schritt besteht das Ziel darin, eine einfache Abfrage zu schreiben, die die erwarteten Ergebnisse zurückgibt.

    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. Definieren Sie eine Unity Catalog-Funktion.

    Ihre Unity-Katalogfunktion sollte die Abfrage parametrisieren und Ergebnisse erzeugen, die den spezifischen Bedingungen entsprechen, zu denen ein Benutzer oder eine Benutzerin möglicherweise Fragen hat. Angenommen, der Vertriebsmanager möchte das Resultset einschränken, indem er sich auf eine bestimmte Region oder Gruppe von Regionen konzentriert.

    Im folgenden Beispiel wird eine Unity-Katalogfunktion definiert, die eine Liste von Regionen als Parameter akzeptiert und eine Tabelle zurückgibt. Die Funktionsrückgabe ist fast identisch mit der SQL-Anweisung im vorherigen Schritt, mit der Ausnahme, dass die WHERE Klausel geändert wurde, um die Ergebnisse nach Region zu filtern, wenn eine Region bereitgestellt wurde. Die in den Funktionsdefinitionen enthaltenen Kommentare sind entscheidend, um den Genie-Raum anzuweisen, wann und wie diese Funktion aufgerufen werden kann.

    • Parameterkommentare: Die Funktion open_opps_in_region erwartet ein Array von Zeichenfolgen als Parameter. Der Kommentar enthält ein Beispiel für die erwartete Eingabe. Wenn kein Parameter angegeben wird, ist der Standardwert NULL. Weitere Informationen zum Einfügen optionaler Parameter und Kommentare finden Sie unter Tipps zum Schreiben von Funktionen .
    • Funktionskommentare: Der Kommentar in der SQL-Tabellenfunktion erläutert, was die Funktion tut. Dies ist wichtig, weil es Genie informiert, wann die Funktion als Antwort auf Benutzerfragen verwendet werden soll. Der Kommentar sollte den Zweck der Funktion so genau wie möglich beschreiben. Diese Information führt Genie dazu, die Relevanz der Funktion für bestimmte Fragen zu erkennen.
    
    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)
      );
    

    Wenn Sie den Code ausführen, um eine Funktion zu erstellen, wird er standardmäßig für das derzeit aktive Schema registriert. Weitere Informationen finden Sie unter User-defined functions (UDFs) in Unity Catalog (Benutzerdefinierte Funktionen (UDFs) in Unity Catalog). Informationen zu Syntax und Beispielen finden Sie unter Erstellen einer SQL-Tabellenfunktion.

  3. Fügen Sie eine vertrauenswürdige Ressource hinzu.

    Nach der Erstellung der Funktion in Unity Catalog kann ein Benutzer mit mindestens der Berechtigung „KANN BEARBEITEN“ sie im Genie-Raum auf der Registerkarte Anweisungen des Genie-Raums hinzufügen.

Erforderliche Berechtigungen

Benutzer mit mindestens der Berechtigung „KANN BEARBEITEN“ für einen Genie-Raum können vertrauenswürdige Ressourcen hinzufügen oder entfernen.

Benutzer und Benutzerinnen des Genie-Raums müssen über die Berechtigung CAN USE für den Katalog und das Schema verfügen, das die Funktion enthält. Um eine vertrauenswürdige Ressource aufzurufen, müssen sie über die Berechtigung EXECUTE für die Funktion in Unity Catalog verfügen. Objekte, die in Unity Catalog gesichert werden können, erben Berechtigungen von ihren übergeordneten Containern. Siehe Sicherungsfähige Objekte in Unity Catalog.

Um die Freigabe in einem Genie-Raum zu vereinfachen, empfiehlt Azure Databricks, ein dediziertes Schema zu erstellen, das alle Funktionen enthält, die Sie in Ihrem Genie-Raum verwenden möchten.

Tipps zum Schreiben von Funktionen

In den folgenden Beispielen erfahren Sie, wie Sie dynamische Funktionen für vertrauenswürdige Ressourcen erstellen.

Einschließen eines Standard-Parameterwerts

Sie können für einen Parameter keinen Standardwert angeben. Verwenden Sie die DEFAULT-Klausel in der Funktionssignatur, wie im folgenden Beispiel gezeigt:

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

Beispielparameterwerte einschließen

Erhöhen Sie bei Spalten mit einer festgelegten Enumeration von Werten die Genauigkeit, indem Sie sie im Kommentar deutlich definieren. Im folgenden Beispiel wird eine Beispielliste mit Werten bereitgestellt:

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

Einen optionaler Parameter erstellen

Um einen optionalen Parameter zu erstellen, legen Sie den Standardparameter wie im folgenden Beispiel gezeigt auf NULL fest:

min_date STRING DEFAULT NULL

Formatierung mit Kommentaren angeben

Sie können ein genaues Format für einen Parameter angeben, indem Sie ihn in einen Kommentar einschließen, wie im folgenden Beispiel gezeigt:

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

Genau überprüfen auf NULL-Werte

Wenn Sie einen optionalen Parameter angeben, sollte der mögliche Wert NULL erwartet werden. Da ein Vergleich mit NULL zu unvorhersehbaren Ergebnissen führen kann, sollten Sie explizit eine Überprüfung auf NULL-Werte in Ihrer Funktion erstellen. Im folgenden Beispiel finden Sie Syntaxbeispiele.

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