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

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

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

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

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

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

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

توجهك هذه التعليمات خلال إعداد مشروع SQL Talk للتطوير والاختبار. تتمثّل الخطوات العامة في إنشاء مشروع SQL Talk، وإعداد مشروع تطوير محرّر 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.

الحصول على رقم تعريف مشروع على السحابة الإلكترونية

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

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

  1. انتقِل إلى وحدة تحكُّم Google Cloud وسجِّل الدخول إذا لزم الأمر.
  2. اختَر مشروعًا حاليًا على Cloud أو أنشِئ مشروعًا جديدًا.
  3. دوِّن رقم تعريف مشروع Cloud الخاص بالمشروع.
  4. اربط نسخة "Editor" (المحرر) بمشروعك واضبط المشروع. في نافذة محرِّر 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"، انتقِل إلى دليل مشروع 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" غير نشِط لفترة قصيرة، قد تحتاج إلى إعادة الاتصال برقم تعريف مشروعك على Cloud.

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

    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"، انقر على الزر Web Preview، ثم اختَر Preview على المنفذ 8080.

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

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

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

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

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

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

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

تستخدم ميزة دالات استدعاء الدوالّ في واجهة برمجة تطبيقات Gemini بنية معيّنة لتحديد الدوال التي سيستخدمها النموذج التوليدي للإجابة عن الأسئلة أو حلّ المسائل. لا يحتاج بناء الجملة هذا إلى أن يطابق بدقة بناء جملة استدعاء واجهة برمجة التطبيقات الفعلي. بدلاً من ذلك، يمكنك استخدام ميزة Function Calling (استدعاء الدالة) لفرض توفير مدخلات بيانات أو معلمات محدّدة تتوافق مع بنية استدعاء واجهة برمجة التطبيقات، ثم استخدام هذه المعلمات لتنفيذ طلبات بيانات من واجهة برمجة التطبيقات الفعلية داخل رمز التطبيق.

يوضح تنفيذ المثال هذا كيفية إنشاء تعريف استدعاء دالة لسرد استعلامات أو مهام قاعدة البيانات الأخيرة، ثم تعيين هذا التعريف إلى استدعاء واجهة برمجة التطبيقات الفعلي داخل التعليمات البرمجية لتطبيق 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 Query، يمكنك الاطّلاع على مستودع الرموز والاطّلاع على مشاركة مدوّنة منتدى Cloud حول مشروع SQL Talk. إذا كنت بحاجة إلى المساعدة في إنشاء التطبيق أو كنت تسعى إلى التعاون مع مطوّرين آخرين، يمكنك مراجعة خادم منتدى Discord لـ Google Developers ومنتدى Google Cloud للذكاء الاصطناعي/تعلُّم الآلة. لمزيد من المعلومات عن مشاريع الذكاء الاصطناعي في Build with Google، يمكنك الاطّلاع على قائمة تشغيل الفيديو.