Ottenere report con Deep Research

Deep Research è un agente Made by Google per gli utenti che devono raccogliere, analizzare e comprendere informazioni interne ed esterne.

Panoramica

Quando inserisci un prompt in Deep Research, ad esempio "Confronta i concorrenti del progetto di esempio", Deep Research valuta se la domanda è correlata alla ricerca, genera un piano che delinea i passaggi da seguire per eseguire la ricerca e trasmette in streaming domande e risposte man mano che procede nella ricerca. Poi genera un report dei risultati con citazioni e un riepilogo audio.

Per le fonti di ricerca, Deep Research utilizza i dati indicizzati dall'app. Può utilizzare anche i risultati web se la ricerca web è abilitata per l'app.

Ecco alcuni prompt di esempio per cui Deep Research genera report:

  • Come possiamo migliorare l'esperienza utente della nostra app di mobile banking esistente per renderla più intuitiva e facile da usare?
  • Come possiamo ridurre i tempi di attesa dei clienti durante le ore di punta senza compromettere la qualità dell'assistenza?
  • Analizza la situazione economica dei paesi dell'Europa centrale.
  • Confronta BigQuery con i suoi concorrenti e fornisci i risultati in formato tabella.

Utilizzare Deep Research

Gli utenti finali possono accedere a Deep Research e utilizzarlo tramite l'app. Deep Research ha accesso ai dati che l'app ha già indicizzato e, se abilitati, ai risultati web.

Puoi ottenere i risultati di Deep Research dall'app o utilizzando l'API (disponibile generalmente con una lista consentita).

Console

Per utilizzare Deep Research nell'app:

  1. Nel menu di navigazione dell'app, vai a Deep Research.

  2. Fai clic su Origini per selezionare le origini che l'agente deve includere per fornire le informazioni più pertinenti sui dati.

    Nelle fonti, oltre alle fonti di Gemini Enterprise, puoi anche scegliere di includere i risultati della Ricerca Google.

  3. Inserisci un prompt per Deep Research e fai clic su Invia. Se il prompt non è correlato alla ricerca, Deep Research genera una risposta. Se il prompt viene considerato correlato alla ricerca, Deep Research delinea gli argomenti che l'agente prevede di ricercare in un piano di ricerca.

  4. Se necessario, modifica il prompt dell'agente per generare un nuovo piano di ricerca che soddisfi meglio i tuoi requisiti.

  5. Se il piano di ricerca è accettabile, fai clic su Avvia ricerca.

    L'agente inizia la ricerca in base al piano:

    • Trasmette in streaming gli argomenti che sta esaminando man mano che procede
    • Genera un report dei risultati con le citazioni
    • Crea un riepilogo audio di 1-2 minuti del report

REST

Per utilizzare Deep Research tramite l'API:

  1. Invia una richiesta al metodo 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": {}
         }
        }'
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del tuo Google Cloud progetto.
    • APP_ID: l'ID dell'app.
    • QUERY: la query.
    • DATA_STORE_ID: l'ID dell'datastore quando un'app ha più archivi dati. Quando lo specifichi, la ricerca è limitata ai documenti nel datastore specificato.

    Risposta

    Se la richiesta ha esito positivo, riceverai una risposta JSON simile alla seguente. Nota SESSION_ID. Questo passaggio è obbligatorio per avviare la procedura di ricerca nel passaggio successivo.

    [{
     "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. Avvia la ricerca della query nel passaggio precedente. Per farlo, invia un'altra richiesta al metodo streamAssist. In questa richiesta, imposta la query come Start Research e aggiungi le informazioni sulla sessione del passaggio precedente.

    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": {}
         },
        }'
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del tuo Google Cloud progetto.
    • APP_ID: l'ID dell'app.
    • SESSION_ID: l'ID sessione del passaggio precedente.
    • DATA_STORE_ID: l'ID dell'datastore quando un'app ha più archivi dati. Quando lo specifichi, la ricerca è limitata ai documenti nel datastore specificato.

    Risposta

    Se la richiesta ha esito positivo, riceverai una risposta JSON simile alla seguente risposta troncata.

    La risposta contiene un'istanza della risorsa AssistAnswer.

    Si tratta di una risposta in streaming e, pertanto, a seconda della quantità di dati nella risposta della ricerca, potrebbe essere necessario un po' di tempo per completare lo streaming.

    [{
     "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"
    }]