Dans votre application Web, vous pouvez obtenir des réponses à vos questions sous forme de réponses en streaming. Ce document vous explique comment utiliser l'API REST pour obtenir des réponses. Si vous souhaitez utiliser l'application Web Gemini Enterprise, consultez Discuter avec l'assistant.
Présentation de StreamAssist
StreamAssist offre un moyen puissant et interactif de traiter les requêtes des utilisateurs. Il fonctionne en streaming, ce qui permet des interactions en temps réel.
Voici les principales fonctionnalités de l'API :
Maintien du contexte conversationnel : il utilise des sessions pour maintenir le contexte conversationnel, ce qui lui permet de comprendre les requêtes de suivi dans le champ d'application des interactions précédentes.
Intégration des fichiers fournis : les fichiers joints sont inclus en tant que contexte pour des réponses plus pertinentes et mieux informées.
Intégration parfaite : il s'intègre à divers agents et outils pour répondre à un large éventail de demandes des utilisateurs.
Avant de commencer
Assurez-vous de disposer des éléments suivants :
L'API Discovery Engine est activée pour votre Google Cloud. Vous pouvez l'activer sur la page API Discovery Engine de la consoleGoogle Cloud .
Un rôle Discovery Engine auquel est attribuée l'autorisation
discoveryengine.assistants.assist.Une application Gemini Enterprise existante. Pour créer une application, consultez Créer une application.
Obtenir des résultats de recherche
Vous pouvez utiliser la méthode streamAssist pour interroger Gemini Enterprise et obtenir des réponses. La commande curl suivante liste les champs obligatoires.
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"
}
}'
Remplacez les éléments suivants :
- ENDPOINT_LOCATION : région multirégionale pour votre requête API. Spécifiez l'une des valeurs suivantes :
uspour la multirégion des États-Uniseupour la multirégion de l'UEglobalpour l'emplacement "Global"
- PROJECT_ID : ID de votre projet Google Cloud .
- APP_ID : identifiant unique de l'application Gemini Enterprise.
- LOCATION : région multirégionale de votre data store :
global,usoueu - QUERY_TEXT_1 : texte de la requête de recherche.
Pour en savoir plus sur les champs et les informations renvoyées, consultez Corps de la réponse.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python décrites dans le guide de démarrage rapide de Gemini Enterprise à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Gemini Enterprise Python.
Pour vous authentifier auprès de Gemini Enterprise, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement 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)
Obtenir des résultats de recherche en utilisant la même session
Pour poursuivre une conversation et obtenir des réponses de Gemini Enterprise dans une session existante, utilisez la méthode streamAssist. L'exemple de code suivant montre les champs obligatoires :
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"
}
}'
Remplacez les éléments suivants :
- ENDPOINT_LOCATION : région multirégionale pour votre requête API. Spécifiez l'une des valeurs suivantes :
uspour la multirégion des États-Uniseupour la multirégion de l'UEglobalpour l'emplacement "Global"
- PROJECT_ID : ID de votre projet Google Cloud .
- APP_ID : identifiant unique de l'application Gemini Enterprise.
- LOCATION : région multirégionale de votre data store :
global,usoueu - QUERY_TEXT_2 : texte de la requête de recherche.
- SESSION_ID : ID d'une session issue d'une conversation ou d'une requête précédente.
Pour en savoir plus sur les champs et les informations renvoyées, consultez Corps de la réponse.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python décrites dans le guide de démarrage rapide de Gemini Enterprise à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Gemini Enterprise Python.
Pour vous authentifier auprès de Gemini Enterprise, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement 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)
Importer un fichier et obtenir des résultats de recherche (aperçu)
Pour fournir plus de contexte à l'assistant, importez un fichier dans une session, puis interrogez son contenu. Procédez comme suit :
Importez un fichier dans une session à l'aide de la méthode
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" }'Remplacez les éléments suivants :
- ENDPOINT_LOCATION : région multirégionale pour votre requête API. Spécifiez l'une des valeurs suivantes :
uspour la multirégion des États-Uniseupour la multirégion de l'UEglobalpour l'emplacement "Global"
- PROJECT_ID : ID de votre projet Google Cloud .
- LOCATION : région multirégionale de votre data store :
global,usoueu - APP_ID : identifiant unique de l'application Gemini Enterprise.
- SESSION_ID : ID d'une session issue d'une conversation ou d'une requête précédente.
- FILE_NAME : nom du fichier.
- MIME_TYPE : type MIME du fichier, par exemple
text/plainouapplication/pdf. Pour en savoir plus sur les différents types de supports, consultez Types de supports. - BASE64_ENCODED_FILE : représentation du fichier encodée en base64.
Pour en savoir plus sur les champs et les informations renvoyées, consultez Corps de la réponse.
- ENDPOINT_LOCATION : région multirégionale pour votre requête API. Spécifiez l'une des valeurs suivantes :
Utilisez la même session pour poser une question sur le fichier que vous avez importé à l'aide de la méthode
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" } }'Remplacez les éléments suivants :
- ENDPOINT_LOCATION : région multirégionale pour votre requête API. Spécifiez l'une des valeurs suivantes :
uspour la multirégion des États-Uniseupour la multirégion de l'UEglobalpour l'emplacement "Global"
- PROJECT_ID : ID de votre projet Google Cloud .
- APP_ID : identifiant unique de l'application Gemini Enterprise.
- LOCATION : région multirégionale de votre data store :
global,usoueu - QUERY_TEXT_3 : texte de la requête de recherche.
- SESSION_ID : ID d'une session issue d'une conversation ou d'une requête précédente.
- FILE_ID : ID du fichier que vous avez importé dans l'assistant.
Pour en savoir plus sur les champs et les informations renvoyées, consultez Corps de la réponse.
- ENDPOINT_LOCATION : région multirégionale pour votre requête API. Spécifiez l'une des valeurs suivantes :