مشاركة عبر


استخدام الأصول الموثوق بها في مساحات الذكاء الاصطناعي/BI Genie

هام

هذه الميزة في المعاينة العامة. راجع تمكين مساحات Genie في حسابك.

تعرف هذه المقالة الأصول الموثوق بها وتشرح كيفية استخدامها لتوفير إجابات تم التحقق منها في مساحة Genie.

ما هي الأصول الموثوق بها؟

الأصول الموثوق بها هي دالات معرفة مسبقا ونماذج استعلامات تهدف إلى توفير إجابات تم التحقق منها للأسئلة التي تتوقعها من المستخدمين. عندما يرسل المستخدم سؤالا يستدعي أصلا موثوقا به، يشار إليه في الاستجابة، مما يضيف طبقة إضافية من التأكيد إلى دقة النتائج.

يمكن أن تتضمن الأصول الموثوق بها ما يلي:

  • مثال معلمات استعلامات SQL: عند استخدام نموذج معلمات استعلام SQL لإنشاء استجابة، يتم تسمية الرد أصل موثوق به. تتضمن الاستجابة القيم المستخدمة كوسيطات في الاستعلام.
  • دالات الجدول المعرفة من قبل المستخدم (UDFs): يمكنك تعريف الوظائف المخصصة وتسجيلها باستخدام كتالوج Unity. بعد ذلك، يمكنك إضافة هذه الدالات كأصول موثوق بها عند إعداد الإرشادات في مساحة Genie الخاصة بك. راجع إنشاء دالة جدول SQL والوظائف المعرفة من قبل المستخدم (UDFs) في كتالوج Unity.

نموذج سؤال تمت الإجابة عليه باستخدام أصل موثوق به.

إشعار

الأصول الموثوق بها ليست بديلا عن جميع التعليمات الأخرى. توصي Databricks باستخدام الأصول الموثوق بها للأسئلة المتكررة الراسخة. وهي توفر إجابات دقيقة على أسئلة محددة.

لماذا تنشئ أصولا موثوقا بها؟

عند استخدام أي أداة الذكاء الاصطناعي، يجب على المستخدمين تقييم دقة الاستجابات التي تم إنشاؤها. عادة ما يفعلون ذلك من خلال النظر في ما إذا كانت الإجابة منطقية وتعالج سؤالهم بشكل فعال. مع Genie، يتم تقديم استجابة كجدول نتائج. يمكن للمستخدمين مراجعة SQL التي تم إنشاؤها والتي تنشئ مجموعة النتائج، ولكن قد لا يكون لدى المستخدمين غير التقنيين الخلفية لتفسير عبارة SQL أو تقييم صحة الإجابة. تساعد الأصول الموثوق بها في تقليل احتمالية أن يواجه هؤلاء المستخدمون استجابات مضللة أو غير صحيحة أو يصعب تفسيرها.

عندما يتلقى المستخدم استجابة تسمى كأصل موثوق به، يمكنه أن يكون واثقا من أن خبير المجال قد راجع بيان SQL الذي يملأ النتائج.

ما الفرق بين الأصول الموثوق بها واستعلامات SQL النموذجية؟

توفر الأصول الموثوق بها إجابات تم التحقق منها على الأسئلة التي تتوقع أن يطرحها مستخدمو مساحة Genie. عندما يمكن لأصل موثوق به الإجابة عن سؤال المستخدم، يتم تشغيل التعليمات التي قمت بتخزينها كأصل موثوق به وإرجاع مجموعة النتائج المحددة. يتم التعامل مع جميع وظائف SQL التي تقوم بتضمينها في الإرشادات على أنها أصول موثوق بها. يمكن أيضا التعامل مع استعلامات SQL المثال التي تتضمن معلمات على أنها أصول موثوق بها.

  • وظائف SQL: يمكنك كتابة وظائف SQL مخصصة مصممة للتعامل مع بياناتك ومعالجة الأسئلة الخاصة بالشركة. لا يأخذ Genie في الاعتبار محتوى SQL لأصولك الموثوق بها عند الرد على الأسئلة.
  • مثال استعلامات SQL (مع المعلمات): عند استخدام نص استعلام مثال محدد المعلمات لإنشاء استجابة، يتم تسمية الاستجابة تلقائيا على أنها أصل موثوق به. إذا لم يتم استخدام النص الدقيق للاستعلام، أو لم يستخدم الاستعلام المثال المعلمات، يوفر الاستعلام سياقا ويرشد Genie في إنشاء عبارات SQL لمعالجة الأسئلة الأخرى.

تعريف أصل موثوق به

يبدأ تعريف أصل موثوق به بتحديد سؤال مرجح. على سبيل المثال، افترض أنك تعمل مع مجموعة بيانات مسار المبيعات، والسؤال الشائع الذي قد يطرحه مدير المبيعات هو " ما هي فرص المبيعات المفتوحة في خط الأنابيب الخاص بي؟"

مثال: استخدام UDF

توضح الخطوات التالية خطوات إنشاء أصل موثوق به، ك UDF، الذي يجيب على هذا السؤال:

  1. حدد استعلام SQL الذي يجيب على السؤال واختبره.

    ينضم هذا الاستعلام إلى جدولين ويعيد مجموعة بيانات من الفرص المفتوحة المدرجة في فئة التنبؤ "Pipeline". في هذه الخطوة، الهدف هو كتابة استعلام أساسي يرجع النتائج المتوقعة.

    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.

    يجب أن تحدد دالة كتالوج Unity معلمات الاستعلام وتنتج نتائج مطابقة للشروط المحددة التي تتوقع أن يسأل عنها المستخدم. لنفترض أن مدير المبيعات يريد تضييق نطاق مجموعة النتائج من خلال التركيز على منطقة معينة أو مجموعة من المناطق.

    يعرف المثال التالي دالة كتالوج Unity التي تأخذ قائمة المناطق كمعلمة وترجع جدولا. إرجاع الدالة مطابق تقريبا لجملة SQL في الخطوة السابقة، باستثناء WHERE أنه تم تعديل العبارة لتصفية النتائج حسب المنطقة إذا تم توفير منطقة. التعليقات المقدمة في تعريفات الدالة مهمة لإرشاد مساحة Genie حول وقت وكيفية استدعاء هذه الدالة.

    • تعليقات المعلمة: open_opps_in_region تتوقع الدالة صفيف سلاسل كمعلمة. يتضمن التعليق مثالا على الإدخال المتوقع. إذا لم يتم توفير معلمة، فإن القيمة الافتراضية هي NULL. راجع تلميحات لكتابة الوظائف لمزيد من المعلومات حول تضمين المعلمات والتعليقات الاختيارية.
    • تعليقات الدالة: يوفر التعليق في دالة جدول SQL شرحا مفصلا لما تقوم به الدالة. هذا أمر بالغ الأهمية لأنه يعلم Genie متى تستخدم الدالة كاستجابة لأسئلة المستخدم. يجب أن يصف التعليق الغرض من الدالة بأقصى دقة ممكنة. ترشد هذه المعلومات Genie في التعرف على صلة الوظيفة بأسئلة محددة.
    
    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)
      );
    

    عند تشغيل التعليمات البرمجية لإنشاء دالة، يتم تسجيلها في المخطط النشط حاليا بشكل افتراضي. راجع الدالات المعرفة من قبل المستخدم (UDFs) في كتالوج Unity. راجع إنشاء دالة جدول SQL لبناء الجملة والأمثلة.

  3. إضافة أصل موثوق به.

    بعد إنشاء الدالة في كتالوج Unity، يمكن للمستخدم الذي لديه إذن CAN EDIT على الأقل في مساحة Genie إضافتها من علامة التبويب Instructions في مساحة Genie.

الأذونات المطلوبة

يمكن للمستخدمين الذين لديهم إذن تحرير على الأقل على مساحة Genie إضافة أصول موثوق بها أو إزالتها.

يجب أن يكون لدى CAN USE مستخدمي مساحة Genie إذن على الكتالوج والمخطط الذي يحتوي على الوظيفة. لاستدعاء أصل موثوق به، يجب أن يكون لديهم EXECUTE إذن على الدالة في كتالوج Unity. ترث الكائنات القابلة للتأمين لكتالوج Unity الأذونات من حاوياتها الأصلية. راجع الكائنات القابلة للتأمين في كتالوج Unity.

لتبسيط المشاركة في مساحة Genie، توصي Databricks بإنشاء مخطط مخصص لاحتواء جميع الوظائف التي تريد استخدامها في مساحة Genie الخاصة بك.

تلميحات لكتابة الدوال

راجع الأمثلة التالية لمعرفة كيفية إنشاء وظائف ديناميكية للأصول الموثوق بها.

تضمين قيمة معلمة افتراضية

يمكنك تحديد قيمة افتراضية لمعلمة. استخدم العبارة DEFAULT في توقيع الدالة كما هو موضح في المثال التالي:

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

تضمين قيم معلمات المثال

بالنسبة للأعمدة التي تحتوي على تعداد مجموعة من القيم، قم بزيادة الدقة عن طريق تعريفها بوضوح في التعليق. يوفر المثال التالي قائمة عينة من القيم:

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

إنشاء معلمة اختيارية

لإنشاء معلمة اختيارية، قم بتعيين المعلمة الافتراضية إلى NULL كما هو موضح في المثال التالي:

min_date STRING DEFAULT NULL

تحديد التنسيق باستخدام التعليقات

يمكنك تحديد تنسيق دقيق لمعلمة عن طريق تضمينه في تعليق، كما هو موضح في المثال التالي:

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

التحقق NULL من القيم بشكل Explictly

إذا قمت بتضمين معلمة اختيارية، فإن إحدى القيم المحتملة التي يجب أن تتوقعها هي NULL. نظرا لأن المقارنة مع NULL يمكن أن تسفر عن نتائج غير متوقعة، يجب عليك إنشاء فحص صريح للقيم NULL في الدالة الخاصة بك. يوفر المثال التالي مثالا لبناء الجملة:

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