Assistance par connaissances génératives

L'assistance générative des connaissances fournit des réponses aux questions de vos agents en s'appuyant sur les informations contenues dans les documents que vous fournissez. Vous pouvez spécifier votre nom de domaine ou importer des documents pour un agent de datastore à indexer. L'assistance par connaissances génératives synthétise ces informations avec la conversation en cours et les métadonnées client disponibles pour fournir à votre agent une réponse plus pertinente et plus rapide.

La fonctionnalité proactive de Knowledge Assist générative suit la conversation en cours entre votre agent et le client. Il fournit de manière proactive des suggestions de requêtes de recherche en fonction du contexte de la conversation et de la réponse.

Créer un agent de data store

  1. Sauf si vous êtes le propriétaire du projet, vous avez besoin de ces rôles pour créer un agent de data store:

    • Administrateur de l'API Dialogflow
    • Administrateur Discovery Engine
  2. Activez l'API Vertex AI Agent Builder dans la console Vertex AI.

  3. Pour créer l'agent, suivez la procédure décrite dans la section Agents de datastore.

Répondre aux questions de vos agents humains

L'agent de data store peut répondre aux questions de vos agents humains en fonction des documents que vous avez fournis.

Étape 1: Créer un profil de conversation

Créez un profil de conversation à l'aide de la console Agent Assist ou de l'API.

Créer depuis la console

  1. Vous devez activer le type de suggestion de Knowledge Assist générative et l'associer à l'agent du data store de l'étape précédente.
  2. Facultatif: Cochez la case Désactiver la journalisation des requêtes de recherche des agents pour indiquer si vous souhaitez que Google collecte et stocke les requêtes de recherche masquées afin d'améliorer la qualité.
  3. Vous pouvez utiliser la case à cocher Activer la requête enrichie par la conversation pour indiquer si vous souhaitez prendre en compte le contexte de la conversation entre l'agent humain et l'utilisateur lors de la génération de la réponse à la requête de recherche.

Créer à partir d'une API

Les étapes suivantes montrent comment créer un ConversationProfile avec un objet HumanAgentAssistantConfig. Vous pouvez également effectuer ces actions à l'aide de la console Agent Assist.

Pour créer un profil de conversation, appelez la méthode create sur la ressource ConversationProfile.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
  • PROJECT_ID : ID de votre projet.
  • LOCATION_ID: ID de votre emplacement
  • AGENT_ID: ID de l'agent de votre data store de l'étape précédente
Voici un exemple de fichier JSON:
  {
    "displayName": "my-conversation-profile-display-name",
    "humanAgentAssistantConfig": {
      "humanAgentSuggestionConfig": {
        "featureConfigs": [
          {
            "suggestionFeature": {
              "type": "KNOWLEDGE_SEARCH"
            },
            "queryConfig": {
              "dialogflowQuerySource": {
                "humanAgentSideConfig": {
                  "agent": "projects/PROJECT_ID/locations/LOCATION_ID/agents/AGENT_ID"
                }
              }
            },
            "disableAgentQueryLogging": false,
            "enableConversationAugmentedQuery": false,
          }
        ]
      }
    }
  }
      

Lorsque vous créez un profil de conversation dans la console Agent Assist, Agent Assist active automatiquement l'assistance générative de la base de connaissances et l'assistance générative proactive de la base de connaissances. Pour désactiver l'assistance générative proactive, vous devez créer votre profil de conversation à l'aide de l'API.

Étape 2: Utiliser un agent de data store

Vous pouvez également utiliser l'API SearchKnowledge pour obtenir les réponses de l'agent du data store. Vous pouvez également utiliser les configurations suivantes dans votre requête SearchKnowledge:

  • querySource: ce champ indique si un agent a saisi la requête ou si l'assistance proactive générative basée sur les connaissances l'a suggérée automatiquement.
  • exactSearch: définissez ce champ pour indiquer si vous souhaitez rechercher la requête de saisie exacte sans réécriture de la requête.
  • endUserMetadata: définissez ce champ pour inclure des informations supplémentaires sur l'utilisateur final qui améliorent la réponse générée. Pour en savoir plus, consultez la page Personnalisation des performances de l'agent Datastore.
  • searchConfig: définissez ce champ pour contrôler davantage la promotion et le filtrage des documents de base de connaissances. Pour en savoir plus, consultez la page Configuration de la recherche de performances de l'agent Data Store.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet.
  • LOCATION_ID: ID de votre emplacement
  • CONVERSATION_PROFILE_ID: ID de votre profil de conversation obtenu à l'étape précédente
  • SESSION_ID: votre ID de session de recherche
  • L'historique des recherches de la même session peut avoir une incidence sur les résultats de recherche. Vous pouvez utiliser l'ID de conversation ci-dessous pour l'ID de session.
  • CONVERSATION_ID: conversation (entre un agent humain et un utilisateur final) au cours de laquelle la requête de recherche est déclenchée
  • MESSAGE_ID: dernier message de la conversation lorsque la requête de recherche est déclenchée

Voici un exemple de requête JSON:

{
  "parent": "projects/PROJECT_ID/locations/LOCATION_ID"
  "query": {
    "text": "What is the return policy?"
  }
  "conversationProfile": "projects/PROJECT_ID/locations/LOCATION_ID/conversationProfiles/CONVERSATION_PROFILE_ID"
  "sessionId": "SESSION_ID
  "conversation": "projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID"
  "latestMessage": "projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/messages/MESSAGE_ID
  "querySource": AGENT_QUERY
  "exactSearch": false
  "searchConfig": {
    "filterSpecs": {
      "filter": "category: ANY(\"persona_B\")"
    }
  }
  "endUserMetadata": {
    "deviceOwned": "Google Pixel 7"
  }
}

Vous pouvez éventuellement fournir des noms de ressources conversation et latest_message si la recherche de l'agent se produit lors d'une conversation avec un utilisateur. Ces deux champs sont obligatoires si vous activez l'option enable_conversation_augmented_query et que vous préférez améliorer l'expérience de réponse aux requêtes avec le contexte de la conversation entre votre agent et l'utilisateur.

Simulateur

Testez votre agent de data store dans le simulateur Agent Assist.

Dans l'exemple précédent, l'agent du data store répond à la requête utilisateur What is the refund processing time? avec les informations suivantes:

  • Réponse générée par l'IA: Une fois le colis arrivé au centre de retours du marchand, son traitement peut prendre jusqu'à sept jours ouvrés supplémentaires. Vérifiez l'état de votre remboursement à l'aide du numéro de suivi du retour indiqué sur la page de vos commandes.
  • Titre du document de la base de connaissances pertinent: Retours et remboursements.

suggérer des questions et des réponses de manière proactive à vos agents ;

L'assistance générative proactive suit une conversation en cours et fournit des suggestions de requêtes de recherche et des réponses de manière proactive.

Étape 1: Créer un profil de conversation

Créez un profil de conversation à l'aide de la console Agent Assist ou de l'API. Nous vous recommandons de créer un profil de conversation à l'aide de la console Agent Assist.

Créer depuis la console

  1. Activez le type de suggestion Assistant génératif de connaissances et associez-le à l'agent de data store de l'étape précédente. Cela permet à l'agent de data store de fournir de manière proactive des suggestions de requêtes et de réponses, et de répondre aux requêtes de recherche manuelles de vos agents humains.
  2. Facultatif: cochez la case Afficher toutes les requêtes suggérées pour la conversation pour que l'agent du data store affiche toutes ces requêtes, même si aucune réponse n'est trouvée dans vos documents de connaissances. Il permet de tester les requêtes qui peuvent être extraites de la conversation en cours.
  3. Facultatif: cochez la case Charger les réponses proactives de manière asynchrone pour n'obtenir que des suggestions de requêtes. Vous pouvez envoyer manuellement la requête suggérée à l'API SearchKnowledge et automatiquement dans le simulateur de console et les modules d'interface utilisateur d'Agent Assist.

Créer à partir d'une API

Les étapes suivantes permettent de créer un ConversationProfile avec un objet HumanAgentAssistantConfig. Vous pouvez également effectuer ces actions à l'aide de la console Agent Assist.

Pour créer un profil de conversation, appelez la méthode create sur la ressource ConversationProfile.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
  • PROJECT_ID : ID de votre projet.
  • LOCATION_ID: ID de votre emplacement
  • AGENT_ID: ID de l'agent de votre data store de l'étape précédente
Voici un exemple de fichier JSON:
  {
    "displayName": "my-conversation-profile-display-name",
    "humanAgentAssistantConfig": {
      "humanAgentSuggestionConfig": {
        "featureConfigs": [
          {
            "suggestionFeature": {
              "type": "KNOWLEDGE_ASSIST"
            },
            "queryConfig": {
              "dialogflowQuerySource": {
                "agent": "projects/PROJECT_ID/locations/LOCATION_ID/agents/AGENT_ID"
              }
            },
            "enableQuerySuggestionWhenNoAnswer": false,
          }
        ]
      }
    }
  }
      

Étape 2: Gérer les conversations lors de l'exécution

L'assistance générative proactive basée sur les connaissances traite les conversations au moment de l'exécution pour fournir de manière proactive des suggestions de requêtes de recherche en fonction du contexte de la conversation et de la réponse.

Créer une conversation

Vous devez d'abord créer une conversation:

REST

Pour créer une conversation, appelez la méthode create sur la ressource Conversation.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet Cloud
  • LOCATION_ID: votre ID d'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 en savoir plus, consultez la documentation de référence de l'API Python Vertex AI Agent Builder.

Pour vous authentifier auprès de Vertex AI Agent Builder, 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 utilisateur

Ajoutez des participants utilisateur et agent à la conversation pour voir les suggestions. Commencez par ajouter le participant utilisateur à la conversation:

REST

Pour créer un participant utilisateur, appelez la méthode create sur la ressource Participant.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet Cloud
  • LOCATION_ID: votre ID d'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 utilisateur.

Python

Pour en savoir plus, consultez la documentation de référence de l'API Python Vertex AI Agent Builder.

Pour vous authentifier auprès de Vertex AI Agent Builder, 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

Pour ajouter un participant d'agent à la conversation:

REST

Pour créer un agent-participant, appelez la méthode create sur la ressource Participant.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet Cloud
  • LOCATION_ID: votre ID d'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 le nouvel ID de participant de votre agent humain.

Python

Pour en savoir plus, consultez la documentation de référence de l'API Python Vertex AI Agent Builder.

Pour vous authentifier auprès de Vertex AI Agent Builder, 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

Chaque fois que l'un des participants saisit un message dans la conversation, vous devez l'envoyer à l'API pour traitement. Les suggestions de l'agent de data store sont basées sur l'analyse des messages des agents humains et des utilisateurs. Dans l'exemple suivant, l'agent humain démarre la conversation en demandant "Comment puis-je vous aider ?".

Aucune suggestion n'a encore été renvoyée dans la réponse.

REST

Pour ajouter et analyser un message d'agent humain dans la conversation, appelez la méthode analyzeContent sur la ressource Participant.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet.
  • 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"
  }
}

Python

Pour en savoir plus, consultez la documentation de référence de l'API Python Vertex AI Agent Builder.

Pour vous authentifier auprès de Vertex AI Agent Builder, 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 un message de l'utilisateur pour obtenir des suggestions

En réponse à l'agent, l'utilisateur demande : "Quand pourrai-je obtenir mon remboursement ?". Cette fois, la réponse de l'API contient une requête suggérée et la réponse de l'IA générative basée sur les documents de la base de connaissances.

REST

Pour ajouter et analyser un message utilisateur pour la conversation, appelez la méthode analyzeContent sur la ressource Participant.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet.
  • 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": "When can I get my return refund?",
    "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": "When can I get my return refund?",
    "languageCode": "en-US",
    "participant": "PARTICIPANT_ID",
    "participantRole": "END_USER",
    "createTime": "2020-02-13T00:07:35.925Z"
  },
  "humanAgentSuggestionResults": [
    {
      "suggestKnowledgeAssistResponse": {
        "knowledgeAssistAnswer": {
          "suggestedQuery": {
            "queryText": "Refund processing time"
          },
          "suggestedQueryAnswer": {
            "answerText": "After your return is processed, you receive your refund in 7 days. The refund amount should be for the full value of the items returned, but doesn't include shipping & service fees.",
            "generativeSource": {
              "snippets": [
                {
                  "title": "Returns & refunds - Help",
                  "uri": "https://example.com/",
                  "text": "When the package with your return arrives at the seller's return center, it may take up to 7 additional business days to process. Check the status of your refund with the return tracking number found on your orders page."
                }
              ]
            },
          },
          "answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID"
        },
      }
    }
  ]
}

Python

Pour en savoir plus, consultez la documentation de référence de l'API Python Vertex AI Agent Builder.

Pour vous authentifier auprès de Vertex AI Agent Builder, 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

À la fin de la conversation, utilisez l'API pour la terminer.

REST

Pour terminer la conversation, appelez la méthode complete sur la ressource conversations.

Avant d'utiliser les données de requête ci-dessous, 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 en savoir plus, consultez la documentation de référence de l'API Python Vertex AI Agent Builder.

Pour vous authentifier auprès de Vertex AI Agent Builder, 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

Simulateur

Vous pouvez tester votre agent de data store dans le simulateur Agent Assist.

Dans l'exemple précédent, l'agent du data store fournit les suggestions suivantes:

  • Requête suggérée: Délai de traitement des remboursements.
  • Réponse générée par l'IA générative: Une fois votre retour traité, vous êtes remboursé dans un délai de sept jours. Le montant du remboursement correspond à la valeur totale des articles retournés, mais n'inclut pas les frais de port et de service.
  • Titre du document de la base de connaissances pertinent: Retours et remboursements – Aide.

Étape 3: Notifications de suggestion Pub/Sub

Vous pouvez définir le champ notificationConfig lors de la création d'un profil de conversation pour recevoir des notifications de suggestions. Cette option utilise Pub/Sub pour envoyer des notifications de suggestion à votre application lorsque la conversation se poursuit et de nouvelles suggestions sont disponibles.

Si vous effectuez l'intégration via l'API AnalyzeContent, vous pouvez activer la configuration disable_high_latency_features_sync_delivery dans ConversationProfile pour vous assurer que l'API AnalyzeContent répondra, sans attendre les suggestions proactives de l'assistance générative de la connaissance, et qu'elle transmettra les suggestions via Pub/Sub.

Vous pouvez également activer cette configuration dans la console Agent Assist.

Accéder aux données via Conversational Insights

Vous pouvez également renseigner automatiquement les requêtes et réponses générées par votre assistant génératif proactif dans Conversational Insights. Pour y accéder, suivez les instructions de la section Activer l'intégration de l'environnement d'exécution de Dialogflow.

Envoyer des commentaires

Pour savoir comment envoyer des commentaires, consultez Envoyer des commentaires à Agent Assist.

Répondre aux questions de l'agent

Voici un exemple de requête JSON permettant d'envoyer des commentaires sur la réponse aux questions des agents.

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/answerRecords/ANSWER_RECORD_ID",
  "answerFeedback": {
    "displayed": true
    "clicked": true
    "correctnessLevel": "FULLY_CORRECT"
    "agentAssistantDetailFeedback": {
      "knowledgeSearchFeedback": {
        "answerCopied": true
        "clickedUris": [
          "url_1",
          "url_2",
          "url_3",
        ]
      }
    }
  }
}

suggérer des questions/réponses de manière proactive ;

Voici un exemple de requête JSON permettant d'envoyer des commentaires sur les suggestions proactives.

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/answerRecords/ANSWER_RECORD_ID",
  "answerFeedback": {
    "displayed": true
    "clicked": true
    "correctnessLevel": "FULLY_CORRECT"
    "agentAssistantDetailFeedback": {
      "knowledgeAssistFeedback": {
        "answerCopied": true
        "clickedUris": [
          "url_1",
          "url_2",
          "url_3",
        ]
      }
    }
  }
}

Métadonnées

Si vous configurez des metadata pour un document de base de connaissances, l'assistance générative et l'assistance générative proactive renvoient les métadonnées du document avec la réponse.

Par exemple, vous pouvez utiliser des métadonnées pour indiquer si le document de la base de connaissances est un article privé interne ou un article public externe. Dans le simulateur d'assistance à l'agent et les modules d'interface utilisateur, l'assistance générative basée sur les connaissances et l'assistance générative proactive basée sur les connaissances affichent automatiquement une valeur de métadonnées de document pour certaines clés.

  • gka_source_label: la valeur s'affiche directement dans la fiche de suggestion.
  • gka_source_tooltip: lorsque la valeur est de type struct, maintenir le curseur sur le lien source l'étend et affiche la valeur dans une info-bulle.

Si vous disposez des métadonnées suivantes pour un document de connaissances, la fiche de suggestion indique la source comme External Doc et l'info-bulle ajoute doc_visibility: public doc.

Métadonnées : None { "title": "Public Sample Doc", "gka_source_label": "External Doc", "gka_source_tooltip": { "doc_visibility": "public doc" } }

Langues acceptées

Consultez la liste complète des langues acceptées.