Lingue aggiuntive

Di seguito sono riportate alcune best practice per lo sviluppo di assistenti digitali a supporto di più lingue.

Il requisito per gli assistenti digitali di supportare più lingue è abbastanza comune e riguarda diverse aree del tuo assistente digitale e dello sviluppo delle competenze. Il supporto per lingue aggiuntive è un task di implementazione che va oltre la traduzione dei messaggi utente e bot e che deve essere considerato anche nella progettazione delle conversazioni per acquisire le differenze regionali e culturali.



Il supporto linguistico viene configurato e implementato a livello di skill. Ciò include l'impostazione del tipo di traduzione da utilizzare e le configurazioni necessarie per il tipo di traduzione. Per le competenze esposte tramite un assistente digitale, l'assistente digitale deve anche essere configurato per supportare più lingue.

Servizio di traduzione vs. NLU multilingue

Oracle Digital Assistant offre due opzioni per il supporto di più lingue negli assistenti digitali.

  • L'uso di un servizio di traduzione richiede la configurazione di una chiave del servizio di traduzione da Google o Microsoft con l'istanza dell'assistente digitale. I messaggi utente in entrata vengono tradotti nella lingua di base configurata per uno skill. La lingua di base è la lingua utilizzata per addestrare il modello, che per i servizi di traduzione è più spesso l'inglese. Il vantaggio di utilizzare i servizi di traduzione al momento è che supporta più lingue rispetto al supporto per la lingua madre.

  • Il supporto delle lingue native supporta un numero ridotto di lingue direttamente nel modello linguistico (NLU) senza la necessità di un servizio di traduzione. Mentre il riconoscimento linguistico integrato è abbastanza buono senza ulteriore formazione specifica per la lingua, puoi perfezionarlo aggiungendo espressioni per ogni lingua che desideri supportare. Per le entità, è necessario aggiungere stringhe di traduzione per i valori e i sinonimi nelle entità elenco valori.

La scelta dell'approccio da utilizzare dipende dal numero di lingue che è necessario supportare nel progetto di assistente digitale, dalla necessità immediata di ogni lingua e dal fatto che la lingua esista o meno come lingua supportata in modo nativo.

Non è possibile utilizzare le competenze utilizzando servizi di traduzione con competenze utilizzando il supporto nativo NLU nello stesso assistente digitale. Pertanto, la decisione su quale opzione di traduzione utilizzare deve essere presa per tutte le competenze in un assistente digitale quando si crea la prima abilità.

La nostra raccomandazione è di utilizzare il supporto nativo del linguaggio NLU se è possibile a causa del suo migliore supporto per l'estrazione delle entità dell'elenco e della capacità di ottimizzare la comprensione per altre lingue aggiungendo espressioni di esempio per quella lingua.

Entrambe le opzioni di traduzione supportano la lingua non inglese come lingua di base per addestrare i modelli di intento e sviluppare le proprie competenze.

Utilizza bundle di risorse ovunque

Si consiglia di utilizzare le stringhe del bundle di risorse per tutti i messaggi e i prompt bot. Anche se utilizzi un servizio di traduzione per supportare più lingue nel tuo bot, non utilizzare i servizi di traduzione per i messaggi in uscita: usa sempre i bundle di risorse e usali ovunque.

Perché raggruppare le risorse

Lo sviluppo dell'assistente digitale riguarda la persona che hai progettato per questo. Il personaggio definisce il linguaggio, il tono di voce e l'atteggiamento di un assistente digitale.

Per assicurarti che il tuo assistente digitale assuma la persona che hai progettato, devi mantenere il controllo dei messaggi in uscita del bot per ogni lingua che supporti. I bundle di risorse rappresentano un unico luogo in cui gestire i messaggi dei bot, il che semplifica la coerenza del tono vocale. Per la creazione di assistenti digitali che supportano una seconda lingua, non esiste un'alternativa realistica ai bundle di risorse per la visualizzazione dei messaggi bot.

Informazioni sulle stringhe di bundle di risorse

Le stringhe di bundle di risorse vengono create in modo dichiarativo nelle competenze e negli assistenti digitali di Oracle Digital Assistant. È possibile fare riferimento alle conversazioni, alle entità e alle impostazioni di configurazione delle competenze utilizzando le espressioni FreeMarker di Apache. Per fare riferimento a una stringa di messaggio, utilizzare un'espressione simile alla seguente:

${rb('message_key')}

rb fa riferimento alla definizione del bundle di risorse e cerca un identificativo di messaggio con il nome specificato. Nell'esempio precedente, viene cercata una chiave messaggio con il nome message_key.

Se per la lingua dell'utente non esiste un nome di chiave del bundle di risorse, verrà utilizzata la stringa definita per la lingua predefinita (la lingua di base). Se per la lingua predefinita manca una stringa di messaggio, durante il test di runtime viene restituita un'eccezione.

Se è necessario passare i dati a un messaggio stampato tramite un bundle di risorse, è possibile eseguire questa operazione mediante parametri posizionali e denominati.

Parametro posizionale: Hello {0}, {1}

Parametro denominato: Hello {name}, {greeting}

Per passare i valori letti dalle variabili aggiunte a una conversazione, utilizzare un'espressione simile a quella mostrata di seguito.

Per i parametri posizionali: ${rb('message_key',firstname.value, greetingMessage.value)}

Per i parametri denominati: ${rb('message_key','name,greeting',firstname.value, greetingMessage.value)}

Sebbene i parametri posizionali sembrino più semplici da utilizzare, è consigliabile utilizzare i parametri denominati quando possibile, poiché forniscono il contesto per il tipo di dati aggiunto a un messaggio. Conoscere il contesto rende più facile la vita di un traduttore.

Considera convenzione di denominazione per nomi chiave bundle risorse

L'uso completo dei bundle di risorse nella tua abilità significa riferirti a loro dalle entità, dal flusso di finestre di dialogo e dalle impostazioni di abilità e assistente digitale. Per semplificare la ricerca dei riferimenti delle stringhe dei bundle di risorse nelle competenze e nell'assistente digitale, è consigliabile aggiungere il contesto ai nomi delle chiavi dei bundle di risorse implementando una convenzione di denominazione.

Ad esempio, è possibile utilizzare i seguenti nomi per un messaggio di errore, un messaggio di disambiguazione e prompt in un'entità elenco di valori:

  • list.<entity_name>.errorMessage

  • list.<entity_name>.disambiguationMessage

  • list.<entity_name>.prompt1

  • list.<entity_name>.prompt2

Per un'entità sacchetto composito, è possibile utilizzare una struttura di denominazione simile, ma aggiungere il nome dell'elemento sacchetto ad esso:

  • 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

Se si fa riferimento a una stringa di bundle di risorse dal prompt di uno stato del flusso di una finestra di dialogo o se uno stato del flusso di una finestra di dialogo stampa solo un messaggio utente, è possibile utilizzare:

  • <dialog_flow_state_name>.prompt

  • <dialog_flow_state_name>.message

Per gli elementi globali, ad esempio i pulsanti di impaginazione o Guida in un componente Risposta comune, è possibile utilizzare una convenzione di denominazione che non contenga il nome di uno specifico stato di flusso della finestra di dialogo.

  • button.next

  • button.previous

  • button.cancel

  • button.help

Non esiste una regola rigorosa per stabilire se utilizzare la notazione a punti come negli esempi precedenti, i caratteri di sottolineatura o qualcosa di tuo.

Usa bundle di risorse per parole chiave

Il componente Risposta comune consente di definire le parole chiave per gli elementi azione in modo che l'utente possa "virtualmente premerli" inviando la parola chiave come messaggio. Le parole chiave sono particolarmente importanti se l'interfaccia utente non consente all'utente di premere un pulsante (ad esempio quando si utilizzano canali di solo testo o voce).

Come promemoria gentile ma ovvio, "submit" non è chiamato "submit" in tedesco, portoghese, francese, arabo e tutte le altre lingue che supporti con il tuo bot. È pertanto opportuno sapere che la proprietà keyword degli elementi azione nel componente Risposta comune può essere letta da una chiave bundle di risorse. Il messaggio relativo al bundle di risorse è un elenco separato da virgole di parole chiave che si desidera utilizzare.

Usa formato messaggio ICU

Oltre ai parametri denominati aggiunti a un messaggio di bundle di risorse, sono disponibili diverse altre opzioni che è possibile utilizzare per gestire determinate condizioni durante la traduzione dei messaggi. Ad esempio, il messaggio stampato per più articoli è in genere diverso dal messaggio stampato quando un singolo articolo viene ordinato o spedito.

ICU, acronimo di International Components for Unicode, è una sintassi di formattazione del linguaggio supportata dai pacchetti di messaggi in Oracle Digital Assistant. Questa sintassi consente di scrivere messaggi molto flessibili che semplificano l'applicazione di differenze regionali e specifiche della lingua ai messaggi bot.

Per i principianti, potrebbe essere sufficiente utilizzare la sintassi dei messaggi ICU per gestire i messaggi con riferimenti a valori singolari e plurali e per i messaggi che cambiano a causa di condizioni come il sesso dell'utente che lavora con l'assistente digitale.

Impatto del supporto della seconda lingua sulla Bot Persona

Non è necessario modificare la persona dell'assistente digitale per una lingua specifica. Tuttavia, se le differenze regionali o culturali richiedono un cambiamento nell'atteggiamento, nella voce o nella formulazione della persona del bot, è legittimo applicare tali cambiamenti. L'obiettivo di un assistente digitale è quello di soddisfare e coinvolgere gli utenti, il che significa anche che deve adattarsi alle abitudini regionali.

È possibile utilizzare i bundle delle risorse nel formato ICU per facilitare la modifica dei messaggi in base all'area. A tale scopo, è possibile passare un argomento al bundle di risorse per identificare un'area per la quale è necessario adattare l'utente tipo bot e utilizzare il formato di messaggio ICU per visualizzare un messaggio diverso da quello visualizzato in caso contrario.

Esempio: gestione delle differenze regionali nei messaggi

Questo esempio di messaggio del bundle di risorse prevede che l'argomento region venga passato quando si fa riferimento al nome della chiave del bundle di risorse. Nell'esempio, i valori da gestire in modo diverso sono definiti come region1 e region2. È possibile impostare i valori desiderati, ad esempio un codice paese.

{region, select,
  region1 {message for region 1}
  region2 {message for region 2}
  other {message for all other regions}
}

Per fare riferimento al messaggio nel bundle di risorse per una delle aree, utilizzare l'espressione seguente nella configurazione del flusso di finestre di dialogo, dell'entità o dello skill:

${rb('the_key_name','region','<VARIABLE_CONTAINING_REGION_VALUE>.value')}

<VARIABLE_CONTAINING_REGION_VALUE> deve essere sostituito da un nome di variabile nello skill che contiene il valore per il quale è stato definito un messaggio diverso.

Elenco di controllo per lingue aggiuntive

  • ☑ Prima di sviluppare le tue competenze, scegli tra l'utilizzo di servizi di traduzione o il supporto in lingua nativa.
  • ☑ Assicurati che tutte le competenze che desideri aggiungere a un assistente digitale utilizzino lo stesso tipo di supporto linguistico.
  • ☑ Utilizzare i bundle di risorse per tutti i prompt e i messaggi visualizzati dal bot.
  • ☑ Utilizzare parametri denominati durante il passaggio di dati dinamici a un messaggio di bundle di risorse.
  • ☑ Utilizzare il formato di messaggio ICU per i plurali nei messaggi e per i messaggi che cambiano in base a una condizione.
  • ☑ Utilizzare i riferimenti ai bundle di risorse durante la creazione delle parole chiave.
  • ☑ Utilizzare il campo Annotazione della stringa del bundle di risorse per fornire al traduttore informazioni aggiuntive sul significato e sull'uso di una stringa e, facoltativamente, sulla modalità di traduzione del messaggio.
  • ☑ Comprendi le differenze regionali e culturali.

Ulteriori informazioni