Aracılığıyla paylaş


AI/BI Genie alanlarında güvenilen varlıkları kullanma

Bu makalede güvenilir varlıklar tanımlanmaktadır ve genie alanında doğrulanmış yanıtlar sağlamak için bunların nasıl kullanılacağı açıklanmaktadır.

Güvenilen varlıklar nelerdir?

Güvenilen varlıklar, kullanıcılardan tahmin ettiğiniz sorulara doğrulanmış yanıtlar sağlamak için kullanılan önceden tanımlanmış işlevler ve örnek sorgulardır. Kullanıcı güvenilir bir varlığı çağıran bir soru gönderdiğinde yanıtta belirtilir ve sonuçların doğruluğuna ek bir güvence katmanı eklenir.

Güvenilen varlıklar aşağıdakileri içerebilir:

  • Parametreli örnek SQL sorguları: Yanıt oluşturmak için parametreli bir örnek SQL sorgusu kullanıldığında, reponse güvenilir bir varlık olarak etiketlenmiştir. Yanıt, sorguda bağımsız değişken olarak kullanılan değerleri içerir.
  • Kullanıcı tanımlı tablo işlevleri (UDF): Özel işlevler tanımlayabilir ve unity kataloğuna kaydedebilirsiniz. Ardından Genie alanınızda yönergeleri ayarlarken bu işlevleri güvenilir varlıklar olarak ekleyebilirsiniz. Bkz. Unity Kataloğu'nda SQL tablo işlevi ve Kullanıcı tanımlı işlevler (UDF) oluşturma.

Örnek soru güvenilir bir varlıkla yanıtlandı.

Not

Güvenilen varlıklar diğer tüm yönergelerin yerine geçmez. Databricks, iyi oluşturulmuş yinelenen sorular için güvenilir varlıkların kullanılmasını önerir. Belirli soruların tam yanıtlarını sağlar.

Neden güvenilir varlıklar oluşturulsun?

Herhangi bir yapay zeka aracını kullanırken, kullanıcıların oluşturulan yanıtların doğruluğunu değerlendirmesi gerekir. Genellikle, yanıtın mantıklı olup olmadığını ve sorularını etkili bir şekilde ele alıp almadığını göz önünde bulundurarak bunu yaparlar. Genie ile yanıt, sonuç tablosu olarak teslim edilir. Kullanıcılar, sonuç kümesini oluşturan oluşturulan SQL'i gözden geçirebilir, ancak teknik olmayan kullanıcılar SQL deyimini yorumlamak veya yanıtın doğruluğunu değerlendirmek için arka plana sahip olmayabilir. Güvenilen varlıklar, bu kullanıcıların yanıltıcı, yanlış veya yorumlanması zor yanıtlarla karşılaşma olasılığını azaltmaya yardımcı olur.

Kullanıcı güvenilir varlık olarak etiketlenmiş bir yanıt aldığında, etki alanı uzmanının sonuçları dolduran SQL deyimini gözden geçirmesine güvenebilir.

Güvenilen varlıklar ile örnek SQL sorguları arasındaki fark nedir?

Güvenilir varlıklar, Genie uzay kullanıcılarının sormasını beklediğiniz sorulara doğrulanmış yanıtlar sağlar. Güvenilen varlık bir kullanıcının sorusunu yanıtladığında, güvenilen varlık olarak depoladığınız yönerge çalıştırılır ve belirtilen sonuç kümesini döndürür. Yönergelere eklediğiniz tüm SQL İşlevleri güvenilir varlıklar olarak değerlendirilir. Parametre içeren örnek SQL Sorguları güvenilir varlıklar olarak da ele alınabilir.

  • SQL İşlevleri: Verilerinizi işlemek ve şirkete özgü soruları ele almak için özel SQL işlevleri yazabilirsiniz. Genie, sorulara yanıt verirken güvenilir varlıklarınızın SQL içeriğini dikkate almaz.
  • Örnek SQL Sorguları (parametrelerle): Bir yanıt oluşturmak için parametreli örnek sorgunun tam metni kullanıldığında, yanıt otomatik olarak güvenilir varlık olarak etiketlendirilir. Sorgunun tam metni kullanılmazsa veya örnek sorgu parametreleri kullanmıyorsa, sorgu bağlam sağlar ve diğer soruları işlemek için SQL deyimlerini oluşturmada Genie'ye yol gösterir.

Güvenilen varlık tanımlama

Güvenilir varlık tanımlama, olası bir soruyu belirlemeyle başlar. Örneğin, bir satış işlem hattı veri kümesiyle çalıştığınızı ve bir satış yöneticisinin sorabileceği yaygın sorulardan biri şudur: "İşlem hattımdaki açık satış fırsatları nelerdir?"

Örnek: UDF kullanma

Aşağıdaki adımlarda, bu soruyu yanıtlayan bir UDF olarak güvenilir varlık oluşturma adımları özetlenmiştir:

  1. Soruyu yanıtlayan bir SQL sorgusu tanımlayın ve test edin.

    Bu sorgu iki tabloyu birleştirir ve "İşlem Hattı" tahmin kategorisinde listelenen açık fırsatlardan oluşan bir veri kümesi döndürür. Bu adımda amaç, beklenen sonuçları döndüren temel bir sorgu yazmaktır.

    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. Unity Kataloğu işlevi tanımlayın.

    Unity Kataloğu işleviniz sorguyu parametreleştirmeli ve kullanıcının sormasını beklediğiniz belirli koşullarla eşleşen sonuçlar üretmelidir. Satış yöneticisinin belirli bir bölgeye veya bölge grubuna odaklanarak sonuç kümesini daraltmak istediğini varsayalım.

    Aşağıdaki örnek, bölgelerin listesini parametre olarak alan ve tablo döndüren bir Unity Kataloğu işlevini tanımlar. bir bölge sağlanmışsa sonuçları bölgeye göre filtrelemek için yan tümcesinin değiştirilmesi dışında WHERE işlev döndürmesi önceki adımdaki SQL deyimiyle neredeyse aynıdır. İşlev tanımlarında sağlanan açıklamalar Genie alanına bu işlevin ne zaman ve nasıl çağrılması konusunda yönerge vermek için kritik öneme sahiptir.

    • Parametre açıklamaları: open_opps_in_region İşlev, parametre olarak bir dizi dize bekler. Açıklama, beklenen girişin bir örneğini içerir. Parametre sağlanmazsa, varsayılan değer olur NULL. İsteğe bağlı parametreler ve açıklamalar dahil olmak üzere daha fazla bilgi için bkz . İşlev yazma ipuçları.
    • İşlev açıklamaları: SQL tablo işlevindeki açıklama, işlevin ne yaptığına ilişkin ayrıntılı bir açıklama sağlar. Bu, Genie'ye işlevin kullanıcı sorularına yanıt olarak ne zaman kullanılacağını bildirdiğinden kritik önem taşır. Açıklama işlevin amacını mümkün olduğunca hassas bir şekilde açıklamalıdır. Bu bilgiler Genie'ye işlevin belirli sorularla ilgisi olduğunu fark etme konusunda yol gösterir.
    
    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)
      );
    

    İşlev oluşturmak için kodu çalıştırdığınızda, bu kod varsayılan olarak etkin olan şemaya kaydedilir. Bkz . Unity Kataloğu'nda Kullanıcı tanımlı işlevler (UDF' ler). Söz dizimi ve örnekler için bkz . SQL tablosu işlevi oluşturma.

  3. Güvenilir bir varlık ekleyin.

    İşlev Unity Kataloğu'nda oluşturulduktan sonra, Genie alanında en azından CAN EDIT iznine sahip bir kullanıcı bunu Genie alanının Yönergeler sekmesinden ekleyebilir.

Gerekli izinler

Genie alanında en azından CAN EDIT iznine sahip kullanıcılar güvenilen varlıkları ekleyebilir veya kaldırabilir.

Genie space kullanıcılarının işlevi içeren katalog ve şema üzerinde izni olmalıdır CAN USE . Güvenilen bir varlığı çağırmak için Unity Kataloğu'nda işlev üzerinde izni olmalıdır EXECUTE . Unity Kataloğu güvenli hale getirilebilir nesneler izinleri üst kapsayıcılarından devralır. Bkz . Unity Kataloğu'nda güvenliği sağlanabilir nesneler.

Bir Genie alanında paylaşımı basitleştirmek için Databricks, Genie alanınızda kullanmak istediğiniz tüm işlevleri içerecek ayrılmış bir şema oluşturmanızı önerir.

İşlev yazma ipuçları

Güvenilen varlıklar için dinamik işlevler oluşturmayı öğrenmek için aşağıdaki örnekleri gözden geçirin.

Varsayılan parametre değeri ekle

Parametre için varsayılan bir değer belirtebilirsiniz. DEFAULT Aşağıdaki örnekte gösterildiği gibi işlev imzasında yan tümcesini kullanın:

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

Örnek parametre değerlerini ekle

Değerlerin ayarlanmış bir numaralandırması olan sütunlar için, bunları açıklamada açıkça tanımlayarak doğruluğu artırın. Aşağıdaki örnek, değerlerin örnek bir listesini sağlar:

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

İsteğe bağlı parametre oluşturma

İsteğe bağlı bir parametre oluşturmak için aşağıdaki örnekte gösterildiği gibi varsayılan parametreyi NULL olarak ayarlayın:

min_date STRING DEFAULT NULL

Açıklamalarla biçimlendirme belirtme

Aşağıdaki örnekte gösterildiği gibi, bir parametreyi açıklamaya ekleyerek tam bir biçim belirtebilirsiniz:

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

Değerleri hızlı bir şekilde denetleme NULL

İsteğe bağlı bir parametre eklerseniz, beklemeniz gereken olası değerlerden biri olur NULL. ile NULL karşılaştırması öngörülemeyen sonuçlara neden olabileceği için NULL , işlevinizde açıkça değer denetimi oluşturmanız gerekir. Aşağıdaki örnekte örnek söz dizimi verilmiştir:

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