Compartir a través de


Configurar y crear agentes multilingües

Los agentes multilingües se comunican con los clientes en diferentes idiomas a la vez que mantienen todo el contenido en un solo agente. En muchos casos, detectan automáticamente el idioma deseado en función de la configuración del explorador web del usuario del agente y responden en el mismo idioma, lo que proporciona una experiencia más personalizada y atractiva para los clientes.

Al crear un agente, especifique su idioma principal.

Después de que agregue idiomas secundarios a un agente, usted es responsable de traducir los mensajes en los temas que cree. Para los agentes que usan orquestación generativa, los mensajes generados se traducen automáticamente.

Cuando un cliente inicia una sesión con un agente publicado, el agente selecciona uno de sus idiomas para que coincidan con el idioma especificado en el cliente o explorador del cliente. Si el agente no puede detectar el cliente o el idioma del explorador, o si el idioma detectado no es uno de los idiomas especificados para el agente, el agente tiene como valor predeterminado su idioma principal.

Puede diseñar un agente para cambiar el idioma que usa durante una conversación (consulte Hacer que un agente cambie a otro idioma). También puede configurar un agente que use la orquestación generativa para cambiar dinámicamente los idiomas para seguir el idioma usado en el turno de conversación actual (consulte Configuración de un agente para el cambio dinámico de idioma).

Para obtener la lista de idiomas admitidos, consulte Soporte de idiomas.

Nota

Los bots de chat clásicos solo admiten un idioma. Para obtener más información sobre cómo convertir un bot de chat clásico en un agente, consulte Actualizar a creación unificada de Copilot Studio.

Añade idiomas a un agente

  1. Vaya a la página Configuración del agente y seleccione Idiomas.

  2. Seleccione Agregar idiomas.

  3. En el panel Agregar idiomas , seleccione los idiomas que desea agregar al agente y seleccione Agregar.

  4. Revise la lista de idiomas y cierre la página Configuración .

Administración de la localización de un agente multilingüe

En Copilot Studio, realizará toda la edición de temas y contenido en el idioma principal del agente. En esta sección se explica cómo descargar cadenas de texto de su agente y traducirlas a los idiomas secundarios de su agente. Una vez que cargue las cadenas traducidas, puede cambiar el idioma en el panel de prueba y comprobar que las conversaciones en los idiomas secundarios también fluyen según lo previsto.

Prepara el contenido localizado

Cuando descargue por primera vez el archivo de localización para un idioma secundario, todas las cadenas se encuentran en el idioma principal del agente. Después de descargar un archivo de localización, utilícelo con el proceso de localización que prefiera.

  1. Vaya a la página Configuración del agente y seleccione Idiomas.

  2. En la página Idiomas , en la lista de idiomas secundarios, seleccione Cargar para el idioma que desea actualizar.

  3. En el panel Actualizar localización , seleccione el formato JSON o ResX para descargar el archivo de localización actual para ese idioma.

    Nota

    El archivo descargado contiene el contenido de localización más reciente para el agente. Si necesita descargar versiones anteriores del archivo de localización, abra la solución del agente.

  4. Abra el archivo descargado y sustituya las cadenas del idioma principal por el texto traducido adecuado.

  5. Vuelva al panel Actualizar localización , seleccione Examinar y cargue el archivo traducido.

  6. Cierre el panel Actualizar localización y la página Configuración .

Actualizar contenido localizado

Si realiza cambios en las cadenas de idioma principal, también debe actualizar el contenido en los idiomas secundarios. Este proceso incluye tanto el contenido nuevo como el modificado. Los cambios incrementales no se traducen automáticamente. Debe descargar el archivo JSON o ResX del idioma secundario y actualizar las cadenas sin traducir mediante el proceso de localización que prefiera.

El siguiente escenario es típico del flujo de trabajo para el contenido traducido. Anteriormente tradujo su idioma principal (en-US) a un idioma secundario (fr-FR) y agregó y modificó contenido en el idioma principal. Al descargar el archivo de localización para el idioma secundario, todo el contenido nuevo está en el idioma principal (en-US). Sin embargo, el contenido modificado sigue apareciendo en el idioma secundario. Dado que el contenido modificado usa el mismo identificador, debe comparar el nuevo archivo con el archivo cargado anteriormente.

Hacer que el contenido dinámico de las tarjetas adaptables esté disponible para la localización

Los archivos de localización no incluyen cadenas con tipos mixtos de Adaptive Cards. Si necesita localizar una tarjeta adaptable en la que una cadena puede incluir texto estático y variables (contenido dinámico), use la siguiente solución alternativa. El procedimiento muestra cómo usar un nodo Establecer variable de texto para almacenar la cadena completa con el texto estático y las variables en una variable intermedia. A continuación, solo hace referencia a esa variable intermedia en la tarjeta adaptable. Al descargar un archivo de localización para el agente, el valor de la variable intermedia, con el texto estático y las referencias de variable, está disponible para la localización como parte de una acción setVariable.

Para que el contenido dinámico de una tarjeta adaptable sea localizable:

  1. Agregue un nodo Establecer valor de variable antes de la Adaptive Card. En este paso se crea una representación YAML que se puede actualizar mediante el editor de código para convertir el nodo en un nodo Establecer variable de texto . No puede crear nodos Establecer variable de texto directamente desde el área de edición.

  2. En el nodo Establecer valor de variable, cree una nueva variable, pero no establezca el valor aún.

  3. Abra el editor de código para el tema.

  4. En el editor de código, busque la parte que representa el nodo Establecer valor de variable y reemplace por kind: SetVariablekind: SetTextVariable. Este cambio convierte el nodo Establecer valor de variable en un nodo Establecer variable de texto .

  5. Cierre el editor de código.

  6. Seleccione el campo inferior del nodo Establecer variable de texto y escriba la cadena completa con el texto estático y las variables que desea mostrar en la tarjeta adaptable. Inserte una variable de la misma manera que insertaría una variable en un mensaje.

  7. Actualice la tarjeta adaptable con una referencia a esta nueva variable.

  8. Guarde el tema. Ahora puede descargar el archivo de localización y comprobar que incluye el contenido dinámico de las tarjetas adaptables.

Prueba de un agente multilingüe

  1. Abra el panel de pruebas.

  2. Selecciona los tres puntos (...) en la parte superior del panel de prueba y selecciona el idioma que quieras. El panel de pruebas se vuelve a cargar, esta vez con el idioma seleccionado. El lienzo de edición permanece en el idioma principal y no puedes guardar los cambios realizados en un tema hasta que vuelvas al idioma principal.

  3. Para probar el agente, escriba un mensaje en el idioma seleccionado.

También puede establecer el idioma del explorador en uno de los idiomas del agente y ir al sitio web de demostración precompilado. El sitio web de demostración se abre en el idioma especificado y el agente chatea en ese idioma.

Hacer que un agente cambie a otro idioma

Al redactar, puede configurar el agente para cambiar a otro idioma en medio de una conversación. La lógica puede residir en cualquier tema del agente. Sin embargo, la práctica recomendada es cambiar el idioma directamente después de un nodo de Pregunta, lo que garantiza que todos los mensajes siguientes hasta el siguiente nodo de Pregunta estén en el mismo idioma.

Para cambiar el idioma actual del agente, establezca la User.Languagevariable del sistema en uno de los idiomas secundarios del agente. Esta selección cambia el idioma hablado por su agente inmediatamente.

Configuración de un agente para el cambio dinámico de idioma

Nota

Esta característica solo está disponible para agentes con orquestación generativa habilitada.

Puede configurar un agente para detectar el idioma que usa un cliente y responder en el mismo idioma. Con esta configuración, el agente puede cambiar los idiomas varias veces a lo largo de una sola conversación. En el escenario siguiente se muestra cómo configurar un agente para cambiar entre neerlandés e inglés. Puede ampliarlo para cualquier combinación de los idiomas que admita el agente.

En este escenario se utiliza un tema con un desencadenador de tema Mensaje recibido. Este desencadenador de tema permite al agente examinar todos los mensajes que recibe. En este tema se usa una solicitud personalizada para detectar el idioma y una condición para establecer la variable del sistema de lenguaje del agente.

  1. Cree un tema.

  2. Reemplace el tipo de desencadenador predeterminado para el tema por Se recibe un mensaje.

  3. Agregue una sugerencia al tema:

    1. Seleccione el icono Agregar nodo debajo del nodo Desencadenador.

    2. Seleccione Agregar una herramienta>Nueva solicitud.

    3. En el editor de mensajes, escriba un nombre representativo para el mensaje, como "Detectar idioma".

    4. En el panel Instrucciones , escriba "Determine el idioma en el que se escribe este mensaje: ".

    5. En la parte inferior del panel Instrucciones , seleccione Agregar contenido y seleccione Texto. Aparece una ventana que le invita a escribir un nombre y un mensaje de ejemplo.

    6. En Nombre, escriba "Mensaje". En Datos de ejemplo, escriba "Mensaje del usuario" y seleccione Cerrar.

    7. En el panel Respuesta del modelo , cambie el formato de salida a JSON.

    8. Seleccione Probar. El mensaje muestra un literal JSON, con una sola propiedad que identifica el idioma como inglés.

      Captura de pantalla de una solicitud configurada para detectar el idioma de un mensaje.

    9. Haga clic en Guardar. Aparece un nodo Prompt en el lienzo.

  4. Configure el nodo Prompt

    1. En Entrada, seleccione la variableActivity.Text del sistema (el texto del mensaje entrante).
    2. En Output, cree una nueva variable denominada DetectedLanguage.
  5. Bifurcar la lógica en función del idioma detectado:

    1. Agregue una condición debajo del nodo Preguntar .

    2. Base la condición en la variable DetectedLanguage.structuredOutput.languagepersonalizada , que contiene el nombre del idioma detectado.

    3. Agregue una rama de condición para cada idioma que necesite detectar.

    4. En cada rama, agregue un nodo Establecer valor de variable para establecer la variable del User.Language sistema en consecuencia. En la imagen siguiente se muestra un tema con una condición para cambiar entre neerlandés e inglés.

      Captura de pantalla del tema que detecta y cambia el idioma del agente.

Solucionar problemas de un agente multilingüe

En esta sección se proporcionan sugerencias para comprender el comportamiento inesperado del agente multilingüe.

Comportamiento del agente multilingüe para idiomas que no están configurados

Si un usuario configura su explorador para un idioma que no configuró para el agente, el agente vuelve a su idioma principal.

Al crear el agente, especifique el idioma principal para un agente. No puede cambiar el idioma principal después de la creación, pero puede cambiar la región del idioma principal del agente, si hay más de una región disponible.

Comportamiento del agente multilingüe para traducciones que faltan

Si agrega mensajes a un agente en su idioma principal, pero no carga las traducciones de los nuevos mensajes, el agente muestra los cambios sin traducir en su idioma principal. Asegúrese siempre de que las traducciones estén al día después de realizar cambios en un agente.

Los archivos de localización no incluyen cadenas con tipos mixtos de Adaptive Cards. Si necesita localizar tarjetas adaptables en las que una cadena puede incluir texto estático y variables (contenido dinámico), debe usar una solución alternativa. Obtenga información sobre cómo almacenar una cadena de tipo mixto en una variable de texto antes de usarla en una tarjeta adaptable.

Errores al publicar un agente multilingüe

Cuando intenta publicar un agente multilingüe, si ve el mensaje de error "Error de validación del bot" con el código de error de respuesta en bruto, SynonymsNotUnique, el archivo de localización contiene sinónimos duplicados o un sinónimo que coincide con un valor de DisplayName. Normalmente, se produce este error cuando un nodo contiene un Entity.Definition.'closedListItem' donde se produjo cualquiera de los siguientes escenarios:

  • Uno de los Synonyms elementos no es único.
  • Uno de los elementos de Synonyms tiene el mismo valor que el elemento de DisplayName.

Todos los Synonyms para la misma entidad deben ser únicos y tener un nombre diferente al elemento DisplayName.

Para corregir el error, revise el archivo JSON o ResX del idioma secundario e identifique las instancias en las que esta condición pueda estar presente.