קבלת דוחות באמצעות Deep Research

Deep Research הוא סוכן מבית Google שנועד למשתמשים שצריכים לאסוף, לנתח ולהבין מידע פנימי וחיצוני.

סקירה כללית

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

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

הנה כמה הנחיות לדוגמה ש-Deep Research יוצר עבורן דוחות:

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

שימוש ב-Deep Research

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

אפשר לקבל תוצאות מ'Deep Research' מהאפליקציה או באמצעות API (זמין בדרך כלל עם רשימת היתרים).

המסוף

כדי להשתמש ב-Deep Research באפליקציה:

  1. בתפריט הניווט של האפליקציה, עוברים אל Deep Research.

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

    במקורות, בנוסף למקורות של Gemini Enterprise, אפשר גם לבחור לכלול תוצאות של חיפוש Google.

  3. מזינים הנחיה ל-Deep Research ולוחצים על Submit (שליחה). אם ההנחיה לא קשורה למחקר, Deep Research יוצר תשובה. אם ההנחיה קשורה למחקר, Deep Research יוצר תוכנית מחקר שבה מפורטים הנושאים שהסוכן מתכנן לחקור.

  4. אם צריך, עורכים את ההנחיה של הסוכן כדי ליצור תוכנית מחקר חדשה שתתאים יותר לדרישות שלכם.

  5. אם תוכנית המחקר מקובלת עליכם, לוחצים על התחלת המחקר.

    הסוכן מתחיל לחקור על סמך התוכנית:

    • הוא משדר את הנושאים שהוא חוקר תוך כדי התקדמות
    • יצירת דוח עם ממצאים וציטוטים
    • יצירת סיכום אודיו של הדוח באורך של דקה עד שתי דקות

REST

כדי להשתמש ב-Deep Research באמצעות ה-API:

  1. שליחת בקשה ל-method‏ streamAssist.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1/projects/project_id/locations/global/collections/default_collection/engines/app_id/assistants/default_assistant:streamAssist" \
    -d '{
         "query": {
           "text": "QUERY"
         },
         "agentsSpec": {
           "agentSpecs": {
             "agentId": "deep_research"
           }
         },
         "toolsSpec": {
           "vertexAiSearchSpec": {
             "dataStoreSpecs": {
               "dataStore": "projects/PROJECT_ID/locations/global/collections/default_collection/datastores/DATA_STORE_ID"
             }
           },
           "webGroundingSpec": {}
         }
        }'
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
    • APP_ID: מזהה האפליקציה.
    • QUERY: השאילתה.
    • DATA_STORE_ID: המזהה של מאגר הנתונים אם לאפליקציה יש כמה מאגרי נתונים. כשמציינים את זה, החיפוש מוגבל למסמכים במאגר הנתונים שצוין.

    תשובה

    אם הבקשה מצליחה, מקבלים תגובת JSON שדומה לתגובה הבאה. שימו לב לSESSION_ID. הפרטים האלה נדרשים כדי להתחיל את תהליך המחקר בשלב הבא.

    [{
     "answer": {
       "name": "ANSWER_ASSIST_NAME",
       "state": "SUCCEEDED",
       "replies": [
         {
           "groundedContent": {
             "content": {
               "role": "model",
               "text": "INLINE_TEXT"
             }
           },
         },
         {
           "groundedContent": {
             "content": {
               "role": "model",
               "text": "INLINE_TEXT_WITH_RESEARCH_PLAN"
             },
             "contentMetadata": {
               "contentKind": "RESEARCH_PLAN"
             }
           },
         }
       ],
     },
     "sessionInfo": {
       "session": "SESSION_ID",
       "queryId": "QUERY_ID",
       "turnId": "TURN_ID"
     },
     "assistToken": "ASSIST_TOKEN"
    }
    ]
    
  2. מתחילים את המחקר לגבי השאילתה בשלב הקודם. כדי לעשות זאת, שולחים בקשה נוספת ל-method‏ streamAssist. בבקשה הזו, מגדירים את השאילתה כ-Start Research ומוסיפים את פרטי הסשן מהשלב הקודם.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1/projects/project_id/locations/global/collections/default_collection/engines/app_id/assistants/default_assistant:streamAssist" \
    -d '{
         "query": {
           "text": "Start Research"
         },
         "session": "SESSION_ID",
         "agentsSpec": {
           "agentSpecs": {
             "agentId": "deep_research"
           }
         },
         "toolsSpec": {
           "vertexAiSearchSpec": {
             "dataStoreSpecs": {
               "dataStore": "projects/PROJECT_ID/locations/global/collections/default_collection/datastores/DATA_STORE_ID"
             }
           },
           "webGroundingSpec": {}
         },
        }'
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
    • APP_ID: מזהה האפליקציה.
    • SESSION_ID: מזהה הסשן מהשלב הקודם.
    • DATA_STORE_ID: המזהה של מאגר הנתונים אם לאפליקציה יש כמה מאגרי נתונים. כשמציינים את זה, החיפוש מוגבל למסמכים במאגר הנתונים שצוין.

    תשובה

    אם הבקשה מצליחה, מקבלים תגובת JSON שדומה לתגובה הבאה (התגובה קוצרה).

    התשובה מכילה מופע של המשאב AssistAnswer.

    זו תשובה שמוזרמת, ולכן, בהתאם לכמות הנתונים בתשובת המחקר, יכול לעבור זמן עד שהיא תוזרם במלואה.

    [{
     "answer": {
       "state": "IN_PROGRESS",
       "replies": [
         {
           "groundedContent": {
             "content": {
               "role": "model",
               "text": "RESEARCH_QUESTION_1"
             },
             "contentMetadata": {
               "contentKind": "RESEARCH_QUESTION",
               "contentId": "ID0"
             }
           },
         }
       ]
     },
     "assistToken": "ASSIST_TOKEN"
    },
    {
     "answer": {
       "state": "IN_PROGRESS",
       "replies": [
         {
           "groundedContent": {
             "content": {
               "role": "model",
               "text": "RESEARCH_ANSWER_1_PART_1"
             },
             "contentMetadata": {
               "contentKind": "RESEARCH_ANSWER",
               "contentId": "ID0"
             }
           },
         }
       ]
     },
     "assistToken": "ASSIST_TOKEN"
    },
    {
     "answer": {
       "state": "IN_PROGRESS",
       "replies": [
         {
           "groundedContent": {
             "content": {
               "role": "model",
               "text": "RESEARCH_ANSWER_1_PART_2"
             },
             "contentMetadata": {
               "contentKind": "RESEARCH_ANSWER",
               "contentId": "ID0"
             }
           },
         }
       ]
     },
     "assistToken": "ASSIST_TOKEN"
    },
    {
     "answer": {
       "state": "IN_PROGRESS",
       "replies": [
         {
           "groundedContent": {
             "content": {
               "role": "model",
               "text": "INLINE_TEXT"
             },
             "textGroundingMetadata": {
               "references": [
                 {
                   "documentMetadata": {
                     "document": "DOCUMENT_ID",
                     "uri": "DOCUMENT_REDIRECT_URI",
                     "title": "DOCUMENT_TITLE",
                     "pageIdentifier": "",
                     "domain": "DOCUMENT_DOMAIN"
                   }
                 }
               ]
               "searchEntryPoints": [
                 {
                   "renderedContent": "GROUNDING_SEARCH_ENTRY_POINT"
                 }
               ]
              }
            }
          }
        ]
      }
    },
    {
     "answer": {
       "state": "IN_PROGRESS",
       "replies": [
         {
           "groundedContent": {
             "content": {
               "role": "model",
               "file": {
                 "fileId": "AUDIO_FILE_ID"
               }
             },
             "contentMetadata": {
               "contentKind": "RESEARCH_AUDIO_SUMMARY"
             }
           },
         }
       ]
     },
     "assistToken": "ASSIST_TOKEN"
    }
    {
     "answer": {
       "name": "ANSWER_ASSIST_NAME",
       "state": "SUCCEEDED"
       },
     "sessionInfo": {
       "session": "SESSION_ID",
       "queryId": "QUERY_ID",
       "turnId": "TURN_ID"
     },
    "assistToken": "ASSIST_TOKEN"
    }]