Rédaction intelligente

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.

Un agent humain reçoit une suggestion de texte lorsqu'il saisit du texte dans une interface de chat. 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 :

  1. 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 inputConfig mè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 smartReplyModelMetadata sur 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 gcsDestination mè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 :

  • gcsSource correspond au chemin d'accès Cloud Storage au fichier CSV.
  • 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.

Voici un exemple JSON :
{
  "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.

def create_conversation(project_id, conversation_profile_id):
    """Creates a conversation with given values

    Args:
        project_id:  The GCP project linked with the conversation.
        conversation_profile_id: The conversation profile id used to create
        conversation."""

    client = dialogflow.ConversationsClient()
    conversation_profile_client = dialogflow.ConversationProfilesClient()
    project_path = client.common_project_path(project_id)
    conversation_profile_path = conversation_profile_client.conversation_profile_path(
        project_id, conversation_profile_id
    )
    conversation = {"conversation_profile": conversation_profile_path}
    response = client.create_conversation(
        parent=project_path, conversation=conversation
    )

    print("Life Cycle State: {}".format(response.lifecycle_state))
    print("Conversation Profile Name: {}".format(response.conversation_profile))
    print("Name: {}".format(response.name))
    return response

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.

def create_participant(project_id: str, conversation_id: str, role: str):
    from google.cloud import dialogflow_v2beta1 as dialogflow

    """Creates a participant in a given conversation.

    Args:
        project_id: The GCP project linked with the conversation profile.
        conversation_id: Id of the conversation.
        participant: participant to be created."""

    client = dialogflow.ParticipantsClient()
    conversation_path = dialogflow.ConversationsClient.conversation_path(
        project_id, conversation_id
    )
    if role in ROLES:
        response = client.create_participant(
            parent=conversation_path, participant={"role": role}, timeout=600
        )
        print("Participant Created.")
        print(f"Role: {response.role}")
        print(f"Name: {response.name}")

        return response

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.

def create_participant(project_id: str, conversation_id: str, role: str):
    from google.cloud import dialogflow_v2beta1 as dialogflow

    """Creates a participant in a given conversation.

    Args:
        project_id: The GCP project linked with the conversation profile.
        conversation_id: Id of the conversation.
        participant: participant to be created."""

    client = dialogflow.ParticipantsClient()
    conversation_path = dialogflow.ConversationsClient.conversation_path(
        project_id, conversation_id
    )
    if role in ROLES:
        response = client.create_participant(
            parent=conversation_path, participant={"role": role}, timeout=600
        )
        print("Participant Created.")
        print(f"Role: {response.role}")
        print(f"Name: {response.name}")

        return response

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.

def analyze_content_text(
    project_id: str, conversation_id: str, participant_id: str, text: str
):
    from google.cloud import dialogflow_v2beta1 as dialogflow

    """Analyze text message content from a participant.

    Args:
        project_id: The GCP project linked with the conversation profile.
        conversation_id: Id of the conversation.
        participant_id: Id of the participant.
        text: the text message that participant typed."""

    client = dialogflow.ParticipantsClient()
    participant_path = client.participant_path(
        project_id, conversation_id, participant_id
    )
    text_input = {"text": text, "language_code": "en-US"}
    response = client.analyze_content(
        participant=participant_path, text_input=text_input
    )
    print("AnalyzeContent Response:")
    print(f"Reply Text: {response.reply_text}")

    for suggestion_result in response.human_agent_suggestion_results:
        if suggestion_result.error is not None:
            print(f"Error: {suggestion_result.error.message}")
        if suggestion_result.suggest_articles_response:
            for answer in suggestion_result.suggest_articles_response.article_answers:
                print(f"Article Suggestion Answer: {answer.title}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_faq_answers_response:
            for answer in suggestion_result.suggest_faq_answers_response.faq_answers:
                print(f"Faq Answer: {answer.answer}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_smart_replies_response:
            for (
                answer
            ) in suggestion_result.suggest_smart_replies_response.smart_reply_answers:
                print(f"Smart Reply: {answer.reply}")
                print(f"Answer Record: {answer.answer_record}")

    for suggestion_result in response.end_user_suggestion_results:
        if suggestion_result.error:
            print(f"Error: {suggestion_result.error.message}")
        if suggestion_result.suggest_articles_response:
            for answer in suggestion_result.suggest_articles_response.article_answers:
                print(f"Article Suggestion Answer: {answer.title}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_faq_answers_response:
            for answer in suggestion_result.suggest_faq_answers_response.faq_answers:
                print(f"Faq Answer: {answer.answer}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_smart_replies_response:
            for (
                answer
            ) in suggestion_result.suggest_smart_replies_response.smart_reply_answers:
                print(f"Smart Reply: {answer.reply}")
                print(f"Answer Record: {answer.answer_record}")

    return response

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.

La réponse contient un ID de message. Les suggestions seront acquises à l'étape suivante.

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.

def analyze_content_text(
    project_id: str, conversation_id: str, participant_id: str, text: str
):
    from google.cloud import dialogflow_v2beta1 as dialogflow

    """Analyze text message content from a participant.

    Args:
        project_id: The GCP project linked with the conversation profile.
        conversation_id: Id of the conversation.
        participant_id: Id of the participant.
        text: the text message that participant typed."""

    client = dialogflow.ParticipantsClient()
    participant_path = client.participant_path(
        project_id, conversation_id, participant_id
    )
    text_input = {"text": text, "language_code": "en-US"}
    response = client.analyze_content(
        participant=participant_path, text_input=text_input
    )
    print("AnalyzeContent Response:")
    print(f"Reply Text: {response.reply_text}")

    for suggestion_result in response.human_agent_suggestion_results:
        if suggestion_result.error is not None:
            print(f"Error: {suggestion_result.error.message}")
        if suggestion_result.suggest_articles_response:
            for answer in suggestion_result.suggest_articles_response.article_answers:
                print(f"Article Suggestion Answer: {answer.title}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_faq_answers_response:
            for answer in suggestion_result.suggest_faq_answers_response.faq_answers:
                print(f"Faq Answer: {answer.answer}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_smart_replies_response:
            for (
                answer
            ) in suggestion_result.suggest_smart_replies_response.smart_reply_answers:
                print(f"Smart Reply: {answer.reply}")
                print(f"Answer Record: {answer.answer_record}")

    for suggestion_result in response.end_user_suggestion_results:
        if suggestion_result.error:
            print(f"Error: {suggestion_result.error.message}")
        if suggestion_result.suggest_articles_response:
            for answer in suggestion_result.suggest_articles_response.article_answers:
                print(f"Article Suggestion Answer: {answer.title}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_faq_answers_response:
            for answer in suggestion_result.suggest_faq_answers_response.faq_answers:
                print(f"Faq Answer: {answer.answer}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_smart_replies_response:
            for (
                answer
            ) in suggestion_result.suggest_smart_replies_response.smart_reply_answers:
                print(f"Smart Reply: {answer.reply}")
                print(f"Answer Record: {answer.answer_record}")

    return response

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.

def analyze_content_text(
    project_id: str, conversation_id: str, participant_id: str, text: str
):
    from google.cloud import dialogflow_v2beta1 as dialogflow

    """Analyze text message content from a participant.

    Args:
        project_id: The GCP project linked with the conversation profile.
        conversation_id: Id of the conversation.
        participant_id: Id of the participant.
        text: the text message that participant typed."""

    client = dialogflow.ParticipantsClient()
    participant_path = client.participant_path(
        project_id, conversation_id, participant_id
    )
    text_input = {"text": text, "language_code": "en-US"}
    response = client.analyze_content(
        participant=participant_path, text_input=text_input
    )
    print("AnalyzeContent Response:")
    print(f"Reply Text: {response.reply_text}")

    for suggestion_result in response.human_agent_suggestion_results:
        if suggestion_result.error is not None:
            print(f"Error: {suggestion_result.error.message}")
        if suggestion_result.suggest_articles_response:
            for answer in suggestion_result.suggest_articles_response.article_answers:
                print(f"Article Suggestion Answer: {answer.title}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_faq_answers_response:
            for answer in suggestion_result.suggest_faq_answers_response.faq_answers:
                print(f"Faq Answer: {answer.answer}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_smart_replies_response:
            for (
                answer
            ) in suggestion_result.suggest_smart_replies_response.smart_reply_answers:
                print(f"Smart Reply: {answer.reply}")
                print(f"Answer Record: {answer.answer_record}")

    for suggestion_result in response.end_user_suggestion_results:
        if suggestion_result.error:
            print(f"Error: {suggestion_result.error.message}")
        if suggestion_result.suggest_articles_response:
            for answer in suggestion_result.suggest_articles_response.article_answers:
                print(f"Article Suggestion Answer: {answer.title}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_faq_answers_response:
            for answer in suggestion_result.suggest_faq_answers_response.faq_answers:
                print(f"Faq Answer: {answer.answer}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_smart_replies_response:
            for (
                answer
            ) in suggestion_result.suggest_smart_replies_response.smart_reply_answers:
                print(f"Smart Reply: {answer.reply}")
                print(f"Answer Record: {answer.answer_record}")

    return response

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.

def complete_conversation(project_id, conversation_id):
    """Completes the specified conversation. Finished conversations are purged from the database after 30 days.

    Args:
        project_id: The GCP project linked with the conversation.
        conversation_id: Id of the conversation."""

    client = dialogflow.ConversationsClient()
    conversation_path = client.conversation_path(project_id, conversation_id)
    conversation = client.complete_conversation(name=conversation_path)
    print("Completed Conversation.")
    print("Life Cycle State: {}".format(conversation.lifecycle_state))
    print("Conversation Profile Name: {}".format(conversation.conversation_profile))
    print("Name: {}".format(conversation.name))
    return conversation