À chaque tour de conversation, une interaction a lieu. Lors d'une interaction, un utilisateur final envoie une entrée aux agents conversationnels (Dialogflow CX), qui envoient une réponse. Vous disposez de deux options lorsque vous mettez en œuvre votre système pour gérer les interactions : utiliser l'API ou utiliser une intégration.
Lorsque vous utilisez l'API, votre système doit gérer les éléments suivants :
- Créer un agent
- Fournir une interface utilisateur aux utilisateurs finaux
- Appeler l'API Dialogflow pour chaque tour de conversation afin d'envoyer les entrées de l'utilisateur final à l'API.
- À moins que les réponses de l'agent ne soient purement statiques (non courant), vous devez héberger un service de webhook pour gérer le fulfillment compatible avec webhook.
Lorsque vous utilisez une intégration, votre système ne doit gérer que les éléments suivants :
- Créer un agent
- Mettre en œuvre un service de webhook (facultatif)
Le schéma suivant illustre les étapes qui se produisent pour un tour de conversation d'une session.
- L'utilisateur final saisit ou prononce quelque chose, appelé entrée de l'utilisateur final.
- Votre système d'interface utilisateur ou d'intégration reçoit l'entrée et la transmet à l'API Dialogflow dans une requête de détection d'intent.
- L'API Dialogflow reçoit la requête de détection d'intent. Elle correspond à l'entrée d'un intent ou d'un paramètre de formulaire, définit les paramètres nécessaires et met à jour l'état de la session. Si elle doit appeler un fulfillment compatible avec le webhook, elle envoie une requête de webhook à votre service de webhook. Sinon, passez à l'étape 6.
- Votre service webhook reçoit la requête webhook. Votre service effectue les actions nécessaires, telles que l'appel d'API externes, le questionnement ou la mise à jour d'une base de données, etc.
- Votre service de webhook génère une réponse et envoie un la réponse du webhook aux agents conversationnels (Dialogflow CX).
- Les agents conversationnels (Dialogflow CX) créent une réponse de détection d'intent. Si un webhook a été appelé, il utilise la réponse fournie dans la réponse du webhook. Si aucun webhook n'a été appelé, il utilise la réponse statique définie dans l'agent. Les agents conversationnels (Dialogflow CX) envoient une réponse de détection d'intent à votre interface utilisateur ou à votre système d'intégration.
- Votre système d'interface utilisateur ou d'intégration reçoit la réponse de détection d'intent et transmet la réponse texte ou audio à l'utilisateur final.
- L'utilisateur final voit ou entend la réponse.
Objectif du guide
Ce guide explique comment appeler l'API pour un tour de conversation d'un agent qui n'utilise pas d'intégration (étape 2 du schéma ci-dessus). Ce guide n'explique pas comment mettre en œuvre une interface utilisateur pour votre utilisateur final.
Avant de commencer
Avant de lire ce guide, procédez comme suit :
- Consultez les principes de base de Flow.
- Effectuez la procédure de configuration.
- Créez un agent ou continuez à utiliser celui que vous avez créé dans la section Créer un agent à l'aide de flux.
Collecter les ID
Les exemples ci-dessous nécessitent plusieurs ID en entrée. Pour rechercher vos ID de projet, de région et d'agent, procédez comme suit :
- Ouvrez la console Dialogflow CX.
- Sélectionnez votre projet Google Cloud pour ouvrir le sélecteur d'agent.
- Cliquez sur le menu Option more_vert d'un agent dans la liste.
- Cliquez sur le bouton de copie de nom filter_none.
- Cela a pour effet de copier le nom complet de votre agent, qui inclut votre ID de projet, votre ID de région et votre ID d'agent au format suivant :
projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID
Vous avez également besoin d'un ID de session.
Une session représente une conversation entre un agent de conversation (Dialogflow CX) et un utilisateur final.
Vous créez un ID de session unique au début d'une conversation et vous l'utilisez pour chaque tour de conversation.
Pour essayer l'API, vous pouvez utiliser un ID de chaîne de 36 octets maximum, tel que test-session-123
.
Appeler la détection d'intent
Les exemples suivants appellent la méthode Sessions.detectIntent
.
Sélectionnez un protocole et une version pour la référence de session :
Protocole | V3 | V3beta1 |
---|---|---|
REST | Ressource de session | Ressource de session |
RPC | Interface de la session | Interface de session |
C++ | SessionsClient | Non disponible |
C# | SessionsClient | Non disponible |
Go | SessionsClient | Non disponible |
Java | SessionsClient | SessionsClient |
Node.js | SessionsClient | SessionsClient |
PHP | Non disponible | Non disponible |
Python | SessionsClient | SessionsClient |
Ruby | Non disponible | Non disponible |
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- AGENT_ID : votre ID d'agent
- REGION_ID : votre ID de région
- SESSION_ID : votre ID de session
- END_USER_INPUT : entrée de l'utilisateur final
Méthode HTTP et URL :
POST https://REGION_ID-dialogflow.googleapis.com/v3/projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID/sessions/SESSION_ID:detectIntent
Corps JSON de la requête :
{ "queryInput": { "text": { "text": "END_USER_INPUT" }, "languageCode": "en" }, "queryParams": { "timeZone": "America/Los_Angeles" } }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "responseId": "38e8f23d-eed2-445e-a3e7-149b242dd669", "queryResult": { "text": "I want to buy a shirt", "languageCode": "en", "responseMessages": [ { "text": { "text": [ "Ok, let's start a new order." ] } }, { "text": { "text": [ "I'd like to collect a bit more information from you." ] } }, { "text": { "text": [ "What color would you like?" ] } }, {} ], "currentPage": { "name": "projects/PROJECT_ID/locations/us-central1/agents/133b0350-f2d2-4928-b0b3-5b332259d0f7/flows/00000000-0000-0000-0000-000000000000/pages/ce0b88c4-9292-455c-9c59-ec153dad94cc", "displayName": "New Order" }, "intent": { "name": "projects/PROJECT_ID/locations/us-central1/agents/133b0350-f2d2-4928-b0b3-5b332259d0f7/intents/0adebb70-a727-4687-b8bc-fbbc2ac0b665", "displayName": "order.new" }, "intentDetectionConfidence": 1, "diagnosticInfo": { ... }, "match": { "intent": { "name": "projects/PROJECT_ID/locations/us-central1/agents/133b0350-f2d2-4928-b0b3-5b332259d0f7/intents/0adebb70-a727-4687-b8bc-fbbc2ac0b665", "displayName": "order.new" }, "resolvedInput": "I want to buy a shirt", "matchType": "INTENT", "confidence": 1 } } }
Java
Pour vous authentifier auprès de Dialogflow, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour vous authentifier auprès de Dialogflow, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour vous authentifier auprès de Dialogflow, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Passage en production
Avant d'exécuter votre agent en production, veillez à mettre en œuvre les bonnes pratiques pour le passage en production.