Cómo obtener resultados de la búsqueda de StreamAssist

En tu app web, puedes obtener respuestas a tus preguntas en forma de respuestas transmitidas. En este documento, se muestra cómo usar la API de REST para obtener respuestas. Si quieres usar la app web de Gemini Enterprise, consulta Cómo chatear con el asistente.

Descripción general de StreamAssist

StreamAssist proporciona una forma interactiva y potente de controlar las búsquedas de los usuarios. Funciona de forma continua, lo que permite interacciones en tiempo real.

Las capacidades clave de la API incluyen las siguientes:

  • Mantiene el contexto de la conversación: Usa sesiones para mantener el contexto de la conversación, lo que garantiza que comprenda las preguntas de seguimiento dentro del alcance de las interacciones anteriores.

  • Incorpora los archivos proporcionados: Incluye los archivos adjuntos como contexto para brindar respuestas más fundamentadas y pertinentes.

  • Integración fluida: Se integra con varios agentes y herramientas para satisfacer una amplia variedad de solicitudes de los usuarios.

Antes de comenzar

Asegúrate de tener lo siguiente:

Cómo obtener resultados de búsqueda

Puedes usar el método streamAssist para realizar consultas y obtener respuestas de Gemini Enterprise. El siguiente comando curl enumera los campos obligatorios.

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"
  }
}'

Reemplaza lo siguiente:

  • ENDPOINT_LOCATION: Es la región múltiple para tu solicitud a la API. Especifica uno de los siguientes valores:
    • us para la multirregión de EE.UU.
    • eu para la multirregión de la UE
    • global para la ubicación global
    Para obtener más información, consulta Cómo especificar una región múltiple para tu almacén de datos.
  • PROJECT_ID: Es el ID de tu proyecto de Google Cloud .
  • APP_ID: Es el identificador único de la app de Gemini Enterprise.
  • LOCATION: Es la multirregión de tu almacén de datos: global, us o eu.
  • QUERY_TEXT_1: Es el texto de la búsqueda.

Para obtener más información sobre los campos y lo que se devuelve, consulta Cuerpo de la respuesta.

Python

Antes de probar este ejemplo, sigue las instrucciones de configuración para Python que encontrarás en la guía de inicio rápido de Gemini Enterprise sobre las bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Gemini Enterprise Python.

Para autenticarte en Gemini Enterprise, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

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)

Cómo obtener resultados de la búsqueda con la misma sesión

Para continuar una conversación y obtener respuestas de Gemini Enterprise en una sesión existente, usa el método streamAssist. En el siguiente muestra de código, se muestran los campos obligatorios:

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"
  }
}'

Reemplaza lo siguiente:

  • ENDPOINT_LOCATION: Es la región múltiple para tu solicitud a la API. Especifica uno de los siguientes valores:
    • us para la multirregión de EE.UU.
    • eu para la multirregión de la UE
    • global para la ubicación global
    Para obtener más información, consulta Cómo especificar una región múltiple para tu almacén de datos.
  • PROJECT_ID: Es el ID de tu proyecto de Google Cloud .
  • APP_ID: Es el identificador único de la app de Gemini Enterprise.
  • LOCATION: Es la multirregión de tu almacén de datos: global, us o eu.
  • QUERY_TEXT_2: Es el texto de la búsqueda.
  • SESSION_ID: Es el ID de una sesión de una conversación o consulta anterior.

Para obtener más información sobre los campos y lo que se devuelve, consulta Cuerpo de la respuesta.

Python

Antes de probar este ejemplo, sigue las instrucciones de configuración para Python que encontrarás en la guía de inicio rápido de Gemini Enterprise sobre las bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Gemini Enterprise Python.

Para autenticarte en Gemini Enterprise, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

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)

Sube un archivo y obtén resultados de la búsqueda (vista previa)

Para darle más contexto al asistente, sube un archivo a una sesión y, luego, consulta su contenido. Lleva a cabo los pasos siguientes:

  1. Sube un archivo a una sesión con el método 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"
    }'
    

    Reemplaza lo siguiente:

    • ENDPOINT_LOCATION: Es la región múltiple para tu solicitud a la API. Especifica uno de los siguientes valores:
      • us para la multirregión de EE.UU.
      • eu para la multirregión de la UE
      • global para la ubicación global
      Para obtener más información, consulta Cómo especificar una región múltiple para tu almacén de datos.
    • PROJECT_ID: Es el ID de tu proyecto de Google Cloud .
    • LOCATION: Es la multirregión de tu almacén de datos: global, us o eu.
    • APP_ID: Es el identificador único de la app de Gemini Enterprise.
    • SESSION_ID: Es el ID de una sesión de una conversación o consulta anterior.
    • FILE_NAME: Es el nombre del archivo.
    • MIME_TYPE: Es el tipo de MIME del archivo, por ejemplo, text/plain o application/pdf. Para obtener más información sobre los diferentes tipos de medios, consulta Tipos de medios.
    • BASE64_ENCODED_FILE: Es la representación del archivo codificada en Base64.

    Para obtener más información sobre los campos y lo que se devuelve, consulta Cuerpo de la respuesta.

  2. Usa la misma sesión para hacer una pregunta sobre el archivo que subiste con el método 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"
      }
    }'
    
    

    Reemplaza lo siguiente:

    • ENDPOINT_LOCATION: Es la región múltiple para tu solicitud a la API. Especifica uno de los siguientes valores:
      • us para la multirregión de EE.UU.
      • eu para la multirregión de la UE
      • global para la ubicación global
      Para obtener más información, consulta Cómo especificar una región múltiple para tu almacén de datos.
    • PROJECT_ID: Es el ID de tu proyecto de Google Cloud .
    • APP_ID: Es el identificador único de la app de Gemini Enterprise.
    • LOCATION: Es la multirregión de tu almacén de datos: global, us o eu.
    • QUERY_TEXT_3: Es el texto de la búsqueda.
    • SESSION_ID: Es el ID de una sesión de una conversación o consulta anterior.
    • FILE_ID: Es el ID del archivo que subiste al asistente.

    Para obtener más información sobre los campos y lo que se devuelve, consulta Cuerpo de la respuesta.