יצירת סוכן לניתוח נתונים באמצעות AI באמצעות Gemini

פיתוח ממשק צ'אט מבוסס בינה מלאכותית (AI) לעסק לממשקי תכנות של המערכת ולאפשר לעמיתים שלך לשאול שאלות לגבי נתונים עסקיים. ביצוע ניתוח ודיווח על נתוני הארגון חיוני לשיפור האופן שבו אתם עושים עסקים. איתור בעיות, גילוי וחקירת התוצאות אפשרית עם הנתונים הנכונים, עוזר לעמיתים שלא מתכנתים לגלות את הנתונים הנכונים מאתגר.

SQL Talk הוא אפליקציית קוד פתוח שמשתמשת בטכנולוגיית בינה מלאכותית גנרטיבית לענות על שאלות לגבי נתונים עסקיים. בפרויקט אנחנו משתמשים ב-Gemini API התכונה שליחת קריאה לפונקציה כדי להמיר שאלות על נתונים עסקיים לשאילתות SQL וקריאות ל-API. לאחר מכן ולהמיר את התוצאות בחזרה לשפה פשוטה. אפשר להשתמש בפרויקט הזה בתור שבו אתם יכולים לבנות סוכן נתונים לעסק שלכם, ויעזרו לכם מקבלים תשובות בלי שתצטרכו לכתוב הרבה קוד לשימוש חד-פעמי.

לצפייה בסרטון סקירה כללית של הפרויקט והסבר על הארכתו, כולל תובנות מהאנשים שבונים אותו, סוכן נתונים מבוסס-AI | פיתוח באמצעות AI מבית Google. אם לא, תוכלו להתחיל להרחיב את הפרויקט באמצעות הוראות להתאמה אישית.

ממשק משתמש לאפליקציה של פרויקט SQL Talk

איור 1. ממשק משתמש לאפליקציה של פרויקט SQL Talk.

הגדרת פרויקט

ההוראות הבאות מסבירים איך להגדיר את פרויקט SQL Talk עבור פיתוח ובדיקה. השלבים הכלליים הם כדי ליצור את פרויקט, הגדרת Google Cloud Shell Editor של פרויקט פיתוח, קבלת מזהה פרויקט ב-Google Cloud ושימוש סקריפט כדי לקבוע את הגדרות הפרויקט. בהוראות האלה מוסבר איך להגדיר את הפרויקט באמצעות Cloud Shell Editor, מה שמאפשר להגדיר, ולעדכן את הפרויקט במהירות ובנוחות.

יצירת מכונה של Cloud Shell לפרויקט

תוכלו להגדיר את הפרויקט של SQL Talk על ידי שכפול מאגר הפרויקט מופע של Cloud Shell. התהליך הזה מגדיר סביבת פיתוח וירטואלית בתשתית של Google Cloud עבור הפרויקט, ותשכפל את בתוך אותה סביבה וירטואלית.

כדי ליצור מכונה של Cloud Shell ל-SQL Talk:

הקישור הזה מגדיר מופע של Google Cloud Shell Editor ומשכפל את ל-SQL Talk במכונה.

עורך Google Cloud Shell עם קוד הפרויקט של SQL Talk שמוצג

איור 2. פרויקט SQL Talk שוכפל ל-Google Cloud Shell Editor סביבת פיתוח.

קבלת מזהה של פרויקט ב-Cloud

פרויקט SQL Talk משתמש במזהה פרויקט ב-Google Cloud כדי להתחבר ל-Google Cloud כולל המודלים של Gemini. אתם מגדירים מזהה פרויקט Cloud Shell Editor מאפשר לאפליקציה להתחבר לשירותים האלה.

כדי לחבר את Cloud Shell Editor למזהה פרויקט:

  1. נכנסים אל Google Cloud במסוף ונכנסים לחשבון, אם יש צורך.
  2. לבחור פרויקט קיים ב-Cloud, או ליצור קוד חדש.
  3. רושמים בצד את מזהה הפרויקט ב-Cloud.
  4. מחברים את המכונה של Editor לפרויקט, ומגדירים את הפרויקט. בחלון Cloud Shell Editor, מזינים את הפקודה הבאה בחלונית הטרמינל:

    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 Editor בפרויקט:

  1. בחלונית הטרמינל של חלון Cloud Shell Editor, עוברים אל Cloud ספריית הפרויקט Shell SQL Talk (/sql-talk-app):

    cd ~/cloudshell_open/generative-ai/gemini/function-calling/sql-talk-app
    
  2. בחלונית הטרמינל, מזינים את הפקודה הבאה:

    bash setup.sh
    

כשסקריפט ההגדרה יושלם בהצלחה, אמורה להופיע הודעה דומה בחלון הטרמינל של Cloud Shell Editor. ההודעה הזו מציין שתהליך ההגדרה הושלם בהצלחה והיישום של 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 Editor לא היה פעיל ונותק, יכול להיות שיהיה צורך כדי להתחבר מחדש למזהה הפרויקט ב-Cloud.

    gcloud config set project YOUR_PROJECT_ID
    
  2. בחלונית הטרמינל של חלון Cloud Shell Editor, עוברים אל 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 Editor לוחצים על הלחצן Web Preview (תצוגה מקדימה באינטרנט), ואז תצוגה מקדימה ביציאה 8080.

הכותרת של Cloud Shell Editor עם הלחצן Web Preview מודגש

כדי להציג עדכונים ליישום SQL Talk:

  • ב-Web Preview של SQL Talk, טען מחדש את הדפדפן או בכרטיסייה בדפדפן.

כדי להפסיק את היישום של SQL Talk:

  • בחלונית הטרמינל בחלון של Cloud Shell Editor, מקלידים Ctrl-C.

שינוי האפליקציה

תוכלו לשנות את אופן הפעולה ולהוסיף יכולות לאפליקציה SQL Talk על ידי שינוי קוד Python של האפליקציה. בקטע הזה נסביר איך להוסיף קריאה חדשה לפונקציה לאפליקציה SQL Talk.

שליחת קריאה לפונקציה של Gemini API משתמשת בתחביר ספציפי כדי להגדיר פונקציות שישמשו את המודל הגנרטיבי כדי לענות על שאלות או לפתור בעיות. התחביר הזה לא צריך להתאים בדיוק לתחביר של קריאה בפועל ל-API. במקום זאת, משתמשים בפונקציה תכונת קריאה לאילוץ המודל הגנרטיבי לספק קלט נתונים ספציפיים או שתואמים לתחביר של הקריאה ל-API, ולאחר מכן משתמשים בפרמטרים האלה כדי להפעיל את הקריאות ל-API בפועל בתוך קוד האפליקציה.

בדוגמה הזו אפשר לראות איך יוצרים הגדרה של קריאה לפונקציה לרישום שאילתות או משימות שבוצעו לאחרונה במסד הנתונים, ולאחר מכן למפות את ההגדרה הזו את הקריאה בפועל ל-API בתוך קוד האפליקציה של SQL Talk.

הוספת הגדרה של בקשה לפונקציה

הוספת בקשה חדשה לפונקציה להצגת משימות או שאילתות אחרונות במסד הנתונים. הזה משמשת את המודל הגנרטיבי כדי להבין מה עושה הקריאה ל-API ואילו פרמטרים של קלט נדרשים לה. לדוגמה, ההגדרה של הפונקציה מוגדר ללא פרמטרים.

כדי להוסיף בקשה חדשה להפעלת פונקציה לאפליקציה:

  1. בחלון Cloud Shell Editor, פותחים את קובץ הקוד 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,
        ],
    )
    

כדי להוסיף קוד שיריץ את הקריאה ל-API עבור הפונקציה החדשה:

  • בקובץ הקוד 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 Community על פרויקט SQL Talk. אם אתם זקוקים לעזרה בבניית האפליקציה, או שמעוניינים לשתף פעולה עם מפתחים אחרים, מומלץ לעיין ב שרת Community Discord, פורום AI/ML של Google Cloud. בפרויקטים נוספים של Build with Google AI, אפשר לעיין פלייליסט של סרטונים.