Ottenere risultati di ricerca da StreamAssist

Nella tua app web, puoi ricevere risposte alle tue domande sotto forma di risposte in streaming. Questo documento mostra come utilizzare l'API REST per ottenere risposte. Se vuoi utilizzare l'app web Gemini Enterprise, consulta Chattare con l'assistente.

Panoramica di StreamAssist

StreamAssist offre un modo potente e interattivo per gestire le query degli utenti. Funziona in streaming, consentendo interazioni in tempo reale.

Le funzionalità principali dell'API includono:

  • Mantenimento del contesto conversazionale: utilizza le sessioni per mantenere il contesto conversazionale, assicurandosi di comprendere le query successive nell'ambito delle interazioni precedenti.

  • Incorporazione dei file forniti: include i file allegati come contesto per risposte più informate e pertinenti.

  • Integrazione perfetta: si integra con vari agenti e strumenti per soddisfare un'ampia gamma di richieste degli utenti.

Prima di iniziare

Assicurati di disporre di quanto segue:

  • L'API Discovery Engine abilitata per il tuo Google Cloud. Puoi abilitarla nella pagina API Discovery Engine della console Google Cloud .

    Vai all'API Discovery Engine

  • Un ruolo Discovery Engine a cui è assegnata l'autorizzazione discoveryengine.assistants.assist.

  • Un'app Gemini Enterprise esistente. Per creare un'app, vedi Crea un'app.

Ottenere risultati di ricerca

Puoi utilizzare il metodo streamAssist per eseguire query e ottenere risposte da Gemini Enterprise. Il seguente comando curl elenca i campi obbligatori.

REST

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant:streamAssist" \
  -d '
{
  "query": {
    "text": "QUERY_TEXT_1"
  }
}'

Sostituisci quanto segue:

  • ENDPOINT_LOCATION: la multiregione per la tua richiesta API. Specifica uno dei seguenti valori:
    • us per la multi-regione Stati Uniti
    • eu per la multiregione EU
    • global per la località globale
    Per saperne di più, consulta Specifica una regione multipla per il datastore.
  • PROJECT_ID: l'ID del tuo Google Cloud progetto.
  • APP_ID: l'identificatore univoco dell'app Gemini Enterprise.
  • LOCATION: la multiregione del datastore: global, us o eu
  • QUERY_TEXT_1: il testo della query di ricerca.

Per ulteriori informazioni sui campi e su ciò che viene restituito, consulta Corpo della risposta.

Python

Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di Gemini Enterprise per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Gemini Enterprise Python.

Per eseguire l'autenticazione in Gemini Enterprise, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.

from google.api_core.client_options import ClientOptions
from google.cloud import discoveryengine_v1 as discoveryengine

# TODO(developer): Update these variables before running the sample.
project_id = "YOUR_PROJECT_ID"
location = "YOUR_LOCATION"
engine_id = "YOUR_APP_ID"
query = "What is Gemini Enterprise?"


def stream_assist_sample(
    project_id: str,
    location: str,
    engine_id: str,
    query: str,
):
    # For more information, refer to:
    # https://docs.cloud.google.com/gemini/enterprise/docs/locations#specify_a_multi-region_for_your_data_store
    client_options = (
        ClientOptions(api_endpoint=f"{location}-discoveryengine.googleapis.com")
        if location != "global"
        else None
    )

    client = discoveryengine.AssistantServiceClient(client_options=client_options)

    request = discoveryengine.StreamAssistRequest(
        name=client.assistant_path(
            project=project_id,
            location=location,
            collection="default_collection",
            engine=engine_id,
            assistant="default_assistant",
        ),
        query=discoveryengine.Query(text=query),
    )

    # Make the request
    stream = client.stream_assist(request=request)

    # Handle the response
    for response in stream:
        print(response)

Ottenere risultati di ricerca utilizzando la stessa sessione

Per continuare una conversazione e ricevere risposte da Gemini Enterprise all'interno di una sessione esistente, utilizza il metodo streamAssist. Il seguente esempio di codice mostra i campi obbligatori:

REST

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant:streamAssist" \
  -d '
{
  "session": "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/sessions/SESSION_ID",
  "query": {
    "text": "QUERY_TEXT_2"
  }
}'

Sostituisci quanto segue:

  • ENDPOINT_LOCATION: la multiregione per la tua richiesta API. Specifica uno dei seguenti valori:
    • us per la multi-regione Stati Uniti
    • eu per la multiregione EU
    • global per la località globale
    Per saperne di più, consulta Specifica una regione multipla per il datastore.
  • PROJECT_ID: l'ID del tuo Google Cloud progetto.
  • APP_ID: l'identificatore univoco dell'app Gemini Enterprise.
  • LOCATION: la multiregione del datastore: global, us o eu
  • QUERY_TEXT_2: il testo della query di ricerca.
  • SESSION_ID: l'ID di una sessione di una conversazione o query precedente.

Per ulteriori informazioni sui campi e su ciò che viene restituito, consulta Corpo della risposta.

Python

Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di Gemini Enterprise per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Gemini Enterprise Python.

Per eseguire l'autenticazione in Gemini Enterprise, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.

from google.api_core.client_options import ClientOptions
from google.cloud import discoveryengine_v1 as discoveryengine

# TODO(developer): Update these variables before running the sample.
project_id = "YOUR_PROJECT_ID"
location = "YOUR_LOCATION"
engine_id = "YOUR_APP_ID"
session = "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/sessions/SESSION_ID" # From previous session
query = "What is Gemini Enterprise?"


def stream_assist_session_sample(
    project_id: str,
    location: str,
    engine_id: str,
    session: str,
    query: str,
):
    # For more information, refer to:
    # https://docs.cloud.google.com/gemini/enterprise/docs/locations#specify_a_multi-region_for_your_data_store
    client_options = (
        ClientOptions(api_endpoint=f"{location}-discoveryengine.googleapis.com")
        if location != "global"
        else None
    )

    client = discoveryengine.AssistantServiceClient(client_options=client_options)

    request = discoveryengine.StreamAssistRequest(
        name=client.assistant_path(
            project=project_id,
            location=location,
            collection="default_collection",
            engine=engine_id,
            assistant="default_assistant",
        ),
        session=session,
        query=discoveryengine.Query(text=query),
    )

    # Make the request
    stream = client.stream_assist(request=request)

    # Handle the response
    for response in stream:
        print(response.answer)
        # Get Session ID
        print(response.session_info.session)

Caricare un file e ottenere risultati di ricerca (anteprima)

Per fornire più contesto all'assistente, carica un file in una sessione e poi interroga i suoi contenuti. Segui questi passaggi:

  1. Carica un file in una sessione utilizzando il metodo addContextFile.

    REST

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/sessions/SESSION_ID:addContextFile" \
      -d '
    {
      "fileName": "FILE_NAME",
      "mimeType": "MIME_TYPE",
      "fileContents": "BASE64_ENCODED_FILE"
    }'
    

    Sostituisci quanto segue:

    • ENDPOINT_LOCATION: la multiregione per la tua richiesta API. Specifica uno dei seguenti valori:
      • us per la multi-regione Stati Uniti
      • eu per la multiregione EU
      • global per la località globale
      Per saperne di più, consulta Specifica una regione multipla per il datastore.
    • PROJECT_ID: l'ID del tuo Google Cloud progetto.
    • LOCATION: la multiregione del datastore: global, us o eu
    • APP_ID: l'identificatore univoco dell'app Gemini Enterprise.
    • SESSION_ID: l'ID di una sessione di una conversazione o query precedente.
    • FILE_NAME: il nome del file.
    • MIME_TYPE: il tipo MIME del file, ad esempio text/plain o application/pdf. Per saperne di più sui diversi tipi di contenuti multimediali, consulta Tipi di contenuti multimediali.
    • BASE64_ENCODED_FILE: la rappresentazione codificata in base64 del file.

    Per ulteriori informazioni sui campi e su ciò che viene restituito, consulta Corpo della risposta.

  2. Utilizza la stessa sessione per porre una domanda sul file che hai caricato utilizzando il metodo streamAssist.

    REST

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant:streamAssist" \
      -d '
    {
      "session": "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/sessions/SESSION_ID",
      "fileIds": ["FILE_ID"],
      "query": {
        "text": "QUERY_TEXT_3"
      }
    }'
    
    

    Sostituisci quanto segue:

    • ENDPOINT_LOCATION: la multiregione per la tua richiesta API. Specifica uno dei seguenti valori:
      • us per la multi-regione Stati Uniti
      • eu per la multiregione EU
      • global per la località globale
      Per saperne di più, consulta Specifica una regione multipla per il datastore.
    • PROJECT_ID: l'ID del tuo Google Cloud progetto.
    • APP_ID: l'identificatore univoco dell'app Gemini Enterprise.
    • LOCATION: la multiregione del datastore: global, us o eu
    • QUERY_TEXT_3: il testo della query di ricerca.
    • SESSION_ID: l'ID di una sessione di una conversazione o query precedente.
    • FILE_ID: l'ID del file che hai caricato nell'assistente.

    Per ulteriori informazioni sui campi e su ciò che viene restituito, consulta Corpo della risposta.