Agent Assist virtual

En esta guía práctica, se explica el proceso para habilitar la función Asistencia de agente virtual llamando directamente a la API. El asistente de Virtual Agent Assist sigue la conversación y usa un agente virtual de Dialogflow para brindar asistencia en el flujo de trabajo a los agentes humanos y detectar las intenciones para el análisis de datos.

Si lo prefieres, puedes usar la consola de Agent Assist para entrenar un modelo y probar su rendimiento con el simulador. Consulta el instructivo de la consola de Virtual Agent Assist para obtener instrucciones.

Antes de comenzar

Antes de habilitar Virtual Agent Assist, debes haber implementado una o más funciones de Agent Assist para usar con el agente virtual. La Respuesta inteligente, la Asistencia para preguntas frecuentes, la Sugerencia de artículos y la Redacción inteligente se pueden usar por separado con Agent Assist del agente virtual o en cualquier combinación. Los siguientes vínculos te dirigen a la documentación pertinente para obtener detalles sobre la implementación.

Cómo crear una conversación

Cuando comienza un diálogo entre un usuario final y un agente humano o virtual, creas una conversación. Para ver sugerencias, también debes crear un participante usuario final y un participante agente humano, y agregarlos a la conversación. En las siguientes secciones, se te guiará a través de este proceso.

Primero, debes crear una conversación:

REST

Para crear una conversación, llama al método create en el recurso Conversation.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: El ID del proyecto de Cloud
  • LOCATION_ID: Tu ID de ubicación
  • CONVERSATION_PROFILE_ID: Es el ID que recibiste cuando creaste el perfil de conversación.

Método HTTP y URL:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/conversations

Cuerpo JSON de la solicitud:

{
  "conversationProfile": "projects/PROJECT_ID/locations/LOCATION_ID/conversationProfiles/CONVERSATION_PROFILE_ID",
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "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"
}

El segmento de ruta después de conversations contiene el nuevo ID de conversación.

Python

Para autenticarte en Agent Assist, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo 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

Crea un participante usuario final

Para ver sugerencias, debes agregar a la conversación tanto a los participantes del usuario final como a los del agente humano. Primero, agrega el participante del usuario final a la conversación:

REST

Para crear un participante usuario final, llama al método create en el recurso Participant.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: El ID del proyecto de Cloud
  • LOCATION_ID: Tu ID de ubicación
  • CONVERSATION_ID: Es el ID de tu conversación.

Método HTTP y URL:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/participants

Cuerpo JSON de la solicitud:

{
  "role": "END_USER",
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID",
  "role": "END_USER"
}

El segmento de ruta después de participants contiene el nuevo ID del participante del usuario final.

Python

Para autenticarte en Agent Assist, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo 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

Crea un participante de agente humano

Agrega un participante agente humano a la conversación:

REST

Para crear un participante agente humano, llama al método create en el recurso Participant.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: El ID del proyecto de Cloud
  • LOCATION_ID: Tu ID de ubicación
  • CONVERSATION_ID: Es el ID de tu conversación.

Método HTTP y URL:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/participants

Cuerpo JSON de la solicitud:

{
  "role": "HUMAN_AGENT",
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID",
  "role": "HUMAN_AGENT"
}

El segmento de ruta después de participants contiene el nuevo ID del participante del agente humano.

Python

Para autenticarte en Agent Assist, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo 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

Agrega un mensaje del usuario final y obtén sugerencias

Para agregar y analizar un mensaje del usuario final para la conversación, llama al método analyzeContent en el recurso Participant. La respuesta incluye un campo dialogflowAssistAnswers que contiene los siguientes datos:

  • fulfillmentText: Contiene una respuesta sugerida. Puedes configurar tu sistema para que le presente esta sugerencia al agente humano.
  • answer record: Es un ID único para la sugerencia.

Selecciona la sugerencia.

Cuando un agente humano recibe una sugerencia, puede aceptarla tal como está o editarla antes de enviársela al usuario final. Para seleccionar una sugerencia, vuelve a llamar a analyzeContent con el participante del agente humano. Establece el campo suggestionInput en la configuración seleccionada y proporciona el answer record que recibiste antes. El campo text override debe contener el texto real que se envió al usuario final. A continuación, se muestra un ejemplo de cómo configurar el campo suggestionInput:

{
  "answerRecord": "answer-record",
  "textOverride": {
    "text" : "Yes, there will be ponies.",
    "languageCode": "en-US"
  }
}

Completa la conversación

Cuando finalice la conversación, usa la API para completarla.

REST

Para completar la conversación, llama al método complete en el recurso conversations.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Es el ID del proyecto de GCP.
  • CONVERSATION_ID: Es el ID que recibiste cuando creaste la conversación.

Método HTTP y URL:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID:complete

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "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

Para autenticarte en Agent Assist, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo 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