La fonctionnalité de rédaction intelligente aide un agent humain lors d'une discussion par chat avec un utilisateur final. Il suggère des expressions pour compléter les phrases commencées par l'agent humain. Vous pouvez utiliser cette fonctionnalité pour implémenter une fonctionnalité de suggestion personnalisée pour l'interface de chat de votre agent.
Ce guide vous explique comment implémenter la fonctionnalité Rédaction intelligente en appelant directement l'API. Si vous préférez, vous pouvez utiliser la console Agent Assist pour entraîner un modèle et tester ses performances à l'aide du simulateur. Pour obtenir des instructions, consultez le tutoriel sur le simulateur de rédaction intelligente.
Consultez la documentation sur les bonnes pratiques de la Rédaction intelligente pour obtenir des consignes sur l'intégration de la Rédaction intelligente à votre propre système et sur l'amélioration de la qualité de vos suggestions.
Avant de commencer
Avant de lire ce guide, procédez comme suit :
- Activez l'API Dialogflow pour votre projet.
Informations permettant d'identifier personnellement l'utilisateur et données des enfants
Lorsque vous envoyez des données à cette API, l'API tente de masquer toutes les informations permettant d'identifier personnellement les utilisateurs. Si vous devez vous assurer que le modèle n'inclut pas d'informations permettant d'identifier personnellement l'utilisateur, vous devez nettoyer vos données avant de les envoyer à l'API. Remplacez les mots masqués par des espaces réservés tels que `REDACTED_NUMBER` ou `REDACTED_NAME` au lieu de simplement les supprimer.
De plus, si vos données contiennent des informations collectées sur des enfants, vous devez les supprimer avant de les envoyer à l'API.
Entraîner et déployer un modèle
Les modèles de réponse suggérée Agent Assist sont entraînés à l'aide d'ensembles de données de conversation. Un ensemble de données de conversation contient les données de transcription que vous avez importées. Cette section vous explique comment créer un ensemble de données de conversation, y importer vos données de conversation, puis entraîner et déployer un modèle. Vous pouvez également effectuer ces actions à l'aide de la console Agent Assist si vous préférez ne pas appeler directement l'API.
Créer un ensemble de données de conversation
Avant de pouvoir importer des transcriptions de conversations, vous devez d'abord créer un ensemble de données de conversation pour les y placer. Appelez la méthode create sur la ressource ConversationDataset pour créer un ensemble de données de conversation.
La réponse contient un ID d'ensemble de données de conversation.
Importer des transcriptions de conversations dans votre ensemble de données de conversation
Importez les données de vos conversations dans votre ensemble de données de conversation afin qu'elles puissent être traitées par Agent Assist.
Assurez-vous que la transcription de chaque conversation est au format JSON et stockée dans un bucket Cloud Storage.
Un ensemble de données de conversation doit contenir au moins 30 000 conversations, sinon l'entraînement du modèle échouera. En règle générale, plus il y a de conversations, plus la qualité de votre modèle est élevée. Nous vous recommandons d'importer au moins trois mois de conversations pour couvrir un maximum de cas d'utilisation. Le nombre maximal de messages dans un ensemble de données de conversation est de 1 000 000.
Appelez la méthode importConversationData sur la ressource ConversationDataset pour importer vos conversations.
Champs obligatoires :
- ID de l'ensemble de données de conversation que vous avez créé précédemment.
- Le chemin d'accès
inputConfigmène aux données de transcription de vos conversations dans un bucket Cloud Storage.
La réponse est une opération de longue durée que vous pouvez interroger pour vérifier l'avancement.
Créer un modèle de conversation
Appelez la méthode create sur la ressource ConversationModel pour créer un modèle de conversation. Cette action crée également la liste d'autorisation du modèle.
Champs obligatoires :
- Dans
datasets, fournissez un seul ensemble de données à l'aide de l'ID d'ensemble de données de conversation que vous avez créé précédemment. - Définissez
smartReplyModelMetadatasur un objet vide ou renseignez le champ pour remplacer la valeur par défaut.
La réponse est une opération de longue durée que vous pouvez interroger pour vérifier l'avancement. Une fois l'opération terminée, l'ID du modèle et l'ID de la liste d'autorisation seront inclus dans les métadonnées de l'opération.
- ID du modèle :
name - ID de la liste d'autorisations :
smart_reply_model_metadata.associated_allowlist_info.document
Déployer le modèle de conversation
Appelez la méthode deploy sur la ressource ConversationModel pour déployer le modèle de conversation.
Champ obligatoire :
- Utiliser
conversationModels: saisissez l'ID du modèle de conversation que vous avez créé précédemment.
Gérer une liste d'autorisation
Chaque modèle est associé à une liste d'autorisation, qui est créée automatiquement lorsque vous créez un modèle de conversation. La liste d'autorisation contient toutes les réponses générées à partir de vos ensembles de données de conversation qui peuvent être présentées à un agent humain au moment de l'exécution. Cette section décrit la création et la gestion des listes d'autorisation. Vous pouvez également effectuer ces actions à l'aide de la console Agent Assist si vous préférez ne pas appeler directement l'API.
Exporter le contenu de la liste d'autorisation dans un fichier CSV
Lors de la création d'un modèle, une liste d'autorisation associée est automatiquement créée. La liste d'autorisation est une ressource Document dotée d'un ID unique. L'ID est renvoyé dans smart_reply_model_metadata.associated_allowlist_info.document lorsqu'un modèle est créé. Pour examiner les messages de la liste d'autorisation et les modifier, vous devez les exporter vers un bucket Cloud Storage.
Appelez la méthode export sur la ressource Document pour exporter le document vers un fichier CSV dans un bucket Cloud Storage.
Le champ smart_messaging_partial_update est facultatif, mais il affecte la façon dont vous pourrez mettre à jour cette liste d'autorisation à l'avenir. Si la valeur est définie sur true, le fichier CSV exporté inclut une colonne contenant un ID unique pour chaque message. Vous pouvez utiliser l'ID de message pour ne mettre à jour que les messages spécifiés au lieu du document entier. Si smart_messaging_partial_update est défini sur false ou n'est pas défini, la colonne supplémentaire n'apparaît pas dans le fichier et toute modification de la liste d'autorisation nécessitera une mise à jour de l'ensemble du document.
Champ obligatoire :
- Le chemin d'accès
gcsDestinationmène à votre bucket Cloud Storage.
La réponse est une opération de longue durée que vous pouvez interroger pour vérifier l'avancement. Ensuite, le fichier CSV que vous avez fourni dans la requête est rempli avec des candidats de réponse.
Examiner la liste d'autorisation
La liste d'autorisation générée contient des réponses qui ont été générées automatiquement par la fonctionnalité Réponses suggérées en fonction des données de vos conversations. Vous pouvez désormais examiner et modifier ces réponses si nécessaire. Téléchargez le fichier CSV depuis votre bucket Cloud Storage, modifiez-le selon vos besoins, puis réimportez-le dans le bucket Cloud Storage. Seules les réponses figurant sur la liste d'autorisation peuvent être présentées aux agents humains.
Si vous modifiez des réponses, nous vous recommandons de ne corriger que l'orthographe et la grammaire, et de ne pas changer le sens du message. Plus le texte modifié s'éloigne du sens du modèle, moins le message est susceptible d'être affiché.
Vous pouvez également créer des messages si nécessaire. Comme les messages modifiés, les messages créés sont moins susceptibles d'être affichés lors de l'exécution.
Mettre à jour la liste d'autorisation
Une fois que vous avez terminé de mettre à jour le fichier CSV, vous pouvez l'utiliser pour mettre à jour la ressource Document. Vous pouvez choisir de mettre à jour l'intégralité de la liste d'autorisation ou uniquement les messages spécifiés. Pour ne mettre à jour que certains messages, vous devez avoir défini smart_messaging_partial_update sur true lorsque vous avez exporté la liste d'autorisation.
Si vous l'avez déjà fait, utilisez la colonne générée automatiquement dans le fichier CSV exporté pour indiquer les messages à mettre à jour.
Appelez la méthode reload sur la ressource Document pour mettre à jour la liste d'autorisation. Pour ne mettre à jour que certains messages, définissez smart_messaging_partial_update sur true dans ReloadDocumentRequest. Pour mettre à jour l'intégralité de la liste d'autorisation, laissez smart_messaging_partial_update non défini ou définissez-le sur false.
Champs obligatoires :
gcsSourcecorrespond au chemin d'accès Cloud Storage au fichierCSV.- Pour
name, utilisez le nom de ressource de la liste d'autorisation généré lorsque vous avez créé un modèle de conversation.
Exemple de requête :
{
"name":"projects/project-id/knowledgeBases/knowledge-base-id/documents/allowlist-id",
"gcsSource" {
"uri": "gs://revised_smart_reply_allowlist_path"
}
}Évaluer les performances d'un modèle entraîné
Vous pouvez tester les performances d'un modèle après l'avoir déployé et créé une liste d'autorisation pour celui-ci. Vous devez également fournir un ensemble de données de test. Les réponses générées par le modèle de réponse suggérée entraîné et sa liste d'autorisation associée seront comparées aux messages réels des agents dans l'ensemble de données de test. L'ensemble de données de test doit être constitué de données de conversation réelles, mais ne doit contenir aucune des données de l'ensemble de données de conversation que vous avez utilisé pour entraîner le modèle. Par exemple, si vous disposez d'un mois de trafic de conversation, vous pouvez utiliser trois semaines de données de conversation pour créer un ensemble de données de conversation et la semaine restante pour créer l'ensemble de données de test. Un ensemble de données de test doit contenir au moins 1 000 conversations, mais en règle générale, les métriques d'évaluation seront plus fiables si l'ensemble de données de test contient plus de conversations. Le format de l'ensemble de données de test est identique à celui de l'ensemble de données de conversation.
Pour créer une évaluation de modèle, appelez la méthode CreateConversationModelEvaluation sur une ressource ConversationModel. Cette méthode renvoie une opération de longue durée. Vous pouvez interroger l'opération pour vérifier son état, qui renverra l'une des valeurs suivantes : INITIALIZING, RUNNING, SUCCEEDED, CANCELLED ou FAILED.
Champs obligatoires :
InputDataset: ensemble de données de test qui sera utilisé pour tester les performances du modèle.allowlist_document: liste d'autorisation associée au modèle de réponses suggérées à tester.
Une ressource ConversationModelEvaluation est renvoyée lorsque l'opération de longue durée est terminée. Deux métriques sont incluses :
allowlist_coverage: pourcentage des messages de l'agent dans l'ensemble de données de test qui sont couverts par la liste d'autorisation.recall: pourcentage de messages d'agent dans l'ensemble de données de test qui figurent dans la liste d'autorisation et apparaissent dans les trois premières suggestions proposées par le modèle de réponses intelligentes.
Configurer un profil de conversation
Un profil de conversation configure un ensemble de paramètres qui contrôlent les suggestions adressées à un agent au cours d'une conversation. Les étapes suivantes permettent de créer ConversationProfile avec un objet HumanAgentAssistantConfig. Vous pouvez également effectuer ces actions à l'aide de la console Agent Assist si vous préférez ne pas appeler directement l'API.
Créer un profil de conversation
Pour créer un profil de conversation, appelez la méthode create sur la ressource ConversationProfile.
Indiquez l'ID de votre base de connaissances, de votre document, de votre projet et de votre modèle.
{
"displayName": "smart_compose_assist",
"humanAgentAssistantConfig": {
"humanAgentSuggestionConfig": {
"featureConfigs": [
{
"suggestionFeature": {
"type": "SMART_COMPOSE"
},
"queryConfig": {
"documentQuerySource": {
"documents": "projects/PROJECT_ID/knowledgeBases/KNOWLEDGE_BASE_ID/documents/DOCUMENT_ID"
},
"maxResults": "1"
},
"conversationModelConfig": {
"model": "projects/PROJECT_ID/conversationModels/MODEL_ID"
}
}
]
}
}
}
La réponse contient le nouvel ID de votre profil de conversation.
Gérer les conversations lors de l'exécution
Lorsqu'un dialogue commence entre un utilisateur final et un agent humain, vous créez une conversation. Pour afficher les suggestions, vous devez également créer un participant utilisateur final et un participant d'agent humain, puis les ajouter à la conversation. Les sections suivantes vous guident tout au long de ce processus.
Créer une conversation
Pour créer une conversation, appelez la méthode create sur la ressource Conversation.
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Cloud
- LOCATION_ID : ID de votre emplacement
- CONVERSATION_PROFILE_ID: ID obtenu lors de la création du profil de conversation
Méthode HTTP et URL :
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/conversations
Corps JSON de la requête :
{
"conversationProfile": "projects/PROJECT_ID/locations/LOCATION_ID/conversationProfiles/CONVERSATION_PROFILE_ID",
}
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{
"name": "projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID",
"lifecycleState": "IN_PROGRESS",
"conversationProfile": "projects/PROJECT_ID/locations/LOCATION_ID/conversationProfiles/CONVERSATION_PROFILE_ID",
"startTime": "2018-11-05T21:05:45.622Z"
}
Le segment de chemin d'accès après conversations contient le nouvel ID de la conversation.
Python
Pour vous authentifier auprès d'Agent Assist, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Créer un participant d'utilisateur final
Vous devez ajouter à la conversation des participants à la fois à l'utilisateur final et à l'agent humain pour voir les suggestions. Pour créer un participant d'utilisateur final, appelez la méthode create sur la ressource Participant. Indiquez votre ID de conversation et END_USER pour le champ role.
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Cloud
- LOCATION_ID : ID de votre emplacement
- CONVERSATION_ID: ID de votre conversation
Méthode HTTP et URL :
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/participants
Corps JSON de la requête :
{
"role": "END_USER",
}
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{
"name": "projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID",
"role": "END_USER"
}
Le segment de chemin d'accès indiqué après participants contient le nouvel ID de participant de l'utilisateur final.
Python
Pour vous authentifier auprès d'Agent Assist, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Créer un participant d'agent humain
Pour créer un participant d'agent humain, appelez la méthode create sur la ressource Participant. Indiquez votre ID de conversation et HUMAN_AGENT pour le champ role.
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Cloud
- LOCATION_ID : ID de votre emplacement
- CONVERSATION_ID: ID de votre conversation
Méthode HTTP et URL :
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/participants
Corps JSON de la requête :
{
"role": "HUMAN_AGENT",
}
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{
"name": "projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID",
"role": "HUMAN_AGENT"
}
Le segment de chemin d'accès indiqué après participants contient l'ID du nouveau participant de votre agent humain.
Python
Pour vous authentifier auprès d'Agent Assist, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Ajouter et analyser un message de l'agent humain
Chaque fois que l'un des participants saisit un message dans la conversation, vous devez l'envoyer à l'API pour traitement. Les suggestions d'Agent Assist sont basées sur l'analyse des messages des agents humains et des utilisateurs finaux. Pour ajouter et analyser un message d'agent humain pour la conversation, appelez la méthode analyzeContent sur la ressource Participant.
Indiquez l'ID de conversation et l'ID de participant de l'agent humain.
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet GCP
- CONVERSATION_ID: ID de votre conversation
- PARTICIPANT_ID: ID de votre participant d'agent humain
Méthode HTTP et URL :
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID:analyzeContent
Corps JSON de la requête :
{
"textInput": {
"text": "How may I help you?",
"languageCode": "en-US"
}
}
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{
"message": {
"name": "projects/PROJECT_ID/conversations/CONVERSATION_ID/messages/MESSAGE_ID",
"content": "How may I help you?",
"languageCode": "en-US",
"participant": "PARTICIPANT_ID",
"participantRole": "HUMAN_AGENT",
"createTime": "2020-02-13T00:01:30.683Z"
},
"humanAgentSuggestionResults": [
{
"suggestSmartRepliesResponse": {
"smartReplyAnswers": [
{
"reply": "I am here to help you.",
"confidence": 0.5,
"answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID_1"
},
{
"reply": "Sorry for the wait, we have a high volume of chats right now.",
"confidence": 0.3,
"answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID_2"
},
{
"reply": "Thank you for contacting us!",
"confidence": 0.1,
"answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID_3"
}
]
}
}
]
}
Python
Pour vous authentifier auprès d'Agent Assist, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Ajouter et analyser un message de l'utilisateur final
Pour ajouter et analyser un message d'utilisateur final pour la conversation, appelez la méthode analyzeContent sur la ressource Participant. Indiquez l'ID de la conversation et l'ID de participant de l'utilisateur final.
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet GCP
- CONVERSATION_ID: ID de votre conversation
- PARTICIPANT_ID: ID du participant de l'utilisateur final
Méthode HTTP et URL :
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID:analyzeContent
Corps JSON de la requête :
{
"textInput": {
"text": "I want to reserve a room.",
"languageCode": "en-US"
}
}
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{
"message": {
"name": "projects/PROJECT_ID/conversations/CONVERSATION_ID/messages/MESSAGE_ID",
"content": "I want to reserve a room.",
"languageCode": "en-US",
"participant": "PARTICIPANT_ID",
"participantRole": "END_USER",
"createTime": "2020-02-13T00:07:35.925Z"
},
"humanAgentSuggestionResults": [
{
"suggestSmartRepliesResponse": {
"smartReplyAnswers": [
{
"reply": "Where would you like to reserve a room?",
"confidence": 0.5,
"answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID_1"
},
{
"reply": "What type of rooms would you like to reserve?",
"confidence": 0.3,
"answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID_2"
},
{
"reply": "How long do you want to stay?",
"confidence": 0.1,
"answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID_3"
}
]
}
}
]
}
Python
Pour vous authentifier auprès d'Agent Assist, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Obtenir une suggestion (facultatif)
Vous pouvez obtenir des suggestions à tout moment. Vous pouvez éventuellement spécifier un ID de message pour recevoir des suggestions basées sur ce message. Si ce champ n'est pas défini, les suggestions sont basées par défaut sur le dernier message de l'un des participants. Pour obtenir des suggestions, appelez la méthode suggestSmartReplies sur la ressource Suggestion. Indiquez l'ID de conversation, l'ID de participant à l'agent humain et l'ID de message de l'un des participants (facultatif).
La réponse contient des suggestions de réponses suggérées pour l'agent humain.
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet GCP
- CONVERSATION_ID: ID de votre conversation
- PARTICIPANT_ID: ID du participant de l'utilisateur final
Méthode HTTP et URL :
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID:analyzeContent
Corps JSON de la requête :
{
"textInput": {
"text": "I want to reserve a room.",
"languageCode": "en-US"
}
}
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{
"message": {
"name": "projects/PROJECT_ID/conversations/CONVERSATION_ID/messages/MESSAGE_ID",
"content": "I want to reserve a room.",
"languageCode": "en-US",
"participant": "PARTICIPANT_ID",
"participantRole": "END_USER",
"createTime": "2020-02-13T00:07:35.925Z"
},
"humanAgentSuggestionResults": [
{
"suggestSmartRepliesResponse": {
"smartReplyAnswers": [
{
"reply": "Where would you like to reserve a room?",
"confidence": 0.5,
"answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID_1"
},
{
"reply": "What type of rooms would you like to reserve?",
"confidence": 0.3,
"answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID_2"
},
{
"reply": "How long do you want to stay?",
"confidence": 0.1,
"answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID_3"
}
]
}
}
]
}
Python
Pour vous authentifier auprès d'Agent Assist, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Terminer la conversation
Pour terminer la conversation, appelez la méthode complete sur la ressource conversations. Indiquez l'ID de la conversation.
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet GCP
- CONVERSATION_ID: ID obtenu lors de la création de la conversation
Méthode HTTP et URL :
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID:complete
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{
"name": "projects/PROJECT_ID/conversations/CONVERSATION_ID",
"lifecycleState": "COMPLETED",
"conversationProfile": "projects/PROJECT_ID/conversationProfiles/CONVERSATION_PROFILE_ID",
"startTime": "2018-11-05T21:05:45.622Z",
"endTime": "2018-11-06T03:50:26.930Z"
}
Python
Pour vous authentifier auprès d'Agent Assist, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.