Langues supplémentaires
Voici quelques bonnes pratiques pour développer des assistants numériques afin de prendre en charge plusieurs langues.
L'exigence pour les assistants numériques de prendre en charge plusieurs langues est assez courante et affecte différents domaines de votre assistant numérique et du développement des compétences. La prise en charge de langues supplémentaires est une tâche d'implémentation qui va au-delà de la traduction des messages d'utilisateur et de bot et qui doit également être prise en compte dans votre conception de conversation pour capturer les différences régionales et culturelles.
La prise en charge linguistique est configurée et implémentée au niveau des compétences. Cela inclut le paramètre du type de traduction à utiliser et les configurations requises pour le type de traduction. Pour les briques exposées via un assistant numérique, l'assistant numérique doit également être configuré pour prendre en charge plusieurs langues.
Service de traduction vs NLU multilingue
Oracle Digital Assistant fournit deux options pour la prise en charge de plusieurs langues dans les assistants numériques.
-
Pour utiliser un service de traduction, vous devez configurer une clé de service de traduction à partir de Google ou de Microsoft avec votre instance d'assistant numérique. Les messages utilisateur entrants sont traduits dans la langue de base configurée pour une brique. La langue de base est la langue que vous utilisez pour entraîner le modèle, qui pour les services de traduction est le plus souvent l'anglais. L'avantage d'utiliser des services de traduction pour le moment est qu'ils prennent en charge plus de langues que la prise en charge des langues natives.
-
La prise en charge des langues natives prend en charge un plus petit nombre de langues directement dans le modèle linguistique (compréhension des langues naturelles - NLU) sans avoir besoin d'un service de traduction. Bien que la reconnaissance de langue intégrée soit plutôt bonne sans formation supplémentaire spécifique à une langue, vous pouvez l'affiner en ajoutant des variations pour chaque langue que vous souhaitez prendre en charge. Pour les entités, vous devez ajouter des chaînes de traduction pour les valeurs et les synonymes dans les entités de liste de valeurs.
La décision quant à l'approche à utiliser dépend du nombre de langues que vous devez prendre en charge dans votre projet d'assistant numérique, du besoin immédiat de chaque langue et de l'existence ou non de la langue en tant que langue prise en charge de manière native.
Il n'est pas possible d'utiliser des briques utilisant des services de traduction avec des briques utilisant la prise en charge native NLU dans le même assistant numérique. Par conséquent, la décision quant à l'option de traduction à utiliser doit être prise pour toutes les briques d'un assistant numérique lors de la création de votre première brique.
Nous vous recommandons d'utiliser la prise en charge native des langues NLU si vous le pouvez en raison de sa meilleure prise en charge de l'extraction des entités de liste et de la possibilité d'affiner la compréhension de langues supplémentaires en ajoutant des exemples de variation pour cette langue.
Les deux options de traduction prennent en charge les langues autres que l'anglais comme langue de base pour entraîner vos modèles d'intention et développer vos compétences.
Utiliser des groupes de ressources partout
Nous vous recommandons d'utiliser des chaînes de regroupement de ressources pour tous les messages et invites de bot. Même si vous utilisez un service de traduction pour prendre en charge plusieurs langues dans votre bot, n'utilisez pas de services de traduction pour les messages sortants : utilisez toujours des groupes de ressources et utilisez-les partout.
Pourquoi les groupes de ressources
Le développement d'assistants digitaux concerne le persona que vous avez conçu pour cela. Le persona définit le langage, le ton de la voix et l'attitude d'un assistant numérique.
Pour vous assurer que votre assistant numérique prend en charge le persona que vous avez conçu, vous devez garder le contrôle des messages sortants du bot pour chaque langue prise en charge. Les groupes de ressources représentent un emplacement unique où vous gérez les messages de bot, ce qui facilite la cohérence du ton de la voix. Pour la création d'assistants numériques prenant en charge une deuxième langue, il n'existe pas d'alternative réaliste aux groupes de ressources pour l'affichage des messages de bot.
A propos des chaînes de groupe de ressources
Les chaînes de groupe de ressources sont créées de manière déclarative dans les briques et les assistants numériques Oracle Digital Assistant. Vous les référencez à partir de conversations, d'entités et de paramètres de configuration de brique à l'aide d'expressions FreeMarker Apache. Pour référencer une chaîne de message, vous utilisez une expression telle que la suivante :
${rb('message_key')}
rb
référence la définition du groupe de ressources et recherche un identificateur de message portant le nom indiqué. Dans l'exemple ci-dessus, il recherche une clé de message portant le nom message_key
.
Si aucun nom de clé de regroupement de ressources n'existe pour la langue de l'utilisateur, la chaîne définie pour la langue par défaut (la langue de base) est utilisée. Si une chaîne de message est manquante pour la langue par défaut, une exception est générée lors du test d'exécution.
Si vous devez transmettre des données à un message imprimé via un regroupement de ressources, vous pouvez le faire à l'aide de paramètres positionnels et nommés.
Paramètre positionnel : Hello {0}, {1}
Paramètre nommé : Hello {name}, {greeting}
Pour transmettre des valeurs que vous lisez à partir de variables ajoutées à une conversation, vous utilisez une expression comme celle présentée ci-dessous.
Pour les paramètres positionnels : ${rb('message_key',firstname.value, greetingMessage.value)}
Pour les paramètres nommés : ${rb('message_key','name,greeting',firstname.value, greetingMessage.value)}
Bien que les paramètres positionnels semblent plus simples à utiliser, nous vous recommandons d'utiliser des paramètres nommés lorsque vous le pouvez, car ils fournissent le contexte du type de données ajouté à un message. Connaître le contexte facilite la vie d'un traducteur.
Considérer une convention de dénomination pour les noms de clé de groupe de ressources
L'utilisation complète des groupes de ressources dans votre brique implique d'y faire référence à partir des entités, du flux de dialogue et des paramètres de brique et d'assistant numérique. Pour faciliter la recherche des références de chaîne de groupes de ressources dans votre brique et votre assistant numérique, nous vous recommandons d'ajouter du contexte aux noms de clé de groupe de ressources en implémentant une convention de dénomination.
Par exemple, vous pouvez utiliser les noms suivants pour un message d'erreur, un message d'homonymie et des invites dans une entité de liste de valeurs :
-
list.
<entity_name>.errorMessage
-
list.
<entity_name>.disambiguationMessage
-
list.
<entity_name>.prompt1
-
list.
<entity_name>.prompt2
Pour une entité de conteneur composite, vous pouvez utiliser une structure de dénomination similaire, mais lui ajouter le nom de l'élément de conteneur :
-
cbe.
<entity_name>.
<bag_item_name>.errorMessage
-
cbe.
<entity_name>.
<bag_item_name>.disambiguationMessage
-
cbe.
<entity_name>.
<bag_item_name>.prompt1
-
cbe.
<entity_name>.
<bag_item_name>.prompt2
Si vous référencez une chaîne de regroupement de ressources à partir de l'invite d'un état de flux de dialogue ou si un état de flux de dialogue imprime simplement un message utilisateur, vous pouvez utiliser les éléments suivants :
-
<dialog_flow_state_name>
.prompt
-
<dialog_flow_state_name>
.message
Pour les éléments globaux, tels que les boutons de pagination ou d'aide d'un composant Common Response (Réponse commune), vous pouvez utiliser une convention de dénomination qui ne contient pas le nom d'un état de flux de dialogue spécifique :
-
button.next
-
button.previous
-
button.cancel
-
button.help
Il n'y a pas de règle stricte quant à savoir si vous utilisez la notation par points comme dans les exemples ci-dessus, les traits de soulignement ou quelque chose de votre propre.
Utiliser des groupes de ressources pour les mots-clés
Le composant Réponse commune vous permet de définir des mots-clés pour les points d'action afin que l'utilisateur puisse les "appuyer virtuellement" en envoyant le mot-clé sous forme de message. Les mots-clés sont particulièrement importants si l'interface utilisateur ne permet pas à l'utilisateur d'appuyer sur un bouton (par exemple, lors de l'utilisation de canaux de texte uniquement ou de voix).
Pour rappel, "soumettre" n'est pas appelé "soumettre" en allemand, portugais, français, arabe et toutes les autres langues que vous soutenez avec votre bot. Il est donc bon de savoir que la propriété keyword
des éléments d'action du composant Réponse commune peut être lue à partir d'une clé de regroupement de ressources. Le message de regroupement de ressources est une liste de mots-clés séparés par des virgules que vous souhaitez utiliser.
Utiliser le format de message de l'unité de soins intensifs
Outre les paramètres nommés que vous ajoutez à un message de regroupement de ressources, vous pouvez utiliser un certain nombre d'autres options pour gérer certaines conditions lors de la traduction des messages. Par exemple, le message que vous imprimez pour plusieurs articles est généralement différent du message que vous imprimez lorsqu'un seul article est commandé ou expédié.
ICU, qui signifie International Components for Unicode, est une syntaxe de formatage du langage prise en charge par les paquets de messages dans Oracle Digital Assistant. Cette syntaxe vous permet d'écrire des messages très flexibles qui facilitent l'application de différences régionales et spécifiques à la langue aux messages de bot.
Pour commencer, il peut suffire d'utiliser la syntaxe de message ICU pour gérer les messages avec des références de valeur au singulier et au pluriel et pour les messages qui changent en raison de conditions telles que le sexe de l'utilisateur travaillant avec l'assistant numérique.
Impact de la prise en charge de la langue seconde sur le Bot Persona
Il n'est pas nécessaire de modifier le persona de l'assistant numérique pour une langue spécifique. Toutefois, si des différences régionales ou culturelles nécessitent un changement d'attitude, de voix ou de libellé du bot persona, il est légitime d'appliquer ces changements. L'objectif d'un assistant numérique est de plaire et d'engager les utilisateurs, ce qui signifie également qu'il doit s'adapter aux habitudes régionales.
Vous pouvez utiliser des groupes de ressources au format ICU pour modifier les messages en fonction de la région. Pour ce faire, vous pouvez transmettre un argument au groupe de ressources afin d'identifier une région pour laquelle vous devez adapter le persona du bot et utiliser le format de message ICU pour afficher un message différent de celui qu'il afficherait autrement.
Exemple : gestion des différences régionales dans les messages
Cet exemple de message de groupe de ressources s'attend à ce que l'argument region
soit transmis lors du référencement du nom de clé du groupe de ressources. Dans l'exemple, les valeurs à gérer différemment sont définies comme region1
et region2
. Vous pouvez définir ces valeurs comme vous le souhaitez, par exemple un code pays.
{region, select,
region1 {message for region 1}
region2 {message for region 2}
other {message for all other regions}
}
Pour référencer le message dans le regroupement de ressources pour l'une des régions, vous devez utiliser l'expression suivante dans votre configuration de flux de dialogue, d'entité ou de brique :
${rb('the_key_name','region','<VARIABLE_CONTAINING_REGION_VALUE>.value')}
<VARIABLE_CONTAINING_REGION_VALUE>
doit être remplacé par un nom de variable dans votre brique contenant la valeur pour laquelle un message différent est défini.
Liste de contrôle pour les langues supplémentaires
- ☑ Choisissez d'utiliser des services de traduction ou la prise en charge des langues natives avant de développer vos compétences.
- ☑ Assurez-vous que toutes les briques à ajouter à un assistant numérique utilisent le même type de prise en charge linguistique.
- ☑ Utilisez des groupes de ressources pour toutes les invites et tous les messages affichés par votre bot.
- ☑ Utilisez des paramètres nommés lors de la transmission de données dynamiques à un message de regroupement de ressources.
- ☑ Utilisez le format de message ICU pour les pluriels dans les messages et pour les messages qui changent en fonction d'une condition.
- ☑ Utilisez les références de regroupement de ressources lors de la création de mots-clés.
- ☑ Utilisez le champ Annotation de la chaîne de regroupement de ressources pour fournir au traducteur des informations supplémentaires sur la signification et l'utilisation d'une chaîne et, éventuellement, sur la manière dont le message doit être traduit.
- ☑ Comprenez les différences régionales et culturelles.
En savoir plus
- Vidéo du camp de conception Oracle : Conception de conversations sur l'internationalisation (I18n)
- Vidéo d'Oracle Design Camp : Multi Lingual NLU
- Vidéo d'Oracle Design Camp : Utiliser des groupes de ressources comme un pro
- TechExchange : exemple de code de regroupement de ressources et de format ICU