إنشاء وكيل لاستكشاف البيانات باستخدام الذكاء الاصطناعي مع Gemini

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

تشير رسالة الأشكال البيانية محادثة SQL هو تطبيق مفتوح المصدر يستخدم تكنولوجيا الذكاء الاصطناعي التوليدي الإجابة عن الأسئلة حول بيانات الأعمال. يستخدم المشروع Gemini API ميزة استدعاء الدالة إلى وتحويل الأسئلة حول بيانات النشاط التجاري إلى استعلامات SQL (لغة الاستعلام البنيوية) واستدعاءات واجهة برمجة التطبيقات، ثم لتحويل النتائج مرة أخرى إلى لغة عادية. يمكنك استخدام هذا المشروع نقطة انطلاق لإنشاء وكيل بيانات لنشاطك التجاري الزملاء في الحصول على إجابات دون الحاجة إلى كتابة مجموعة من التعليمات البرمجية أحادية الاستخدام.

للحصول على نظرة عامة بالفيديو على المشروع وكيفية تمديده، بما في ذلك الرؤى من الأشخاص الذين يبنونها، تحقق من وكيل بيانات الذكاء الاصطناعي | إنشاء التطبيقات باستخدام تكنولوجيات الذكاء الاصطناعي من Google بخلاف ذلك، يمكنك البدء في تمديد المشروع باستخدام ما يلي على التعليمات

واجهة مستخدم تطبيق مشروع SQL Talk

الشكل 1. واجهة مستخدم تطبيق مشروع SQL Talk.

إعداد المشروع

ترشدك هذه التعليمات خلال الحصول على إعداد مشروع SQL Talk والتطوير والاختبار. الخطوات العامة هي إنشاء محادثة SQL إعداد محرِّر Google Cloud Shell التطوير والحصول على معرّف مشروع Google Cloud واستخدام البرنامج النصي لتهيئة إعدادات المشروع. تصف هذه التعليمات كيفية تحديد المشروع باستخدام محرر Cloud Shell، وهو ما يجعل عملية إعداد وتحديث المشروع بسرعة وسهولة.

إنشاء مثيل Cloud Shell للمشروع

يمكنك إعداد مشروع SQL Talk عن طريق استنساخ مستودع المشروع في مثيل Cloud Shell تعمل هذه العملية على إعداد بيئة تطوير افتراضية داخل البنية الأساسية في Google Cloud للمشروع ويستنسخ هو مستودع الرموز في تلك البيئة الافتراضية.

لإنشاء مثيل Cloud Shell لـ SQL Talk:

يعمل هذا الرابط على إعداد مثيل "محرّر Google Cloud Shell" ونسخ لـ SQL Talk في المثيل.

محرِّر Google Cloud Shell مع إظهار رمز مشروع SQL Talk

الشكل 2. تم استنساخ مشروع SQL Talk في محرِّر Google Cloud Shell. لتطوير البرامج.

الحصول على رقم تعريف مشروع Cloud

يستخدم مشروع SQL Talk معرّف مشروع Google Cloud للاتصال بخدمة Google Cloud خدمات أخرى، بما في ذلك نماذج Gemini يمكنك تهيئة رقم تعريف مشروع ضمن محرّر Cloud Shell للسماح للتطبيق بالاتصال بهذه الخدمات.

لربط "محرِّر Cloud Shell" برقم تعريف مشروع، اتّبِع الخطوات التالية:

  1. انتقِل إلى Google Cloud. وحدة التحكم وتسجيل الدخول إذا لزم الأمر.
  2. اختيار مشروع حالي على Cloud إنشاء علامة جديدة
  3. دوِّن رقم تعريف مشروع Cloud الخاص بالمشروع.
  4. اربط مثيل "محرّر إعلانات Google" بمشروعك واضبط المشروع. في نافذة "محرّر Cloud Shell"، أدخِل الأمر التالي في اللوحة الطرفية:

    gcloud config set project YOUR_PROJECT_ID
    

إعداد مشروع SQL Talk

يستخدم مشروع SQL Talk خدمات Google Cloud لتشغيل المشروع، بما في ذلك خدمة قاعدة بيانات BigQuery Vertex AI API لربطها بنماذج Gemini يشتمل مشروع SQL Talk على نص برمجي باللغة setup.sh لضبط المشروع. بخدمات Google Cloud المطلوبة ويبدأ تشغيل الإصدار التلقائي من مشروعك.

لضبط مثيل "محرِّر Cloud Shell" للمشروع وتنفيذه:

  1. في اللوحة الطرفية لنافذة محرّر Cloud Shell، انتقل إلى دليل مشروع SQL Talk (/sql-talk-app):

    cd ~/cloudshell_open/generative-ai/gemini/function-calling/sql-talk-app
    
  2. في اللوحة الطرفية، أدخل الأمر التالي:

    bash setup.sh
    

عند اكتمال النص البرمجي للإعداد بنجاح، من المفترض أن تظهر لك رسالة مشابهة إلى ما يلي في النافذة الطرفية لمحرِّر Cloud Shell. هذه الرسالة يشير إلى أن عملية الإعداد كانت ناجحة وأن تطبيق SQL Talk قيد التشغيل:

You can now view your Streamlit app in your browser.
Network URL: http://##.##.##.##:8080
External URL: http://##.##.##.##:8080

اختبار المشروع

بمجرد الانتهاء من إعداد مشروع SQL Talk، يمكنك اختبار التطبيق للتحقق من عمله كما هو متوقع. النص البرمجي للإعداد التطبيق تلقائيًا عند تشغيله، ويمكنك إعادة تشغيل التطبيق باستخدام الخطوات التالية.

لتشغيل تطبيق SQL Talk:

  1. إذا كان "محرِّر Cloud Shell" غير نشِط لفترة قصيرة، قد تحتاج إلى إجراء ما يلي: لإعادة الاتصال برقم تعريف مشروعك على Google Cloud.

    gcloud config set project YOUR_PROJECT_ID
    
  2. في اللوحة الطرفية لنافذة محرّر Cloud Shell، انتقل إلى دليل مشروع SQL Talk في Shell.

    cd ~/cloudshell_open/generative-ai/gemini/function-calling/sql-talk-app
    
  3. في اللوحة الطرفية، أدخل الأمر التالي.

    ~/miniforge/bin/streamlit run app.py --server.enableCORS=false \
        --server.enableXsrfProtection=false --server.port 8080
    
  4. اعرض تطبيق SQL Talk. في أعلى يسار "محرِّر Cloud Shell" انقر على زر معاينة الويب، ثم انقر على المعاينة على المنفذ 8080.

عنوان محرر Cloud Shell مع تمييز زر "معاينة الويب"

لعرض تحديثات تطبيق SQL Talk:

  • في معاينة الويب لتطبيق SQL Talk، أعد تحميل المتصفح أو علامة تبويب المتصفح.

لإيقاف تطبيق SQL Talk:

  • في اللوحة الطرفية لنافذة "محرّر Cloud Shell"، اكتب Ctrl-C.

تعديل التطبيق

يمكنك تغيير السلوك وإضافة إمكانات إلى تطبيق SQL Talk من خلال تعديل رمز Python للتطبيق. يصف هذا القسم كيفية إضافة استدعاء دالة جديد إلى تطبيق SQL Talk.

استدعاء الدوال في Gemini API صيغة معينة لتحديد الدوال التي سيتم استخدامها من قِبل الذكاء الاصطناعي التوليدي نموذج للإجابة عن الأسئلة أو حل المشكلات. لا تحتاج بناء الجملة هذا إلى تتطابق بدقة مع بنية استدعاء واجهة برمجة التطبيقات الفعلي. بدلاً من ذلك، يمكنك استخدام الدالة ميزة استدعاء لإجبار النموذج التوليدي على تقديم مدخلات بيانات محددة أو التي تتوافق مع بنية طلب واجهة برمجة التطبيقات، ثم تستخدم هذه المعلمات وتنفيذ طلبات البيانات من واجهة برمجة التطبيقات في رمز تطبيقك.

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

إضافة تعريف استدعاء الدالة

إضافة استدعاء دالة جديد لسرد طلبات البحث أو المهام الأخيرة في قاعدة البيانات. هذا النمط يستخدم النموذج التوليدي تعريفًا لفهم ما يفعله طلب البيانات من واجهة برمجة التطبيقات ومعلمات الإدخال المطلوبة. هذا المثال لتعريف الدالة هو دون معلمات.

لإضافة استدعاء دالة جديد إلى التطبيق:

  1. في نافذة "محرِّر Cloud Shell"، افتح ملف الترميز sql-talk-app/app.py.
  2. بعد بيان الدالة list_datasets_func، أضِف دالة جديدة FunctionDeclaration

    list_jobs_func = FunctionDeclaration(
        name="list_jobs",
        description="Get a list of the 10 most recent database requests to help answer the user's question",
        parameters={
            "type": "object",
            "properties": {
      },
    },
    )
    
  3. أضِف الدالة الجديدة إلى الكائن sql_query_tool.

    sql_query_tool = Tool(
        function_declarations=[
            sql_query_func,
            list_datasets_func,
            List_jobs_func,  # add this new function
            list_tables_func,
            get_table_func,
        ],
    )
    

لإضافة رمز لتشغيل طلب بيانات من واجهة برمجة التطبيقات للدالة الجديدة:

  • في ملف الترميز sql-talk-app/app.py، أضِف عبارة if جديدة إلى السمة while function_calling_in_process:حلقة.

    if response.function_call.name == "list_datasets":
        ...
    
    # add this if clause for list_jobs function
    if response.function_call.name == "list_jobs":
        api_response = client.list_jobs(max_results=10)  # API request(s)
        api_response = str([job.job_id for job in api_response])
        api_requests_and_responses.append(
          [response.function_call.name,params, api_response])
    

مراجع إضافية

لمزيد من المعلومات حول مشروع استعلام SQL (لغة الاستعلام البنيوية)، اطلع على مستودع الرموز واطّلِع على مشاركة مدوّنة في "منتدى Google Cloud" حول مشروع SQL Talk. إذا كنت بحاجة إلى مساعدة في إنشاء التطبيق أو للتعاون مع مطوّري برامج آخرين، اطّلِع على دليل Google Developers خادم Community Discord منتدى الذكاء الاصطناعي/تعلُّم الآلة في Google Cloud لمزيد من مشاريع "الإنشاء باستخدام الذكاء الاصطناعي من Google"، اطّلِع على قائمة تشغيل الفيديوهات.