Prise en charge des langues natives pour les briques
A partir de la version 20.12 de la plate-forme, la prise en charge native de certaines langues est assurée dans Oracle Digital Assistant. Lorsque vous développez une brique avec cette prise en charge des langues natives, vous n'avez pas besoin d'utiliser un service de traduction tiers pour gérer les saisies des utilisateurs et les réponses de la brique dans ces langues.
Si vous développez de telles briques afin de les inclure dans un assistant numérique, celui-ci doit également assurer la prise en charge des langues natives. Reportez-vous à Prise en charge des langues natives dans les assistants numériques.
Fonctionnement de la prise en charge des langues natives
-
Les données d'entraînement peuvent être fournies dans chacune des langues (prises en charge de façon native) pour lesquelles vous concevez la brique.
Avec la prise en charge des langues natives, la brique est entraînée selon un modèle unifié qui intègre toutes les langues prises en charge de façon native. Vous pouvez fournir des variations d'entraînement dans les langues cible de votre brique. Les variations d'entraînement fournies dans une langue contribuent à la création du modèle pour toutes les langues de la brique. Pour les briques que vous ciblez avec plusieurs langues, vous allez généralement commencer par créer votre corpus d'entraînement dans la langue principale de la brique. Ensuite, vous pouvez (et devez) ajouter des variations d'entraînement dans les autres langues, même s'il est probable qu'il vous en faille moins dans ces langues.
Cet aspect est différent pour les briques qui utilisent un service de traduction. Dans ces briques, le modèle d'entraînement sous-jacent est toujours en anglais, même si le corpus d'entraînement est fourni dans une autre langue.
- Les valeurs d'entité pour les types d'entité intégrée (comme NUMBER, EMAIL et DATE) sont extraites dans la langue de la conversation. (Cet aspect est différent pour les briques en mode Service de traduction, où les valeurs sont extraites une fois l'entrée traduite par le service de traduction.)
- Les valeurs des entités personnalisée sont mises en correspondance avec les valeurs fournies pour la langue de la conversation en cours.
- Les compétences qui prennent en charge les langues autres que l'anglais doivent être formées avec Trainer TM.
Langues prises en charge nativement
Voici les langues (avec les codes de langue correspondants) actuellement prises en charge de façon native dans Oracle Digital Assistant.
- Arabe (ar)
- néerlandais (nl)
- Anglais (en)
- Français (fr)
- Allemand (de)
- Italien (it)
- Portugais (pt)
- Espagnol (es)
Cela signifie que vous pouvez créer des briques et des assistants numériques pour ces langues sans utiliser un service de traduction tel que Google Traduction.
Voici un aperçu du niveau de prise en charge pour chaque langue.
Langue | Compréhension de la langue | Reconnaissance vocale | Analyses | Fabrication de données | Concepteur de conversations |
---|---|---|---|---|---|
Arabe (ar) | Oui | Non | Oui | Oui | Non |
néerlandais (nl) | Oui | Non | Oui | Oui | Non |
Anglais (en) | Oui | Oui, y compris pour les environnements locaux en-US, en-GB et en-AU | Oui | Oui | Oui |
Français (fr) | Oui | Oui | Oui | Oui | Non |
Allemand (de) | Oui | Oui | Oui | Oui | Non |
Italien (it) | Oui | Oui | Oui | Oui | Non |
Portugais (pt) | Oui | Oui | Oui | Oui | Non |
Espagnol (es) | Oui | Oui | Oui | Oui | Non |
Afin d'obtenir une comparaison plus détaillée de la prise en charge pour chaque langue, reportez-vous à Prise en charge des fonctionnalités par langue.
Création d'une brique avec des langues prises en charge de façon native
Voici la procédure générale de création d'une brique qui utilise la prise en charge des langues natives d'Oracle Digital Assistant.
- Lors de la création de la brique, sélectionnez la version de plate-forme 20.12 ou supérieure, ainsi que la langue principale à prendre en charge dans la liste déroulante Langue principale.
La langue sélectionnée doit figurer dans la section Prise en charge native de la liste déroulante.
- Pour chaque intention que vous créez, ajoutez des variations pour votre brique dans la langue principale :
- Cliquez sur
pour ouvrir le menu latéral, sélectionnez Développement > Briques, puis ouvrez votre brique.
- Dans la navigation de gauche de la brique, cliquez sur
- Sélectionnez une intention.
- Dans le champ de texte Exemples, saisissez la variation, puis appuyez sur Entrée.
- Répétez les deux sous-étapes précédentes pour chaque intention.
- Cliquez sur
-
Pour toutes les entités personnalisées de votre brique, assurez-vous que les valeurs sont dans la langue principale de la brique.
Vous pouvez ajouter et modifier des entités personnalisées en cliquant sur
dans la barre de navigation de gauche de la brique.
- Pour les composants du flux de dialogue avec des propriétés affichant des invites ou des libellés, veillez à définir explicitement ces propriétés. Si vous ne définissez pas ces propriétés, les clients peuvent obtenir le texte par défaut de ces propriétés, en anglais.
- Dans les paramètres de la brique, mettez à jour tous les messages de configuration et les invites de façon à utiliser la langue principale :
Pour accéder à ces messages et à ces invites, procédez comme suit :
- Dans la barre de navigation de gauche de la brique, cliquez sur
.
Les messages et les invites se trouvent dans les onglets Configuration et Assistant numérique.
- Dans la barre de navigation de gauche de la brique, cliquez sur
Si vous prévoyez de prendre en charge plusieurs langues dans la brique, vous devrez définir des clés de groupe de ressources pour les propriétés, les invites et les messages susceptibles d'être affichés pour les utilisateurs. Cette pratique est intéressante même si vous ne prévoyez pas de prendre en charge plusieurs langues, car le groupe de ressources fournit un emplacement centralisé dans lequel vous pouvez modifier les valeurs de toutes vos chaînes. Reportez-vous à Groupes de ressources pour les briques.
Ajout de langues prises en charge de façon native à une brique
Pour les briques (ou les versions de briques) dans lesquelles vous avez choisi une langue principale prise en charge de façon native, vous pouvez ajouter d'autres langues prises en charge de façon native.
- Assurez-vous que la brique est exécutée sur la version 20.12 ou supérieure de la plate-forme.
Si tel n'est pas le cas, vous devez créer un clone ou une version de la brique à définir de façon à utiliser au minimum la version 20.12 de la plate-forme.
- Dans la barre de navigation de gauche de la brique, cliquez sur l'icône Paramètres (
) et sélectionnez l'onglet Général.
- Faites défiler la page vers le bas jusqu'à la section des langues, cliquez sur Ajouter une langue et sélectionnez la langue dans la liste déroulante.
- Pour chacune des intentions de la brique, ajoutez un nom de conversation et des variations supplémentaires dans la langue ajoutée :
- Cliquez sur Intentions (
) dans la barre de navigation de gauche.
- Sélectionnez l'intention à modifier.
- Sélectionnez l'onglet correspondant à la langue que vous venez d'ajouter.
- Cliquez sur
afin de saisir une expression ou un nom descriptif pour l'intention dans le champ Nom de la conversation.
- Cliquez sur Intentions (
- Pour les entités basées sur des paires clé-valeur (entités de liste de valeurs et entités dynamiques), entrez des valeurs pour cette langue.
- Activez l'affichage des valeurs d'entité dans la langue de la conversation pour la brique :
- Dans les composants que vous utilisez pour résoudre les entités (Resolve Entity et Common Response), assurez-vous que la propriété
useFullEntityMatches
est définie surtrue
.Vous vous assurez ainsi que les valeurs d'entité personnalisée sont stockées en tant qu'objets JSON au lieu de chaînes simples.
- Dans toutes les expressions FreeMarker qui font référence à des valeurs d'entité personnalisée (dans le flux de dialogue ou dans différentes propriétés de brique), insérez l'attribut correspondant à la valeur à lire. Vous pouvez utiliser n'importe lequel des attributs suivants :
value
: renvoie la valeur de l'entité dans la langue de la conversation.primaryLanguageValue
: renvoie la valeur de l'entité dans la langue principale de la brique. Utilisez cette option pour les expressions destinées à la logique métier (par exemple, pour déterminer si une invite doit être affichée en fonction de la valeur de l'entité).originalString
: renvoie la valeur saisie par l'utilisateur pour correspondre à l'entité. Cette valeur peut être un synonyme de la valeur d'entité.
Par exemple, si l'expression
${PizzaSize}
référence la valeur de l'entité PizzaSize, vous devez la remplacer par${PizzaSize.value}
pour afficher la valeur dans la langue de la conversation.
- Dans les composants que vous utilisez pour résoudre les entités (Resolve Entity et Common Response), assurez-vous que la propriété
- Si vous ne l'avez pas encore fait, créez des clés de groupe de ressources pour toutes les sorties que les utilisateurs vont voir, entrez des valeurs pour la langue principale et insérez des références à ces clés aux emplacements appropriés. Cette opération comprend :
- Texte de sortie dans le flux de dialogue.
- Invites des entités incluses dans les définitions d'entité.
- Messages et invites définis dans les paramètres de la brique. Pour y accéder :
- Dans la barre de navigation de gauche de la brique, cliquez sur
.
Les messages et les invites se trouvent dans les onglets Configuration et Assistant numérique.
- Dans la barre de navigation de gauche de la brique, cliquez sur
- Pour les composants du flux de dialogue avec des propriétés affichant des invites ou des libellés, veillez à définir explicitement ces propriétés (de sorte qu'elles ne soient pas définies par défaut sur les valeurs en anglais) et à créer les entrées de groupe de ressources associées.
- Ajoutez des valeurs dans la langue supplémentaire pour toutes les clés de groupe de ressources.
- Alimentez davantage le corpus d'entraînement si nécessaire dans la langue supplémentaire.
Etant donné que les briques avec des langues prises en charge de façon native sont basées sur un modèle d'entraînement unifié dans lequel l'intégralité de l'entraînement contribue à résoudre les intentions dans toutes les langues cible de la brique, le modèle d'entraînement doit déjà fonctionner pour votre langue supplémentaire, même sans ajouter de variation dans cette langue. Sa précision sera néanmoins probablement inférieure à celle de la langue principale. Pour améliorer la précision, effectuez les opérations suivantes :
- Créez des tests en batch dans la langue supplémentaire et exécutez-les pour déterminer les performances du modèle sans aucune variation dans la langue supplémentaire. Reportez-vous à Création d'exécutions de test.
- Ajoutez de manière itérative des variations d'entraînement dans cette langue et testez-les jusqu'à obtenir un niveau satisfaisant de résolution d'intention.
- Cliquez sur Intentions (
) dans la barre de navigation de gauche.
- Sélectionnez l'intention à modifier.
- Sélectionnez l'onglet correspondant à la langue que vous venez d'ajouter.
- Dans la section Exemples, entrez des exemples de variation dans la langue supplémentaire.
Vous n'aurez probablement pas besoin d'ajouter autant de variations dans ces langues cible supplémentaires que dans la langue principale.
- Cliquez sur Intentions (
Reportez-vous à la vidéo Design Camp sur les NLU multilingues pour en savoir plus sur les meilleures pratiques lors de la définition de compétences multilingues.
Passage d'un service de traduction à la prise en charge des langues natives
Si vous voulez tirer parti de la prise en charge des langues natives d'Oracle Digital Assistant dans une brique configurée pour utiliser un service de traduction, vous pouvez créer une version ou un clone de cette brique et y activer la prise en charge.
Prérequis :
- La brique que vous convertissez doit uniquement utiliser des langues prises en charge de façon native dans la version de la plate-forme vers laquelle vous effectuez la conversion. Pour en obtenir la liste, reportez-vous à Langues prises en charge de façon native.
Si ce prérequis n'est pas satisfait, vous devrez continuer à utiliser un service de traduction pour toutes les langues autres que l'anglais dans la brique.
Pour convertir une brique afin d'utiliser la prise en charge des langues natives de Digital Assistant, procédez comme suit :
- Créez la nouvelle version ou le clone, puis indiquez la langue principale de la brique.
-
Cliquez sur
pour ouvrir le menu latéral et sélectionnez Développement > Briques.
-
Dans la mosaïque de la brique pour laquelle vous souhaitez créer une version ou à cloner, cliquez sur
et sélectionnez Version ou Cloner.
- Dans le champ Version de plate-forme, sélectionnez la version 20.12 ou une version ultérieure.
S'il n'était pas présent auparavant, le champ Langue principale apparaît.
- Dans la liste déroulante Langue principale, sélectionnez la langue de la section Prise en charge native de la liste déroulante qui correspond le mieux à la langue prédominante de la version précédente de la brique.
Remarque
Une fois que vous avez cliqué sur Créer, la version de la plate-forme et la langue principale ne peuvent plus être modifiées. - Cliquez sur Créer.
-
- Ajoutez les langues supplémentaires à prendre en charge.
- Ajustez votre flux de dialogue pour arrêter d'utiliser les mécanismes suivants liés à l'envoi de texte à un service de traduction :
- Tous les composants de traduction (Détecter la langue, Traduire l'entrée et Traduire la sortie).
- (Pour les flux basés sur YAML) la variable de contexte
autotranslate
. - (Pour les flux basés sur YAML) propriété
translate
de niveau composant.
Corpus d'entraînement pour une langue supplémentaire
Lorsque vous ajoutez une langue, voici comment sont gérées les différentes parties de la brique :
-
Intentions : les noms d'intention, quelle que soit leur langue, restent identiques pour chaque langue. Pour chaque intention, vous pouvez ajouter des exemples de variation dans chaque langue. Etant donné que le modèle des briques avec prise en charge native est unifié, toutes les variations que vous ajoutez pour une langue donnée peuvent également aider le modèle pour d'autres langues. Néanmoins, vous pouvez renforcer votre modèle en ajoutant des variations pour chaque langue.
Plus particulièrement, concentrez-vous sur l'ajout d'expressions reflétant une intention dans une langue donnée qui ne sont pas des traductions directes de l'expression dans la langue principale.
-
Entités : pour les entités basées sur des paires clé-valeur (entités de liste de valeurs et entités dynamiques), définissez les valeurs dans la langue principale, puis, pour chaque langue supplémentaire, ajoutez des valeurs correspondant aux valeurs de la langue principale.
Pour les invites et les messages définis dans les entités (y compris les invites définies dans des entités de conteneur composite), référencez les clés de groupe de ressources, dans lesquelles vous fournissez le texte approprié dans chaque langue cible.
Pour les autres propriétés, telles que la taille de plage d'énumération, les valeurs s'appliquent à toutes les langues.
Remarque
La propriété de correspondance partielle est désactivée pour les briques dans lesquelles elle n'est pas prise en charge pour toutes les langues.
Détection de la langue dans les briques avec des langues prises en charge de façon native
Dans les briques qui utilisent plusieurs langues prises en charge de façon native, l'assistant numérique (ou la brique autonome) peut détecter automatiquement la langue de l'utilisateur au début de la session. Voici comment cela fonctionne :
- La langue est détectée automatiquement pour les assistants numériques et les briques configurés avec plusieurs langues prises en charge de façon native.
- Si la brique ou l'assistant numérique ne prend en charge qu'une seule langue (de façon native), la détection de la langue est désactivée.
- Si l'assistant numérique ou la brique utilise un service de traduction, ce dernier gère la détection de la langue, et non la brique ou l'assistant numérique.
- La langue n'est pas détectée automatiquement si la brique ou l'assistant numérique est accessible via un canal sur lequel la variable profile.languageTag ou profile.locale a été définie.
- La langue est détectée dans la première variation de la conversation et n'est pas mise à jour dans la session, même si l'utilisateur change de langue.
- Par défaut, la session de canal dure 7 jours avant expiration.