Crear tu propia asistencia de IA generativa te permite crear un generador de texto y, luego, integrarlo con Agent Assist. El generador de texto usa modelos de lenguaje grandes (LLM) avanzados, como Text Bison y Gemini, para generar sugerencias. Puedes usar estas sugerencias para ayudar a los participantes de una conversación de atención al cliente, como los agentes humanos y los usuarios humanos. El generador puede usar llamadas LLM integradas de Agent Assist que se pueden configurar para la mayoría de las tareas de LLM. Para obtener más información sobre los generadores en Agent Assist, consulta la documentación de Vertex AI.
Entradas del generador
El generador de texto requiere las siguientes entradas:
Instrucciones: Es un texto para describir la tarea que deseas que realice el generador de texto. En Vertex AI, la instrucción se denomina sugerencia.
Opciones de modelo: La elección del modelo y la configuración necesaria para obtener un rendimiento óptimo, como la temperatura, el límite de tokens de salida, TopK y TopP. Estos parámetros de configuración limitan los resultados del generador. Cuando creas un generador, puedes elegir un modelo y configurar sus opciones haciendo clic en Model Options, o bien puedes usar la configuración predeterminada. En Vertex AI, las opciones del modelo se denominan valores de parámetros.
Evento de activación: Es uno de los siguientes eventos que indica cuándo iniciar el generador:
END_OF_UTTERANCE
: Activa el generador después de que se ingresa cada enunciado.MANUAL_CALL
: Activa el generador solo cuando realizas llamadas a la API de forma explícita para invocarlo.CUSTOMER_MESSAGE
: Activa el generador solo después de cada mensaje del cliente.AGENT_MESSAGE
: Activa el generador solo después de cada mensaje del agente.
Salidas del generador
Después de proporcionar las entradas al generador de texto, el generador de asistencia de Build your own GenAI proporciona sugerencias, como vínculos a artículos, respuestas apropiadas o información de backend sobre ofertas promocionales. Estas sugerencias se proporcionan en formato de texto y son relevantes en el contexto de la conversación de atención al cliente en el momento en que se generan.
Casos de uso
En esta sección, se presentan tres casos de uso como ejemplos de cómo se pueden implementar los generadores de asistencia de GenAI. Tu modelo puede generar diferentes respuestas de salida de los siguientes ejemplos.
Reescritura profesional
Puedes indicarle al generador que reestructure las oraciones de los agentes humanos de una manera profesional, educada y empática antes de responder a los clientes, como se indica a continuación.
- Nombre del generador: Reescritura profesional
- Activar evento: Mensaje del agente
Instrucción:
# TASK DESCRIPTION: Output the agent's response under ## LAST UTTERANCE rewritten in a professional, polite and empathetic way in EXAMPLE 4. - DO NOT miss any information mentioned by the original text. - Only output rewritten response. - You're provided with EXAMPLE 1-3. Follow the format. # EXAMPLE 1 ## CONVERSATION: AGENT: Yo what's up it's Akshay. This is Amazon customer service. What do you want? ## LAST UTTERANCE: Yo what's up it's Akshay. This is Amazon customer service. What do you want? ## OUTPUT: Hi I'm Akshay. Thank you for choosing Amazon customer service. How can I assist you today? # EXAMPLE 2 ## CONVERSATION: CUSTOMER: Hi, I'm having some trouble with my Apple Music subscription. AGENT: Hey, I'm [name]. I can help, I guess. What's your name and account number? CUSTOMER: Sure, my name is [name] and my account number is [number]. AGENT: Alright. Checked that out. You are on Apple Music Individual plan, right? ## LAST UTTERANCE: Alright. Checked that out. You are on Apple Music Individual plan, right? ## OUTPUT: Thank you. I see that you're currently subscribed to the Apple Music Individual plan. Is that correct? # EXAMPLE 3 ## CONVERSATION: AGENT: What is your order number? CUSTOMER: 12345 AGENT: Hang on a sec. Looking. CUSTOMER: I'll wait. AGENT: Alright, it appears your order is not registered. Did you even submit the order? CUSTOMER: Let me double check. Shoot, someone canceled it. Must be the kids. AGENT: Yeah, watch your kids will you? CUSTOMER: I'm so sorry. AGENT: All good. Have a good one. ## LAST UTTERANCE: All good. Have a good one. ## OUTPUT: No problem. I'm glad I can help. Please have a good day! # EXAMPLE 4 ## CONVERSATION: ${parameter:transcript} ## LAST UTTERANCE: ${parameter:transcript_last_utterance} ## OUTPUT:
Retención de clientes
También puedes indicarle al generador que sugiera respuestas de los agentes para la retención de clientes, como proporcionar descuentos en productos, realizar ventas incrementales o cruzadas, y resolver problemas, como en el siguiente ejemplo. El generador accede a la información que proporcionas sobre los descuentos y las ofertas como referencias de contexto con la API de IngestContextReferences
.
- Nombre del generador: Deserción y retención de clientes
- Activar evento: Mensaje del cliente
- Referencias de contexto: ofertas
- Uno: 11% de descuento
- Nest: 5% de descuento
- Descuento para clientes nuevos: 10%
Instrucción:
# TASK DESCRIPTION: You are an Agent who is helping a customer resolve an issue with complete understanding of the same. - Make sure you wait to understand the concern or query before making any suggestions. - If the customer informs about the issue, you need to ask the exact reason. If the reason is valid, you can give appropriate credit from the OFFERS section. - If the customer is about to cancel an order or subscription, make sure you offer something from the OFFERS section and try to retain the customer. - If a customer is inquiring about a new product, offer some combo for upselling another product. Below are two examples for detecting churn and generating suggestions for mitigation. The output should be a single message suggested to the agent according to the context of the conversation. # EXAMPLE 1 Customer: Hello Agent: Welcome to Google. How may I help you? Customer: I want to cancel order. Agent: Sure Let me have an order ID. Customer: Its 123321 Agent: I could see that you placed an order for Google Nest. May I know the reason for cancellation? Customer: It's available at cheaper rate now. Agent: Ohh.! I see. Let me check the current price and adjust the order price. Is it okay ? Customer: Sure..! I can purchase the product as long as I can get it at the discounted price. I'd definitely go with it Agent: Google Nest costs $200 at present. I can see that you paid $230. Customer: Yeah. Can you request to refund $30. I can buy it at $200. Agent : Sure. I have updated. You will get $30 refund once your order is delivered. Customer: Thanks. Agent : Welcome # EXAMPLE 2 Customer: Hello Agent: Welcome to Google. How may I help you? Customer: I am having Google One Subscription. I think I may need some more space in future. Agent: Okay. May I have your customer Id: Customer: Its 123321 Agent: I could see that you have 100GB Plan at present. How much are you expecting to need in future? Customer: I think I may need 100GB or more. Agent: I could check that you are a loyal customer who had subscriptions since last 6 months. I can provide you 10% discount. Customer: Sure..! That would be great. Agent: 200GB Subscription costs $180 per annum which I can offer you at $162. Customer: That's cool. Thank you. Agent: Is there anything else I can help you with? Customer: No thanks. ## CONTEXT ${parameter:transcript} ## OFFERS ${parameter:offers}
Crea un generador
En los siguientes ejemplos, se muestra cómo crear un generador de texto de asistencia de IA generativa.
Console
Para crear un generador con la consola de Agent Assist, sigue estos pasos:
En la consola, ve a la página Crea tu propia asistencia.
Haz clic en Crear.
Ingresa el nombre del generador.
Selecciona el evento activador de la lista.
Ingresa la instrucción para definir la tarea.
Haz clic en Model Options y selecciona un modelo de la lista.
Establece tus parámetros o usa la configuración predeterminada.
Haz clic en Guardar y, luego, vuelve a hacer clic en Guardar para guardar el generador.
REST
Para crear un generador con la API, haz lo siguiente:
- Llama al método
CreateGenerator
desde el recurso Generator. - Ingresa el nombre del generador en el campo
description
. - Ingresa el evento activador.
- Ingresa la instrucción para definir la tarea en FreeFormContext.text.
- Ingresa un nombre de modelo en el campo
published_model
o déjalo en blanco para usar el modelo predeterminado. - Especifica los parámetros del modelo en el campo
inference_parameter
o déjalos en blanco para usar los valores predeterminados.
Parámetros
Para hacer que una instrucción sea contextual, marca las palabras como parámetros con el formato ${parameter:<parameter_name>}
. También puedes usar la API de Data Ingestion para importar el valor real de un parámetro llamando al método IngestContextReferences en una conversación. Con este método, los parámetros de la instrucción se reemplazarán por su valor durante el tiempo de ejecución.
El siguiente es un ejemplo de JSON de cómo importar el valor de los parámetros llamando a IngestContextReferences:
{ "contextReferences": { "glossary": { "contextContents": [ { "content": "east one", "contentFormat": "PLAIN_TEXT" } ] } } }
También hay algunos parámetros del generador que no es necesario transferir. Estos parámetros integrados son los siguientes:
${parameter:transcript}
: La conversación entre el agente y el usuario, incluida la última frase del usuario.${parameter:transcript_last_utterance}
: Es la última declaración de la conversación.
Se debe usar al menos un parámetro integrado en cualquier instrucción.
Ya sean integrados o transferidos, los parámetros del generador son diferentes de las opciones del modelo que se establecen cuando se crea el generador. Los valores de estos parámetros del generador provienen de una transcripción de conversación o de datos transferidos. Por otro lado, estableces los valores de las opciones del modelo para el generador en su totalidad.
Prueba un generador
En la consola de Build your own GenAI assist, puedes probar el generador en la sección Test generator.
Para probar un generador en la consola de asistencia para crear tu propia IA generativa, haz lo siguiente:
Console
- Agrega una transcripción de la conversación. Haz clic en Subir para ingresar oraciones de forma manual o subir una transcripción en formato JSON.
- Para agregar más datos que se deben transferir, haz clic en more_vert y note_add Agregar datos insertados.
La consola de Build your own GenAI assist muestra respuestas generadas con anotaciones del nombre del generador.
REST
Para probar un generador con la API, haz lo siguiente:
- Ingresa el nombre del generador en el campo
generatorName
. - Proporciona conversaciones en el campo
conversationContext
. - Proporciona valores de parámetros, si los hay, en el campo
contextReferences
. - Ingresa el activador para generar sugerencias en el campo
triggerEvents
. Las sugerencias generadas están disponibles en el campogeneratorSuggestion
.
Perfil de conversación
Un perfil de conversación define un conjunto de parámetros que controlan las sugerencias que se hacen durante una conversación. En los siguientes pasos, se crea un recurso conversationProfile
con un objeto HumanAgentAssistantConfig
.
Console
- En la consola de Agent Assist, ve a la página Perfiles de conversación.
- Haz clic en + Crear.
- Ingresa el nombre visible.
- Selecciona el tipo de sugerencia check_box Build-your-own-assist.
- Ingresa el nombre del generador o elige uno de la lista.
REST
- Llama al método
create
desde el recurso de perfil de conversación. - Proporciona un nombre para el nuevo perfil de conversación.
- Ingresa el código de idioma.
- Ingresa el nombre del generador en human_agent_suggestion_config.
El siguiente es un ejemplo de JSON de un perfil de conversación.
{ "displayName": "build-your-own-assist-test", "humanAgentAssistantConfig": { "humanAgentSuggestionConfig": { "generators": "projects/PROJECT_ID/locations/global/generators/GENERATOR_ID" } } }
Verifica con el simulador
Puedes verificar el perfil de conversación en el simulador de Agent Assist. El simulador muestra las respuestas generadas con anotaciones del nombre del generador.
Prueba una instrucción
En la consola de Build your own GenAI assist, puedes probar una instrucción con el simulador de la misma manera que verificas un perfil de conversación.
El resultado generado que se muestra en la siguiente imagen ilustra qué tan bien el generador de freeform-tool-test1
siguió la instrucción del ejemplo.
Conversaciones en el tiempo de ejecución
Una conversación se define como una interacción entre un agente, incluidos los agentes humanos y virtuales, y un cliente de asistencia o usuario final. Durante el tiempo de ejecución, cuando comienza un diálogo entre un usuario final y un agente humano, se crea una conversación. Para ver las sugerencias, debes crear un participante de usuario final y un participante de agente humano, y agregarlos a la conversación.
Crea una conversación
Para crear una conversación, haz lo siguiente:
- Llama al método
create
desdeconversation resource
. - Antes de usar cualquiera de los datos de solicitud, realiza los siguientes reemplazos:
- PROJECT_ID: El ID de tu proyecto
- CONVERSATION_PROFILE_ID: El ID de tu perfil de conversación
Método HTTP y URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations
Cuerpo JSON de la solicitud:
{ "conversationProfile": "projects/PROJECT_ID/conversationProfiles/CONVERSATION_PROFILE_ID", }
Dentro de la respuesta JSON, el segmento de ruta después de conversations
contiene tu nuevo ID de conversación. La respuesta JSON debería ser similar a la siguiente:
{ "name": "projects/PROJECT_ID/conversations/CONVERSATION_ID", "lifecycleState": "IN_PROGRESS", "conversationProfile": "projects/PROJECT_ID/conversationProfiles/CONVERSATION_PROFILE_ID", "startTime": "2023-11-05T21:05:45.622Z" }
Crea un participante de usuario final
Para crear un participante de usuario final, haz lo siguiente:
- Llama al método
create
desde el recursoparticipants
. - Antes de usar cualquiera de los datos de solicitud, realiza los siguientes reemplazos:
- PROJECT_ID: El ID de tu proyecto
- CONVERSATION_ID: El ID de tu conversación
Proporciona tu ID de conversación y "END_USER" para el campo de rol de la siguiente manera.
Método HTTP y URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID/participants
Cuerpo JSON de la solicitud:
{ "role": "END_USER", }
Dentro de la respuesta JSON, el segmento de ruta después de participants
contiene el nuevo ID de participante de usuario final. La respuesta JSON debería ser similar a la siguiente:
{ "name": "projects/PROJECT_ID/conversations/CONVERSATION_ID/participants/USER_PARTICIPANT_ID", "role": "END_USER" }
Crea un participante de agente humano
Para crear un participante de agente humano, haz lo siguiente:
- Llama al método
create
desde el recursoparticipants
. - Antes de usar cualquiera de los datos de solicitud, realiza los siguientes reemplazos:
- PROJECT_ID: El ID de tu proyecto
- CONVERSATION_ID: El ID de tu conversación
Proporciona el ID de conversación y el rol HUMAN_AGENT
para el campo de la siguiente manera.
Método HTTP y URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID/participants
Cuerpo JSON de la solicitud:
{ "role": "HUMAN_AGENT", }
Dentro de la respuesta JSON, el segmento de ruta después de participants
contiene tu nuevo ID de participante de agente humano. La respuesta debería ser similar a la siguiente:
{ "name": "projects/PROJECT_ID/conversations/CONVERSATION_ID/participants/AGENT_PARTICIPANT_ID", "role": "HUMAN_AGENT" }
Cómo analizar un mensaje
Un generador también puede analizar un mensaje dentro de una conversación. Durante una conversación, puedes agregar un mensaje, y el generador puede analizar los mensajes de los agentes humanos y de los usuarios finales con el método analyzeContent
del recurso participants
.
Para agregar y analizar un mensaje de agente humano, sigue estos pasos.
- Llama al método
analyzeContent
. - Antes de usar cualquiera de los datos de solicitud, 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 agente humano.
Proporciona el ID de la conversación y el ID del participante del agente humano. Tu solicitud debe incluir algo similar a lo siguiente:
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": "Bonjour, ici le service client d'ABC fishing, comment puis-je vous aider aujourd'hui ?", "languageCode": "en-US" } }
Deberías recibir una respuesta JSON similar a la siguiente:
{ "message": { "name": "projects/PROJECT_ID/conversations/CONVERSATION_ID/messages/MESSAGE_ID", "content": "Bonjour, ici le service client d'ABC fishing, comment puis-je vous aider aujourd'hui ?", "languageCode": "en-US", "participant": "PARTICIPANT_ID", "participantRole": "HUMAN_AGENT", "createTime": "2023-02-13T00:01:30.683Z" }, "humanAgentSuggestionResults": [{ "generateSuggestionsResponse": { "generatorSuggestionAnswers": [{ "generatorSuggestion": { "freeFormSuggestion": { "response": "Hello, this is ABC fishing customer service, how can I help you today?" } }, "sourceGenerator": "projects/PROJECT_ID/locations/global/generators/GENERATOR_ID", "answerRecord": "projects/PROJECT_ID/locations/global/answerRecords/ANSWER_RECORD_ID" }], "latestMessage": "projects/PROJECT_ID/locations/global/conversations/CONVERSATION_ID/messages/MESSAGE_ID" } }] }
Cómo agregar y analizar un mensaje del usuario final
- Llama al método
analyzeContent
. No realices llamadas duplicadas al método si ya se llamó para otras funciones de Agent Assist. - Antes de usar cualquiera de los datos de solicitud, 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 agente humano.
Proporciona el ID de la conversación y el ID del participante del agente humano. Tu solicitud debe incluir algo similar a lo siguiente:
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": "Hi", "languageCode": "en-US" } }
Deberías recibir una respuesta JSON similar a la siguiente:
{ "message": { "name": "projects/PROJECT_ID/conversations/CONVERSATION_ID/messages/MESSAGE_ID", "content": "Hi", "languageCode": "en-US", "participant": "PARTICIPANT_ID", "participantRole": "END_USER", "createTime": "2020-02-13T00:07:35.925Z" }, "humanAgentSuggestionResults": [{ "generateSuggestionsResponse": { "generatorSuggestionAnswers": [{ "generatorSuggestion": { "freeFormSuggestion": { "response": "Salut" } }, "sourceGenerator": "projects/PROJECT_ID/locations/global/generators/GENERATOR_ID", "answerRecord": "projects/PROJECT_ID/locations/global/answerRecords/ANSWER_RECORD_ID" }], "latestMessage": "projects/PROJECT_ID/locations/global/conversations/CONVERSATION_ID/messages/MESSAGE_ID" } }] }
Cuando se completa una conversación y no se usó analyzeContent
, puedes usar el método batchCreate
del recurso messages para importar y analizar los mensajes históricos de la conversación.
Cómo obtener sugerencias
El generador también proporciona sugerencias en respuesta a un mensaje en cualquier punto de una conversación. De forma predeterminada, las sugerencias son para el mensaje más reciente de cualquiera de los participantes. También puedes especificar el mensaje para el que deseas obtener las sugerencias. Obtén sugerencias de forma predeterminada o con uno de los siguientes recursos.
Usa las sugerencias incluidas
La respuesta de analyzeContent
incluye sugerencias. El generador activado produce estas sugerencias. Tu solicitud JSON debe incluir algo similar a lo siguiente:
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": "I want to reserve a room.", "languageCode": "en-US" } }
Usa el recurso suggestions
Otro enfoque para obtener sugerencias es seguir estos pasos.
- Llama al método
generate
desde el recursosuggestions
. - Antes de usar cualquiera de los datos de solicitud, 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.
Proporciona el ID de la conversación, el ID del mensaje más reciente de cualquiera de los participantes y los eventos activados. Si no se establece el campo de ID de mensaje, las sugerencias se basan en el mensaje más reciente de cualquiera de los participantes de forma predeterminada. Luego, se iniciará el generador asociado con el evento del activador. Tu solicitud JSON debe incluir algo similar a lo siguiente:
Método HTTP y URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_IDsuggestions:generate
Cuerpo JSON de la solicitud:
{ "latestMessage": "projects/PROJECT_ID/conversations/CONVERSATION_IDmessages/Message_ID", "triggerEvents": [ "END_OF_UTTERANCE" ] }
Usa el recurso statelessSuggestion
Sigue estos pasos para obtener sugerencias.
- Llama al método
generate
desde el recursostatelessSuggestion
. - Antes de usar cualquiera de los datos de solicitud, realiza los siguientes reemplazos:
- PROJECT_ID: El ID de tu proyecto
- LOCATION_ID: El ID de tu ubicación
Proporciona el generador, los mensajes de la conversación y las referencias de contexto que contienen datos transferidos. Los datos transferidos reemplazan los parámetros en la instrucción del generador. Tu solicitud JSON debería verse similar a la siguiente:
Método HTTP y URL:
https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/statelessSuggestion:generate
Cuerpo JSON de la solicitud:
{ "generator": { "description": "Translation", "triggerEvent": "END_OF_UTTERANCE", "freeFormContext": { "text": "Read the conversation between agent and customer, and the last utterance. Output the last utterance from customer by following these instructions: - If the last utterance from AGENT, output the utterance by translating it to English. - If the last utterance from CUSTOMER, output the utterance by translating it to French. - Specific brand names and technical terms specified under 'GLOSSARY' section, such as 'Google Home,' should remain unchanged as per the glossary guidelines. # GLOSSARY ${parameter:glossary} # CONVERSATION: ${parameter:transcript} # LAST UTTERANCE: ${parameter:transcript_last_utterance} # OUTPUT: " } }, "contextReferences": { "glossary": { "contextContents": { "content": "east one", "contentFormat": "PLAIN_TEXT" } } }, "conversationContext": { "messageEntries": [ { "text": "hi", "languageCode": "en-US", "role": "END_USER", "createTime": { "seconds": "1400000000", "nanos": "10000000" } }, { "text": "Bonjour, comment puis-je vous aider aujourd\\'hui ?", "languageCode": "en-US", "role": "HUMAN_AGENT", "createTime": { "seconds": "1400000010", "nanos": "10000000" } } ] }, "triggerEvents": [ "END_OF_UTTERANCE" ] }
Límites de cuota
Puedes ver las cuotas y los límites de Agent Assist en la página de cuotas de Dialogflow. Crear tu propia asistencia de IA generativa incluye los siguientes límites de cuota:
Nombre | Descripción | Límite |
---|---|---|
Operaciones del administrador de generadores por minuto (por región) | Es el límite de la cantidad de operaciones del administrador de generadores que se pueden realizar cada minuto, como crear, enumerar o borrar generadores. | 300 |
Generadores (por región) | Límite de la cantidad máxima de generadores que puedes crear en un solo proyecto. | 200 |
Operaciones de sugerencia del generador por minuto por tipo de modelo (por región) | Es el límite de la cantidad de solicitudes de operación de sugerencia de generador que puedes recibir por minuto para cada tipo de modelo. | 10 |