Suchergebnisse von StreamAssist erhalten

In Ihrer Web-App können Sie Antworten auf Ihre Fragen in Form von Streaming-Antworten erhalten. In diesem Dokument wird beschrieben, wie Sie die REST API verwenden, um Antworten zu erhalten. Wenn Sie die Gemini Enterprise-Web-App verwenden möchten, lesen Sie den Artikel Mit dem Assistenten chatten.

StreamAssist-Übersicht

StreamAssist bietet eine leistungsstarke, interaktive Möglichkeit, Nutzeranfragen zu bearbeiten. Der Dienst funktioniert im Streaming-Modus und ermöglicht so Interaktionen in Echtzeit.

Die wichtigsten Funktionen der API sind:

  • Gesprächskontext beibehalten:Der Gesprächskontext wird in Sitzungen beibehalten, sodass Folgefragen im Rahmen der vorherigen Interaktionen verstanden werden.

  • Bereitgestellte Dateien einbeziehen:Die angehängten Dateien werden als Kontext für fundiertere und relevantere Antworten verwendet.

  • Nahtlose Integration:Der Dienst lässt sich in verschiedene Agenten und Tools einbinden, um eine Vielzahl von Nutzeranfragen zu erfüllen.

Hinweis

Die müssen Folgendes haben:

  • Die Discovery Engine API ist für Ihr-Projekt aktiviert Google Cloud. Sie können sie in der Console auf der Seite Discovery Engine API aktivieren. Google Cloud

    Zur Discovery Engine API

  • Eine Discovery Engine-Rolle der die Berechtigung discoveryengine.assistants.assist zugewiesen ist.

  • Eine vorhandene Gemini Enterprise-App. Informationen zum Erstellen einer App finden Sie unter App erstellen.

Suchergebnisse abrufen

Mit der streamAssist Methode können Sie Gemini Enterprise abfragen und Antworten erhalten. Im folgenden `curl`-Befehl sind die Pflichtfelder aufgeführt.

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

Ersetzen Sie Folgendes:

  • ENDPOINT_LOCATION: die Multiregion für Ihre API-Anfrage. Geben Sie einen der folgenden Werte an:
  • us für die Multiregion „USA“
  • eu für die Multiregion „EU“
  • global für den Standort „Global“
Weitere Informationen zum Festlegen multiregionaler Standorte für Ihren Datenspeicher.
  • PROJECT_ID: die ID Ihres Projekts in Google Cloud .
  • APP_ID: die eindeutige Kennung für die Gemini Enterprise-App.
  • LOCATION: die Multiregion Ihres Datenspeichers: global, us oder eu
  • QUERY_TEXT_1: der Text der Suchanfrage.
  • Weitere Informationen zu den Feldern und den zurückgegebenen Werten finden Sie unter Antworttext.

    Python

    Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Python Einrichtungsanleitung in der Gemini Enterprise-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Gemini Enterprise Python API.

    Richten Sie zur Authentifizierung bei Gemini Enterprise Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter ADC für eine lokale Entwicklungsumgebung einrichten.

    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)
    

    Suchergebnisse in derselben Sitzung abrufen

    Wenn Sie eine Unterhaltung fortsetzen und Antworten von Gemini Enterprise in einer vorhandenen Sitzung erhalten möchten, verwenden Sie die streamAssist Methode. Im folgenden Codebeispiel sind die Pflichtfelder aufgeführt:

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

    Ersetzen Sie Folgendes:

    • ENDPOINT_LOCATION: die Multiregion für Ihre API-Anfrage. Geben Sie einen der folgenden Werte an:
    • us für die Multiregion „USA“
    • eu für die Multiregion „EU“
    • global für den Standort „Global“
    Weitere Informationen zum Festlegen multiregionaler Standorte für Ihren Datenspeicher.
  • PROJECT_ID: die ID Ihres Projekts in Google Cloud .
  • APP_ID: die eindeutige Kennung für die Gemini Enterprise-App.
  • LOCATION: die Multiregion Ihres Datenspeichers: global, us oder eu
  • QUERY_TEXT_2: der Text der Suchanfrage.
  • SESSION_ID: die ID einer Sitzung aus einer vorherigen Unterhaltung oder Abfrage.
  • Weitere Informationen zu den Feldern und den zurückgegebenen Werten finden Sie unter Antworttext.

    Python

    Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Python Einrichtungsanleitung in der Gemini Enterprise-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Gemini Enterprise Python API.

    Richten Sie zur Authentifizierung bei Gemini Enterprise Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter ADC für eine lokale Entwicklungsumgebung einrichten.

    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)
    

    Datei hochladen und Suchergebnisse abrufen (Vorschau)

    Wenn Sie dem Assistenten mehr Kontext geben möchten, laden Sie eine Datei in eine Sitzung hoch und fragen Sie dann ihren Inhalt ab. Gehen Sie so vor:

    1. Laden Sie mit der addContextFile Methode eine Datei in eine Sitzung hoch.

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

      Ersetzen Sie Folgendes:

      • ENDPOINT_LOCATION: die Multiregion für Ihre API-Anfrage. Geben Sie einen der folgenden Werte an:
      • us für die Multiregion „USA“
      • eu für die Multiregion „EU“
      • global für den Standort „Global“
      Weitere Informationen zum Festlegen multiregionaler Standorte für Ihren Datenspeicher.
    2. PROJECT_ID: die ID Ihres Projekts in Google Cloud .
    3. LOCATION: die Multiregion Ihres Datenspeichers: global, us oder eu
    4. APP_ID: die eindeutige Kennung für die Gemini Enterprise-App.
    5. SESSION_ID: die ID einer Sitzung aus einer vorherigen Unterhaltung oder Abfrage.
    6. FILE_NAME: Der Name der Datei.
    7. MIME_TYPE: der MIME-Typ der Datei, z. B. text/plain oder application/pdf. Weitere Informationen zu den verschiedenen Medientypen finden Sie unter Medientypen.
    8. BASE64_ENCODED_FILE: die base64-codierte Darstellung der Datei.
    9. Weitere Informationen zu den Feldern und den zurückgegebenen Werten finden Sie unter Antworttext.