In Ihrer Web-App können Sie Antworten auf Ihre Fragen in Form von Streaming-Antworten erhalten. In diesem Dokument erfahren Sie, wie Sie die REST API verwenden, um Antworten zu erhalten. Wenn Sie die Gemini Enterprise Web-App verwenden möchten, lesen Sie den Abschnitt Mit dem Assistenten chatten.
StreamAssist-Übersicht
StreamAssist bietet eine leistungsstarke, interaktive Möglichkeit, Nutzeranfragen zu bearbeiten. Die Verarbeitung erfolgt im Streaming-Modus, was Interaktionen in Echtzeit ermöglicht.
Die wichtigsten Funktionen der API sind:
Unterhaltungskontext beibehalten:Es werden Sitzungen verwendet, um den Unterhaltungskontext beizubehalten. So werden Folgeanfragen im Rahmen früherer Interaktionen verstanden.
Einbeziehung bereitgestellter Dateien:Die angehängten Dateien werden als Kontext für fundiertere und relevantere Antworten berücksichtigt.
Nahtlose Integration:Gemini lässt sich in verschiedene Agents und Tools einbinden, um eine Vielzahl von Nutzeranfragen zu erfüllen.
Hinweise
Die müssen Folgendes haben:
Die Discovery Engine API ist für Ihr Google Cloudaktiviert. Sie können sie auf der Seite Discovery Engine API in derGoogle Cloud Console aktivieren.
Eine Discovery Engine-Rolle, der die Berechtigung
discoveryengine.assistants.assistzugewiesen ist.Eine vorhandene Gemini Enterprise-App. Informationen zum Erstellen einer App finden Sie unter App erstellen.
Suchergebnisse abrufen
Mit der Methode streamAssist 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:
usfür die Multiregion „USA“eufür die Multiregion „EU“globalfür den Standort „Global“
- 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,usodereu - 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 Einrichtungsanleitung für Python 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 bestehenden Sitzung erhalten möchten, verwenden Sie die Methode streamAssist. Das folgende Codebeispiel zeigt die Pflichtfelder:
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:
usfür die Multiregion „USA“eufür die Multiregion „EU“globalfür den Standort „Global“
- 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,usodereu - QUERY_TEXT_2: Der Text der Suchanfrage.
- SESSION_ID: Die ID einer Sitzung aus einer früheren Unterhaltung oder Anfrage.
Weitere Informationen zu den Feldern und den zurückgegebenen Werten finden Sie unter Antworttext.
Python
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für Python 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 den Inhalt ab. Gehen Sie so vor:
Laden Sie eine Datei mit der Methode
addContextFilein 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:
usfür die Multiregion „USA“eufür die Multiregion „EU“globalfür den Standort „Global“
- PROJECT_ID: die ID Ihres Projekts in Google Cloud .
- LOCATION: Der multiregionale Standort Ihres Datenspeichers:
global,usodereu. - APP_ID: die eindeutige Kennung für die Gemini Enterprise-App.
- SESSION_ID: Die ID einer Sitzung aus einer früheren Unterhaltung oder Anfrage.
- FILE_NAME: Der Name der Datei.
- MIME_TYPE: Der MIME-Typ der Datei, z. B.
text/plainoderapplication/pdf. Weitere Informationen zu den verschiedenen Medientypen finden Sie unter Medientypen. - BASE64_ENCODED_FILE: Die Base64-codierte Darstellung der Datei.
Weitere Informationen zu den Feldern und den zurückgegebenen Werten finden Sie unter Antworttext.
- ENDPOINT_LOCATION: die Multiregion für Ihre API-Anfrage. Geben Sie einen der folgenden Werte an:
Stellen Sie in derselben Sitzung eine Frage zu der Datei, die Sie mit der Methode
streamAssisthochgeladen haben.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" } }'Ersetzen Sie Folgendes:
- ENDPOINT_LOCATION: die Multiregion für Ihre API-Anfrage. Geben Sie einen der folgenden Werte an:
usfür die Multiregion „USA“eufür die Multiregion „EU“globalfür den Standort „Global“
- PROJECT_ID: die ID Ihres Projekts in Google Cloud .
- APP_ID: die eindeutige Kennung für die Gemini Enterprise-App.
- LOCATION: Der multiregionale Standort Ihres Datenspeichers:
global,usodereu. - QUERY_TEXT_3: Der Text der Suchanfrage.
- SESSION_ID: Die ID einer Sitzung aus einer früheren Unterhaltung oder Anfrage.
- FILE_ID: die ID der Datei, die Sie in den Assistenten hochgeladen haben.
Weitere Informationen zu den Feldern und den zurückgegebenen Werten finden Sie unter Antworttext.
- ENDPOINT_LOCATION: die Multiregion für Ihre API-Anfrage. Geben Sie einen der folgenden Werte an: