Asistencia de conocimiento generativo

La asistencia de conocimiento generativo proporciona respuestas a las preguntas de tu agente según la información de los documentos que proporcionas. Puedes especificar tu nombre de dominio o subir documentos para que un agente de almacén de datos los indexe. La asistencia de conocimiento generativo sintetiza esa información con la conversación en curso y los metadatos de clientes disponibles para brindarle a tu agente una respuesta más relevante y oportuna.

El Knowledge Assist proactivo y generativo sigue la conversación en curso entre tu agente y el cliente. Proporciona sugerencias de búsqueda de forma proactiva en función del contexto de la conversación actual y la respuesta.

Crea un agente de almacén de datos

  1. A menos que seas el propietario del proyecto, necesitas estos roles para crear un agente de almacén de datos:

    • Administrador de la API de Dialogflow
    • Administrador de Discovery Engine
  2. Activa la API de Vertex AI Agent Builder en la consola de Vertex AI.

  3. Para crear el agente, sigue los pasos que se indican en Agentes de almacén de datos.

Responde las preguntas de tus agentes humanos

El agente del almacén de datos puede responder las preguntas de tus agentes humanos según los documentos que proporcionaste.

Paso 1: Crea un perfil de conversación

Crea un perfil de conversación con la consola de Agent Assist o la API.

Cómo crear desde la consola

  1. Debes habilitar el tipo de sugerencia de asistencia del conocimiento generativo y vincularlo al agente del almacén de datos del paso anterior.
  2. Opcional: Usa la casilla de verificación Inhabilitar el registro de consultas de búsqueda del agente para indicar si deseas que Google recopile y almacene consultas de búsqueda ocultas para mejorar la calidad.
  3. Puedes usar la casilla de verificación Habilitar la consulta de conversación enriquecida para indicar si deseas tener en cuenta el contexto de la conversación entre el agente humano y el usuario cuando se genera la respuesta para la búsqueda.

Cómo crear desde la API

En los siguientes pasos, se muestra cómo crear un ConversationProfile con un objeto HumanAgentAssistantConfig. También puedes realizar estas acciones con la consola de Agent Assist.

Para crear un perfil de conversación, llama al método create en el recurso ConversationProfile.

Antes de usar cualquiera de los datos de solicitud, realiza los siguientes reemplazos:
  • PROJECT_ID: El ID de tu proyecto
  • LOCATION_ID: Es el ID de tu ubicación.
  • AGENT_ID: El ID del agente del almacén de datos del paso anterior
El siguiente es un ejemplo de 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,
          }
        ]
      }
    }
  }
      

Cuando creas un perfil de conversación en la consola de Agent Assist, este habilita automáticamente la asistencia generativa de conocimiento y la asistencia generativa de conocimiento proactiva. Para inhabilitar la asistencia de conocimiento generativo proactivo, debes crear tu perfil de conversación con la API.

Paso 2: Usa un agente de almacén de datos

De manera opcional, usa la API de SearchKnowledge para obtener las respuestas del agente del almacén de datos. También puedes usar las siguientes configuraciones como parte de tu solicitud de SearchKnowledge:

  • querySource: Establece este campo para indicar si un agente escribió la consulta o si la asistencia de conocimiento generativo proactivo la sugirió automáticamente.
  • exactSearch: Establece este campo para indicar si se debe buscar la consulta de entrada exacta sin reescritura de consultas.
  • endUserMetadata: Establece este campo para incluir información adicional sobre el usuario final que mejore la respuesta generada. Para obtener más detalles, consulta la página de personalización del rendimiento del agente de almacén de datos.
  • searchConfig: Establece este campo para obtener un control adicional y mejorar y filtrar los documentos de conocimiento. Para obtener más detalles, consulta la página de configuración de búsqueda de rendimiento del agente de Data Store.

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

  • PROJECT_ID: El ID de tu proyecto
  • LOCATION_ID: Es el ID de tu ubicación.
  • CONVERSATION_PROFILE_ID: Es el ID de tu perfil de conversación del paso anterior.
  • SESSION_ID: Es el ID de tu sesión de búsqueda.
  • El historial de búsqueda de la misma sesión puede afectar el resultado de la búsqueda. Puedes usar el ID de conversación que aparece a continuación para el ID de sesión.
  • CONVERSATION_ID: Es la conversación (entre el agente humano y el usuario final) en la que se activa la solicitud de búsqueda.
  • MESSAGE_ID: Es el mensaje de conversación más reciente cuando se activa la solicitud de búsqueda.

Este es un ejemplo de solicitud 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"
  }
}

De manera opcional, proporciona los nombres de los recursos conversation y latest_message si la búsqueda del agente se realiza durante una conversación con un usuario. Estos dos campos son obligatorios si habilitas la opción enable_conversation_augmented_query y prefieres mejorar la experiencia de respuesta de la consulta con el contexto de conversación entre tu agente y el usuario.

Simulador

Prueba el agente de tu almacén de datos en el simulador de Agent Assist.

En el ejemplo anterior, el agente del almacén de datos responde la consulta del usuario What is the refund processing time? con la siguiente información:

  • Respuesta generada por IA generativa: Cuando el paquete con la devolución llegue al centro de devoluciones del vendedor, el proceso puede tardar hasta 7 días hábiles adicionales. Verifica el estado del reembolso con el número de seguimiento de la devolución que se encuentra en la página de pedidos.
  • El título del documento de conocimiento relevante: Devoluciones y reembolsos.

Sugerir preguntas y respuestas de forma proactiva para tus agentes

El Knowledge Assist proactivo y generativo sigue una conversación en curso y proporciona respuestas y sugerencias de búsqueda de forma proactiva.

Paso 1: Crea un perfil de conversación

Crea un perfil de conversación con la consola de Agent Assist o la API. Te recomendamos que crees un perfil de conversación con la consola de Agent Assist.

Cómo crear desde la consola

  1. Habilita el tipo de sugerencia Ayuda de conocimiento generativo y vincúlalo al agente del almacén de datos del paso anterior. Esto permite que el agente del almacén de datos proporcione sugerencias de consultas y respuestas de forma proactiva, y responda las búsquedas manuales de tus agentes humanos.
  2. Opcional: Usa la casilla de verificación Mostrar todas las consultas sugeridas para la conversación para que el agente del almacén de datos muestre todas estas consultas, incluso cuando no se encuentre una respuesta en tus documentos de conocimiento. Esto se diseñó para probar qué consultas se pueden extraer de la conversación en curso.
  3. Opcional: Usa la casilla de verificación Cargar respuestas proactivas de forma asíncrona para obtener solo sugerencias de búsqueda. Puedes enviar la búsqueda sugerida de forma manual a la API de SearchKnowledge y, también, enviarla automáticamente en el simulador de la consola de Agent Assist y en los módulos de la IU.

Cómo crear desde la API

En los siguientes pasos, se crea un ConversationProfile con un objeto HumanAgentAssistantConfig. También puedes realizar estas acciones con la consola de Agent Assist.

Para crear un perfil de conversación, llama al método create en el recurso ConversationProfile.

Antes de usar cualquiera de los datos de solicitud, realiza los siguientes reemplazos:
  • PROJECT_ID: El ID de tu proyecto
  • LOCATION_ID: Es el ID de tu ubicación.
  • AGENT_ID: El ID del agente del almacén de datos del paso anterior
El siguiente es un ejemplo de 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,
          }
        ]
      }
    }
  }
      

Paso 2: Controla las conversaciones durante el tiempo de ejecución

El Knowledge Assist proactivo y generativo procesa conversaciones durante el tiempo de ejecución para proporcionar sugerencias de búsqueda de forma proactiva en función del contexto de la conversación actual y la respuesta.

Crea una conversación

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: El ID de tu ubicación
  • CONVERSATION_PROFILE_ID: 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 tu conversación.

Python

Para obtener más información, consulta la documentación de referencia de la API de Python del compilador de agentes de Vertex AI.

Para autenticarte en Vertex AI Agent Builder, configura las credenciales predeterminadas de la aplicación. Si deseas 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 usuario participante

Agrega participantes de usuarios y agentes a la conversación para ver sugerencias. Primero, agrega al usuario participante a la conversación:

REST

Para crear un usuario participante, 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: El ID de tu ubicación
  • CONVERSATION_ID: 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 tu nuevo ID de usuario participante.

Python

Para obtener más información, consulta la documentación de referencia de la API de Python del compilador de agentes de Vertex AI.

Para autenticarte en Vertex AI Agent Builder, configura las credenciales predeterminadas de la aplicación. Si deseas 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 agente participante

Agrega un agente participante a la conversación:

REST

Para crear un agente participante, 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: El ID de tu ubicación
  • CONVERSATION_ID: 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 tu nuevo ID de participante de agente humano.

Python

Para obtener más información, consulta la documentación de referencia de la API de Python del compilador de agentes de Vertex AI.

Para autenticarte en Vertex AI Agent Builder, configura las credenciales predeterminadas de la aplicación. Si deseas 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 y analiza un mensaje del agente

Cada vez que uno de los participantes escribe un mensaje en la conversación, debes enviarlo a la API para que lo procese. El agente del almacén de datos basa sus sugerencias en el análisis de los mensajes del agente humano y del usuario. En el siguiente ejemplo, el agente humano comienza la conversación preguntando: "¿Cómo puedo ayudarte?".

Aún no se muestran sugerencias en la respuesta.

REST

Para agregar y analizar un mensaje de agente humano en la conversación, llama al método analyzeContent en el recurso Participant.

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

  • PROJECT_ID: El ID de tu proyecto
  • CONVERSATION_ID: El ID de tu conversación
  • PARTICIPANT_ID: Es el ID del participante del agente humano.

Método HTTP y URL:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID:analyzeContent

Cuerpo JSON de la solicitud:

{
  "textInput": {
    "text": "How may I help you?",
    "languageCode": "en-US"
  }
}

Para enviar tu solicitud, expande una de estas opciones:

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

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

Para obtener más información, consulta la documentación de referencia de la API de Python del compilador de agentes de Vertex AI.

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

Agrega un mensaje del usuario para obtener sugerencias

En respuesta al agente, el usuario dice: "¿Cuándo puedo obtener el reembolso de la devolución?". Esta vez, la respuesta de la API contiene una consulta sugerida y la respuesta de la IA generativa basada en los documentos de conocimiento.

REST

Para agregar y analizar un mensaje del usuario para la conversación, llama al método analyzeContent en el recurso Participant.

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

  • PROJECT_ID: El ID de tu proyecto
  • CONVERSATION_ID: El ID de tu conversación
  • PARTICIPANT_ID: Es el ID de participante del usuario final.

Método HTTP y URL:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID:analyzeContent

Cuerpo JSON de la solicitud:

{
  "textInput": {
    "text": "When can I get my return refund?",
    "languageCode": "en-US"
  }
}

Para enviar tu solicitud, expande una de estas opciones:

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

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

Para obtener más información, consulta la documentación de referencia de la API de Python del compilador de agentes de Vertex AI.

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

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: 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 obtener más información, consulta la documentación de referencia de la API de Python del compilador de agentes de Vertex AI.

Para autenticarte en Vertex AI Agent Builder, configura las credenciales predeterminadas de la aplicación. Si deseas 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

Simulador

Puedes probar tu agente de almacén de datos en el simulador de Agent Assist.

En el ejemplo anterior, el agente de almacén de datos proporciona las siguientes sugerencias:

  • Consulta sugerida: Tiempo de procesamiento del reembolso.
  • Respuesta generada por IA generativa: Después de que se procese la devolución, recibirás el reembolso en 7 días. El importe del reembolso debe ser por el valor total de los artículos devueltos, pero no incluye los cargos de envío y servicio.
  • El título del documento de conocimiento relevante: Devoluciones y reembolsos: Ayuda.

Paso 3: Notificaciones de sugerencias de Pub/Sub

Puedes configurar el campo notificationConfig cuando crees un perfil de conversación para recibir notificaciones de sugerencias. Esta opción usa Pub/Sub para enviar notificaciones de sugerencias a tu aplicación a medida que avanza la conversación y aparecen sugerencias nuevas.

Si realizas la integración a través de la API de AnalyzeContent, tienes la opción de habilitar la configuración de disable_high_latency_features_sync_delivery en ConversationProfile para asegurarte de que la API de AnalyzeContent responda, sin esperar las sugerencias de asistencia de conocimiento generativo proactivo, y envíe las sugerencias a través de Pub/Sub.

También puedes habilitar esta configuración desde la consola de Agent Assist.

Accede a los datos a través de las estadísticas de conversación

Como alternativa, las consultas y respuestas generadas por tu asistencia generativa proactiva se propagan automáticamente a las estadísticas de conversaciones. Para acceder a estos datos, sigue las instrucciones que se indican en Habilita la integración del entorno de ejecución de Dialogflow.

Enviar comentarios

Para conocer los pasos para enviar comentarios, consulta Cómo enviar comentarios a Agent Assist.

Responde las preguntas del agente

El siguiente es un ejemplo de solicitud JSON para enviar comentarios sobre la respuesta a las preguntas de los agentes.

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

Cómo sugerir preguntas y respuestas de forma proactiva

El siguiente es un ejemplo de solicitud JSON para enviar comentarios sobre sugerencias proactivas.

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

Metadatos

Si configuras metadata para un documento de conocimiento, tanto Knowledge Assist generativo como Knowledge Assist proactivo y generativo mostrarán los metadatos del documento junto con la respuesta.

Por ejemplo, puedes usar metadatos para marcar si el documento de conocimiento es un artículo privado interno o un artículo público externo. En el simulador de la función de asistencia del agente y los módulos de la IU, tanto la asistencia de conocimiento generativo como la asistencia de conocimiento generativo proactivo muestran automáticamente un valor de metadatos de documento para ciertas claves.

  • gka_source_label: El valor se muestra directamente en la tarjeta de sugerencia.
  • gka_source_tooltip: Cuando el valor es del tipo struct, si colocas el cursor sobre el vínculo de la fuente, se expande y muestra el valor en una información sobre herramientas.

Si tienes los siguientes metadatos para un documento de conocimiento, la tarjeta de sugerencias muestra la fuente como External Doc y la información sobre herramientas agrega doc_visibility: public doc.

Metadatos: None { "title": "Public Sample Doc", "gka_source_label": "External Doc", "gka_source_tooltip": { "doc_visibility": "public doc" } }

Idiomas admitidos

Consulta la lista completa de idiomas admitidos.