Prise en charge linguistique native pour les compétences

À partir de la version 20.12 de la plate-forme, Oracle Digital Assistant prend en charge certaines langues de manière native. Lorsque vous développez une compétence avec cette prise en charge linguistique native, vous n'avez pas besoin d'utiliser un service de traduction tiers pour traiter les entrées utilisateur et les réponses de la compétence dans ces langues.

Si vous développez de telles compétences afin de les inclure dans un assistant numérique, ce dernier doit également utiliser la prise en charge linguistique native. Voir Prise en charge linguistique native dans les assistants numériques.

Comment fonctionne la prise en charge linguistique native

  • Les données d'entraînement peuvent être fournies dans chacune des langues (prises en charge de manière native) pour lesquelles vous concevez la compétence.

    Lorsque vous utilisez la prise en charge linguistique native, la compétence est entraînée selon un modèle unifié qui intègre toutes les langues prises en charge de manière native. Vous pouvez fournir des énoncés d'entraînement dans une ou plusieurs des langues cibles de votre compétence. Les énoncés d'entraînement que vous fournissez dans une langue servent à développer le modèle pour toutes les langues de la compétence. Pour les compétences à plusieurs langues cibles, vous commencerez généralement par créer votre corpus d'entraînement dans la langue principale. Ensuite, vous pouvez (et devriez) ajouter des énoncés d'entraînement dans les autres langues, généralement en nombre inférieur.

    La procédure est différente pour les compétences qui utilisent un service de traduction. Dans ces compétences, 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 (tels que NUMBER, EMAIL et DATE) sont extraites dans la langue de la conversation. (Le cas des compétences utilisant le service de traduction est différent car les valeurs sont extraites une fois l'entrée traduite par le service de traduction.)
  • Les valeurs des entités personnalisées correspondent à celles fournies pour la langue de la conversation courante.
  • Les compétences qui prennent en charge les langues autres que l'anglais doivent être formées avec Trainer TM.

Prise en charge native des langues

Voici les langues (et les codes correspondants) actuellement prises en charge de manière 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 compétences et des assistants numériques pour ces langues sans utiliser de service de traduction comme Google Traduction.

Voici un aperçu du niveau de prise en charge pour chaque langue.

Language (Langue) Compréhension linguistique Voix Données clés Fabrication de données Designer de conversation
Arabe (ar) Oui Non Oui Oui Non
néerlandais (nl) Oui Non Oui Oui Non
Anglais (en) Oui Oui, y compris les paramètres régionaux 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

Pour une comparaison plus détaillée de la prise en charge pour chaque langue, voir Prise en charge des fonctionnalités par langue.

Créer une compétence avec des langues prises en charge de manière native

Voici les étapes générales pour créer une compétence qui utilise la prise en charge linguistique native d'Oracle Digital Assistant.

  1. Lors de la création de la compétence, sélectionnez la version de plate-forme 20.12 ou supérieure, puis la langue principale que vous souhaitez prendre en charge dans la liste déroulante Primary Language (Langue principale).

    La langue que vous sélectionnez doit se trouver dans la section de Natively-Supported (Prise en charge de manière native) de la liste déroulante.

  2. Pour chaque intention que vous créez, ajoutez des énoncés pour votre compétence dans la langue principale :
    1. Cliquez sur icône d'ouverture du menu latéral pour ouvrir le menu latéral, sélectionnez Development > Skills (Développement > Compétences) et ouvrez votre compétence.
    2. Dans la barre de navigation gauche de la compétence, cliquez sur Ceci est une image de l'icône Intents (Intentions).
    3. Sélectionnez une intention.
    4. Dans le champ de texte Examples (Exemples), tapez l'énoncé et appuyez sur Entrée.
    5. Répétez les deux sous-étapes précédentes pour chaque intention.
  3. Vérifiez que toutes les valeurs des entités personnalisées de votre compétence sont dans la langue principale de celle-ci.

    Vous pouvez ajouter et modifier des entités personnalisées en cliquant sur Illustration de l'icône Entities (Entités) dans la barre de navigation gauche de la compétence.

  4. Pour tous les composants de votre flux de dialogue qui ont des propriétés affichant des invites ou des étiquettes, veillez à définir explicitement ces propriétés. Si vous ne définissez pas ces propriétés, les clients peuvent trouver du texte par défaut provenant de ces propriétés, qui sont en anglais.
  5. Dans les paramètres de la compétence, mettez à jour tous les messages de configuration et les invites pour utiliser la langue principale :

    Pour accéder à ces messages et invites :

    • Dans la barre de navigation gauche de la compétence, cliquez sur icône des paramètres.

    Les messages et les invites se trouvent dans les onglets Configuration et Digital Assistant.

Note

Si vous prévoyez de prendre en charge plusieurs langues dans la compétence, vous devrez définir des clés d'ensemble de ressources pour les propriétés, invites et messages présentés aux utilisateurs. Dans le cas contraire, vous pouvez tout de même effectuer ces paramétrages, puisque l'ensemble de ressources vous permet de modifier les valeurs de toutes vos chaînes au même endroit. Voir Ensembles de ressources pour les compétences.

Ajouter des langues prises en charge de manière native à une compétence

Pour les compétences (ou versions de compétence) où vous avez choisi une langue principale prise en charge de manière native, vous pouvez ajouter d'autres langues prises en charge de manière native.

  1. Vérifiez que votre compétence est bien exécutée sur la version 20.12 ou supérieure de la plate-forme.

    Sinon, vous devez créer un clone ou une nouvelle version de la compétence et la régler à la version 20.12 ou supérieure de la plate-forme.

  2. Dans la barre de navigation gauche de la compétence, cliquez sur l'icône Settings (Paramètres) (icône des paramètres) et sélectionnez l'onglet General (Général).
  3. Faites défiler l'affichage vers le bas pour accéder à la section des langues, cliquez sur Add Language (Ajouter une langue) et sélectionnez la langue voulue dans la liste déroulante.
  4. Pour chaque intention de la compétence, ajoutez un nom de conversation et des énoncés supplémentaires dans la nouvelle langue :
    1. Cliquez sur Intents (Intentions) (Ceci est une image de l'icône Intents (Intentions).) dans la barre de navigation gauche.
    2. Sélectionnez l'intention à modifier.
    3. Sélectionnez l'onglet correspondant à la langue que vous venez d'ajouter.
    4. Cliquez sur Ceci est une image de l'icône Edit (Modifier). pour entrer un nom descriptif ou une expression pour l'intention dans le champ Conversation Name (Nom de la conversation).
  5. Pour toutes les entité basées sur des paires clé-valeur (entités de liste de valeurs et entités dynamiques), entrez des valeurs pour cette langue.
  6. Permettez à la compétence d'afficher les valeurs d'entité dans la langue de la conversation :
    1. Dans les composants que vous utilisez pour résoudre les entités (Résoudre l'entité et Réponse commune), assurez-vous que la propriété useFullEntityMatches est réglée à true.

      Ainsi, vous assurez-vous que les valeurs d'entité personnalisées sont stockées en tant qu'objets JSON plutôt qu'en tant que chaînes simples.

    2. Dans toutes vos expressions FreeMarker qui font référence aux valeurs d'entité personnalisées (que ce soit dans le flux de dialogue ou dans diverses propriétés de compétence), insérez l'attribut correspondant à la valeur que vous souhaitez lire. Vous pouvez utiliser l'un des attributs suivants :
      • value - Retourne la valeur de l'entité dans la conversation de la langue.
      • primaryLanguageValue - Retourne la valeur de l'entité dans la langue principale de la compétence. Cette option sert pour les expressions utilisées dans la logique applicative (par exemple pour déterminer si une invite doit être affichée ou non, en fonction de la valeur de l'entité).
      • originalString - Retourne la valeur entrée par l'utilisateur pour correspondre à l'entité. Cette valeur peut être un synonyme de la valeur de l'entité.

      Par exemple, si l'expression ${PizzaSize} fait référence à la valeur de l'entité PizzaSize, vous pouvez la changer en ${PizzaSize.value} pour afficher la valeur dans la langue de la conversation.

  7. Si vous ne l'avez pas encore fait, créez des clés d'ensemble de ressources pour tous les messages de sortie qui seront vus par les utilisateurs, entrez des valeurs pour la langue principale et insérez des références à ces clés aux endroits appropriés. Il s'agit notamment des éléments suivants :
    • Texte de sortie dans le flux de dialogue.
    • Invites pour les entités incluses dans les définitions d'entité.
    • Messages et invites définis dans les paramètres de la compétence. Pour y accéder :
      • Dans la barre de navigation gauche de la compétence, cliquez sur icône des paramètres.

      Les messages et les invites se trouvent dans les onglets Configuration et Digital Assistant.

    Voir Ensembles de ressources pour les compétences.
  8. Pour tous les composants de votre flux de dialogue ayant des propriétés qui affichent des invites ou des étiquettes, assurez-vous que vous avez explicitement défini ces propriétés (de sorte qu'elles n'affichent pas des valeurs en anglais par défaut) et créez des entrées d'ensembles de ressources pour elles.
  9. Ajoutez des valeurs dans la langue supplémentaire pour toutes les clés d'ensemble de ressources.
  10. Augmentez le corpus d'entraînement dans la langue supplémentaire conformément aux besoins.

    Étant donné que les compétences avec des langues prises en charge de manière native sont basées sur un modèle unifié dans lequel la totalité de l'entraînement sert à la résolution d'intention dans toutes les langues cibles de la compétence, ce modèle devrait déjà fonctionner pour votre langue supplémentaire, même si vous n'ajoutez pas d'énoncés dans cette dernière. Mais la précision correspondante sera probablement inférieure à celle de la langue principale. Pour améliorer la précision, procédez comme suit :

    • Créez des tests par lots dans la langue supplémentaire et exécutez-les pour déterminer si le modèle fonctionne sans énoncé dans cette langue. Voir Créer des exécutions de test.
    • Ajoutez itérativement des énoncés d'entraînement dans cette langue et effectuez des tests jusqu'à ce que vous obteniez un niveau satisfaisant de résolution d'intention.
      1. Cliquez sur Intents (Intentions) (Ceci est une image de l'icône Intents (Intentions).) dans la barre de navigation gauche.
      2. Sélectionnez l'intention à modifier.
      3. Sélectionnez l'onglet correspondant à la langue que vous venez d'ajouter.
      4. Dans la section Examples (Exemples), entrez des exemples d'énoncés dans la langue supplémentaire.

      Vous n'aurez probablement pas besoin d'ajouter autant d'énoncés dans ces langues cibles supplémentaires que dans la langue principale.

Note

Voir la vidéo du camp de conception sur NLU multilingue pour en savoir plus sur les meilleures pratiques en matière de multilinguisme de vos compétences.

Passer d'un service de traduction à une prise en charge linguistique native

Si vous souhaitez tirer profit de la prise en charge linguistique native d'Oracle Digital Assistant dans une compétence configurée pour utiliser un service de traduction, vous pouvez créer une nouvelle version ou un clone de cette compétence et activer cette prise en charge.

Conditions requises :

  • La compétence que vous êtes en train de convertir ne doit utiliser que des langues prises en charge de manière native dans la version de la plate-forme cible. Pour obtenir cette liste, voir Langues prises en charge de manière native.

Si cette condition préalable n'est pas remplie, vous devez continuer à utiliser un service de traduction pour toutes les langues de la compétence autres que l'anglais.

Pour convertir une compétence afin qu'elle utilise la prise en charge linguistique native de Digital Assistant :

  1. Créez la nouvelle version ou le clone, et spécifiez la langue principale de la compétence.
    1. Cliquez sur icône d'ouverture du menu latéral pour ouvrir le menu latéral et sélectionnez Development > Skills (Développement > Compétences).

    2. Dans la vignette de la compétence que vous souhaitez modifier ou cloner, cliquez sur icône d'ouverture du menu Options et sélectionnez Version ou Clone.

    3. Dans le champ Platform Version (Version de plate-forme), sélectionnez la version 20.12 ou ultérieure.

      S'il n'était pas présent auparavant, un champ Primary Language (Langue principale) apparaît.

    4. Dans la liste déroulante Primary Language (Langue principale), sélectionnez dans la section Natively Supported (Prise en charge de manière native) de la liste déroulante la langue qui correspond le mieux à la langue prédominante de la version précédente de la compétence.
      Note

      La version de la plate-forme et la langue principale ne peuvent pas être modifiées une fois que vous avez cliqué sur Create (Créer).
    5. Cliquez sur Create (Créer).
  2. Ajoutez toutes les langues supplémentaires que vous souhaitez prendre en charge.
  3. Ajustez votre flux de dialogue pour arrêter d'utiliser les mécanismes suivants liés à l'envoi de texte à un service de traduction :
    1. Tous les composants de traduction (Détecter la langue, Traduire l'entrée et Traduire la sortie).
    2. (Pour les flux basés sur YAML) la variable de contexte autotranslate.
    3. (Pour les flux basés sur YAML) propriété translate au niveau composant.

Corpus d'entraînement pour une langue supplémentaire

Lorsque vous ajoutez une langue, voici comment les différentes parties de la compétence sont traitées :

  • Intentions—Les noms d'intention, quelle que soit leur langue, restent les mêmes pour chaque langue. Pour chaque intention, vous pouvez ajouter des exemples d'énoncés dans chaque langue. Puisque le modèle pour les compétences prises en charge de manière native est unifié, tous les énoncés que vous ajoutez pour une langue donnée peuvent également servir au modèle pour d'autres langues. Vous pouvez toutefois renforcer votre modèle en ajoutant des énoncés pour chaque langue.

    En particulier, vous devez vous concentrer sur l'ajout de phrases exprimant une intention qui ne sont pas des traductions directes de la phrase 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), vous définissez les valeurs dans la langue principale puis, pour chaque langue supplémentaire, vous ajoutez des valeurs correspondant à celles de la langue principale.

    Pour les invites et messages définis dans les entités (y compris les invites définies dans les entités composites), vous indiquez les clés des ensembles de ressources qui fournissent le texte approprié dans chaque langue cible.

    Pour d'autres propriétés, comme la taille d'intervalle d'énumération, les valeurs s'appliquent à toutes les langues.

    Note

    La propriété Fuzzy Match (Correspondance floue) est désactivée pour les compétences où elle n'est pas prise en charge pour toutes les langues.

Détection de la langue dans les compétences avec des langues prises en charge de manière native

Dans les compétences qui utilisent plusieurs langues prises en charge de manière native, l'assistant numérique (ou compétence autonome) peut détecter automatiquement la langue de l'utilisateur au début de la session. Fonctionnement :

  • La langue est automatiquement détectée pour les assistants numériques et les compétences configurés avec plusieurs langues prises en charge de manière native.
    • S'il n'y a qu'une seule langue (prise en charge de manière native) dans la compétence ou l'assistant numérique, la détection de la langue est désactivée.
    • Si l'assistant numérique ou la compétence utilise un service de traduction, la détection de la langue est effectuée par ce service, et non par la compétence ou l'assistant numérique.
  • La langue n'est pas détectée automatiquement si la compétence ou l'assistant numérique est accessible par un canal où la variable profile.languageTag ou profile.locale a été définie.
  • La langue est détectée dans le premier énoncé de la conversation. Elle 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 son expiration.