Questa pagina illustra le best practice per l'utilizzo della funzionalità di scrittura intelligente di Assistente agente. Per ulteriori informazioni sull'implementazione di questa funzionalità chiamando direttamente l'API, consulta la guida illustrativa sulla scrittura intelligente How-to guide oppure il tutorial della console per istruzioni sull' implementazione di questa funzionalità utilizzando la console di Agent Assist.
Terminologia
La scrittura intelligente utilizza i seguenti termini.
Testo di base del suggerimento
Questa sezione definisce la terminologia utilizzata per Agent Assist.
Il testo di base di un suggerimento è il testo digitato parzialmente che la scrittura intelligente utilizza per generare il suggerimento per il testo completato. Si tratta del testo in
current_text_input.text di
SuggestSmartComposeAnswersRequest.
Esempio: se l'agente umano digita "Ho", un possibile suggerimento potrebbe essere "come stai?". In questo caso, "Ho" è il testo di base e "come stai?" è il suggerimento.
Testo esteso del suggerimento
Il testo esteso di un suggerimento viene creato unendo il suggerimento al relativo testo di base. Se il testo di base contiene un suffisso che corrisponde a un prefisso del suggerimento, la parte corrispondente verrà unita. La scrittura intelligente associa suffissi e prefissi senza distinzione tra maiuscole e minuscole. Per evitare falsi negativi, ti consigliamo di mostrare un suggerimento solo quando ha un prefisso non vuoto che corrisponde a un suffisso nel testo di base.
Esempio: se il testo di base è "Ho" e il suggerimento è "come stai?", il testo esteso del suggerimento sarà "Come stai?".
Suggerimento disponibile
Un suggerimento è disponibile se:
- Il testo di base del suggerimento è un prefisso del testo già digitato.
- Il testo digitato è un prefisso del testo esteso del suggerimento, ma non è uguale a quest'ultimo.
Esempio: il suggerimento "come stai?" con il testo di base "Ho" è un suggerimento disponibile quando il testo già digitato è "come a", ma non è un suggerimento disponibile quando il testo già digitato è "h" o "come stai?".
Richiedere un suggerimento
Ti consigliamo di fare in modo che il server invii una
suggestSmartComposeAnswers
richiesta per ogni nuovo carattere, a meno che il carattere non sia già coperto da un
suggerimento disponibile. In questo modo, aumenta la probabilità di generare suggerimenti di scrittura intelligente. Tieni presente che questa operazione potrebbe generare un numero elevato di query al secondo. Se noti che le richieste vengono limitate a causa dei limiti di quota, contatta Google per discutere una soluzione. Quando crei una richiesta, valuta la possibilità di impostare max_results=3 per aumentare il numero di suggerimenti recuperati.
Selezionare un suggerimento
La selezione di un suggerimento è una funzionalità fondamentale che deve essere implementata prima di poter implementare la scrittura intelligente in un'interfaccia utente dell'agente. La digitazione può essere rapida e c'è una certa latenza per qualsiasi suggerimento di scrittura intelligente. Di conseguenza, i suggerimenti potrebbero non essere validi quando raggiungono l'interfaccia utente dell'agente. Per ridurre al minimo questo problema, ti consigliamo di eseguire il rendering solo di un sottoinsieme di suggerimenti disponibili nell'interfaccia utente. Per un determinato testo digitato, un suggerimento deve essere selezionato se:
- È un suggerimento disponibile per il testo digitato.
- Il testo di base ha il numero di caratteri più elevato tra tutti i suggerimenti disponibili.
- Se sono presenti più suggerimenti con lo stesso testo di base più lungo, scegli l'opzione con il ranking dei suggerimenti più alto.
Flusso di lavoro di esempio:
- Un agente digita "Ho".
- Viene inviata una richiesta con il messaggio corrente "Ho".
- L'agente ha continuato a digitare "Come".
- Il suggerimento {"Spero che tu", "come stai?", "Come stai oggi?"} (basato sulla voce originale "Ho") raggiunge l'interfaccia utente dell'agente.
- In questo caso, "Spero che tu" non è più un suggerimento valido perché l'agente ha digitato una parola diversa. Al contrario, dovrebbe essere suggerito "come stai?".
Memorizzazione nella cache
Ti consigliamo di implementare la memorizzazione nella cache come una mappa chiave-valore, con il prefisso come chiave e i suggerimenti restituiti dall'API come valore. La mappa deve essere controllata per verificare la presenza di una chiave che corrisponda all'input dell'agente. Se la mappa non contiene una chiave corrispondente, i caratteri devono essere rimossi dalla fine dell'input dell'agente uno alla volta, con la mappa controllata a ogni iterazione. Questa operazione deve continuare finché non viene trovato un suggerimento corrispondente, non rimangono più caratteri da rimuovere dall'input dell'agente o viene raggiunto un limite di iterazioni (50 iterazioni è un numero ragionevole). Quando viene trovata la chiave corrispondente, i suggerimenti devono essere iterati. Per determinare se un suggerimento è valido, la chiave (sottostringa del prefisso) e il suggerimento vengono uniti, quindi controllati rispetto all'input dell'agente. Il suggerimento unito e l'input dell'agente devono sovrapporsi completamente a partire dai primi caratteri. In caso contrario, è necessario controllare il suggerimento successivo.
Un esempio di utilizzo della memorizzazione nella cache:
- "Agente" digita "H".
- La mappa chiave-valore viene controllata per verificare la presenza di suggerimenti per il prefisso "H". Non ce ne sono e non ci sono altri caratteri da rimuovere dalla fine dell'input, quindi viene inviata una richiesta di suggerimenti per "H".
- "Agente" continua a digitare "Ho".
- La mappa chiave-valore viene controllata per verificare la presenza di suggerimenti per il prefisso "Ho". Non ce ne sono, la mappa chiave-valore viene controllata per verificare la presenza di suggerimenti per il prefisso "H". Non ce ne sono e non ci sono altri caratteri da rimuovere dalla fine dell'input, quindi viene inviata una richiesta di suggerimenti per "Ho".
- Viene ricevuta una risposta senza suggerimenti dalla richiesta inviata nel passaggio 2 e la risposta viene aggiunta alla cache per la chiave "H".
- Viene ricevuta una risposta con i suggerimenti {"Spero che tu", "come stai?", "Come stai oggi?"} dalla richiesta inviata nel passaggio 4 e i suggerimenti vengono aggiunti alla cache per la chiave "Ho".
- La mappa chiave-valore viene controllata per verificare la presenza di suggerimenti per il prefisso "Ho", ce ne sono. I suggerimenti vengono eseguiti in loop, con la chiave e il suggerimento uniti e controllati rispetto all'input "Agente". L'input "Agente" "Ho" si sovrappone al primo suggerimento "Spero che tu", quindi all'agente viene mostrato il suggerimento "spero che tu".
- "Agente" continua a digitare "Come".
- La mappa chiave-valore viene controllata per verificare la presenza di suggerimenti per il prefisso "Come". Non ci sono suggerimenti, la mappa chiave-valore viene controllata per verificare la presenza di suggerimenti per il prefisso "Ho", ce ne sono. I suggerimenti vengono eseguiti in loop, con la chiave e il suggerimento uniti e controllati rispetto all'input "Agente". L'input "Agente" "Come" si sovrappone al primo suggerimento "come stai?", quindi all'agente viene mostrato il suggerimento "stai?".
Cronologia conversazione
La scrittura intelligente si basa sulla cronologia delle conversazioni per funzionare correttamente. Se utilizzi
la risposta rapida o altre funzionalità di Assistente agente tramite l'
analyzeContent
API,
dovresti essere già coperto. In caso contrario, devi chiamare l'API analyzeContent su ogni messaggio completato prima di utilizzare suggestSmartComposeAnswers per ottenere suggerimenti di scrittura intelligente. Per ulteriori dettagli, consulta la guida illustrativa sulla scrittura intelligente.