La funzionalità Scrittura intelligente assiste un agente umano durante una chat di testo con un utente finale. Suggerisce frasi per completare le frasi iniziate dall'agente umano. Puoi utilizzare questa funzionalità per implementare una funzionalità di suggerimenti personalizzati per l'interfaccia di chat del tuo agente.
Questa guida ti illustra l'implementazione della funzionalità Scrittura intelligente chiamando direttamente l'API. Se preferisci, puoi utilizzare la console di Agent Assist per addestrare un modello e testarne le prestazioni utilizzando il simulatore. Per istruzioni, consulta il tutorial sul simulatore di Scrittura intelligente.
Consulta la documentazione sulle best practice per la Scrittura intelligente per linee guida sull'integrazione della Scrittura intelligente con il tuo sistema e sul miglioramento della qualità dei suggerimenti.
Prima di iniziare
Prima di leggere questa guida, completa le seguenti operazioni:
- Abilita l'API Dialogflow per il tuo progetto.
Informazioni che consentono l'identificazione personale e dati dei bambini
Quando invii dati a questa API, l'API tenta di oscurare tutte le informazioni che consentono l'identificazione personale (PII). Se devi assicurarti che il modello non includa PII, devi sanitizzare i dati prima di inviarli all'API. Sostituisci le parole oscurate con segnaposto come `REDACTED_NUMBER` o `REDACTED_NAME` anziché rimuoverle semplicemente.
Inoltre, se i tuoi dati contengono informazioni raccolte da bambini, devi rimuovere i dati dei bambini prima di inviarli all'API.
Addestra ed esegui il deployment di un modello
I modelli di Risposta rapida di Agent Assist vengono addestrati utilizzando set di dati di conversazione. Un set di dati delle conversazioni contiene i dati delle trascrizioni che hai caricato. Questa sezione ti guida attraverso il processo di creazione di un set di dati di conversazione, caricamento dei dati di conversazione, addestramento e deployment di un modello. Puoi anche eseguire queste azioni utilizzando la console Agent Assist se preferisci non chiamare direttamente l'API.
Creare un set di dati conversazione
Prima di poter iniziare a caricare le trascrizioni delle conversazioni, devi prima creare un set di dati delle conversazioni in cui inserirle. Chiama il metodo create sulla risorsa ConversationDataset per creare un set di dati di conversazione.
La risposta contiene un ID set di dati di conversazione.
Importare le trascrizioni delle conversazioni nel set di dati conversazione
Carica i dati delle conversazioni di chat nel set di dati delle conversazioni in modo che possano
essere elaborati da Agent Assist.
Assicurati che la trascrizione di ogni conversazione sia in
formato JSON e archiviata in un
bucket Cloud Storage.
Un set di dati di conversazione deve contenere almeno 30.000 conversazioni, altrimenti
l'addestramento del modello non andrà a buon fine. Come regola generale, più conversazioni hai, migliore sarà la qualità del modello. Ti consigliamo di caricare almeno tre mesi
di conversazioni per coprire il maggior numero possibile di casi d'uso. Il
numero massimo di messaggi in un set di dati di conversazione è 1.000.000.
Chiama il metodo importConversationData sulla risorsa ConversationDataset per importare le conversazioni.
Campi obbligatori:
- L'ID del set di dati delle conversazioni che hai creato in precedenza.
- Il percorso
inputConfigporta ai dati della trascrizione della conversazione in un bucket Cloud Storage.
La risposta è un'operazione a lunga esecuzione, che puoi eseguire il polling per verificare il completamento.
Creare un modello di conversazione
Chiama il metodo create sulla risorsa ConversationModel per creare un modello di conversazione. Questa azione crea anche la lista consentita del modello.
Campi obbligatori:
- In
datasets, fornisci un singolo set di dati utilizzando l'ID set di dati delle conversazioni che hai creato in precedenza. - Imposta
smartReplyModelMetadatasu un oggetto vuoto o compila il campo per ignorare il valore predefinito.
La risposta è un'operazione a lunga esecuzione, che puoi eseguire il polling per verificare il completamento. Una volta completata, l'ID modello e l'ID lista consentita verranno inclusi nei metadati dell'operazione.
- ID modello:
name - ID lista consentita:
smart_reply_model_metadata.associated_allowlist_info.document
Esegui il deployment del modello di conversazione
Chiama il metodo deploy sulla risorsa ConversationModel per eseguire il deployment del modello di conversazione.
Campo obbligatorio:
- Utilizza
conversationModels: inserisci l'ID del modello di conversazione che hai creato in precedenza.
Gestire una lista consentita
A ogni modello è associata una lista consentita, che viene creata automaticamente quando crei un modello di conversazione. La lista consentita contiene tutte le risposte generate dai tuoi set di dati delle conversazioni, che possono essere mostrate a un operatore umano in fase di runtime. Questa sezione descrive la creazione e la gestione delle liste consentite. Puoi anche eseguire queste azioni utilizzando la console Agent Assist se preferisci non chiamare direttamente l'API.
Esportare i contenuti della lista consentita in un file CSV
La creazione del modello genera automaticamente una lista consentita associata al nuovo modello. La lista consentita è una risorsa Document con un ID univoco. L'ID viene restituito
in smart_reply_model_metadata.associated_allowlist_info.document quando viene creato
un modello. Per esaminare e apportare modifiche ai messaggi nella lista consentita,
devi esportarli in un bucket Cloud Storage.
Chiama il metodo export sulla risorsa Document per esportare il documento in un file CSV in un bucket Cloud Storage.
Il campo smart_messaging_partial_update è facoltativo, ma influisce sul modo in cui potrai aggiornare questa lista consentita in futuro. Se impostato su true, il file CSV esportato includerà una colonna
che contiene un ID univoco per ogni messaggio. Puoi utilizzare l'ID messaggio per aggiornare solo i messaggi specificati anziché l'intero documento. Se
smart_messaging_partial_update è impostato su false o non è impostato, la colonna aggiuntiva
non verrà visualizzata nel file e qualsiasi aggiornamento alla lista consentita richiederà un
aggiornamento dell'intero documento.
Campo obbligatorio:
- Il percorso
gcsDestinationporta al tuo bucket Cloud Storage.
La risposta è un'operazione a lunga esecuzione, che puoi eseguire il polling per verificare il completamento. Successivamente, il file CSV che hai
fornito nella richiesta viene compilato con i candidati per la risposta.
Esaminare la lista consentita
La lista consentita generata contiene risposte create automaticamente da
Risposta rapida in base ai dati delle conversazioni. Ora puoi rivedere e aggiornare queste
risposte in base alle tue esigenze. Scarica il file CSV dal bucket Cloud Storage, modificalo in base alle tue esigenze e caricalo di nuovo nel bucket Cloud Storage. Solo
le risposte nella lista consentita possono essere mostrate agli agenti umani.
Se modifichi le risposte, ti consigliamo di apportare modifiche solo per l'ortografia e la grammatica e di non cambiare il significato del messaggio. Più il testo modificato si discosta dal significato nel modello, minore è la probabilità che il messaggio venga visualizzato.
Se necessario, puoi anche creare nuovi messaggi. Analogamente ai messaggi modificati, i messaggi creati hanno meno probabilità di essere visualizzati durante l'esecuzione.
Aggiornare la lista consentita
Una volta terminato l'aggiornamento del file CSV, puoi utilizzarlo per aggiornare la risorsa
Document. Puoi scegliere di aggiornare l'intera lista consentita o solo
i messaggi specificati. Per aggiornare solo i messaggi specificati, devi
aver impostato smart_messaging_partial_update su true quando hai
esportato la lista consentita.
Se l'hai già fatto, utilizza la colonna generata automaticamente nel file
CSV esportato per indicare i messaggi da aggiornare.
Chiama il metodo reload sulla risorsa Document per aggiornare la lista consentita. Per aggiornare solo i messaggi specificati, imposta
smart_messaging_partial_update su true in ReloadDocumentRequest. Per
aggiornare l'intera lista consentita, lascia smart_messaging_partial_update non impostato o imposta
false.
Campi obbligatori:
gcsSourceè il percorso Cloud Storage del fileCSV.- Per
name, utilizza il nome della risorsa della lista consentita generato quando hai creato un modello di conversazione.
Esempio di richiesta:
{
"name":"projects/project-id/knowledgeBases/knowledge-base-id/documents/allowlist-id",
"gcsSource" {
"uri": "gs://revised_smart_reply_allowlist_path"
}
}Valutare le prestazioni di un modello addestrato
Puoi testare le prestazioni di un modello dopo averlo sottoposto a deployment e aver creato una lista consentita. Devi anche fornire un set di dati di test. Le risposte generate dal modello di Risposta rapida addestrato e dalla relativa lista consentita verranno confrontate con i messaggi effettivi dell'agente nel set di dati di test. Il set di dati di test deve essere costituito da dati di conversazione reali, ma non deve contenere nessuno dei dati del set di dati di conversazione che hai utilizzato per addestrare il modello. Ad esempio, se hai a disposizione un mese di traffico delle conversazioni, puoi utilizzare tre settimane di dati sulle conversazioni per creare un set di dati sulle conversazioni e la settimana rimanente per creare il set di dati di test. Un set di dati di test deve contenere un minimo di 1000 conversazioni, ma in generale le metriche di valutazione saranno più affidabili con un numero maggiore di conversazioni nel set di dati di test. Il formato del set di dati di test è lo stesso del formato del set di dati delle conversazioni.
Per creare una nuova valutazione del modello, chiama il metodo CreateConversationModelEvaluation su una risorsa ConversationModel. Questo metodo restituisce un'operazione a lunga esecuzione. Puoi eseguire il polling dell'operazione per verificarne lo stato, che restituirà
uno dei seguenti valori: INITIALIZING, RUNNING, SUCCEEDED, CANCELLED, FAILED.
Campi obbligatori:
InputDataset: il set di dati di test che verrà utilizzato per testare le prestazioni del modello.allowlist_document: la lista consentita associata al modello di Risposta rapida da testare.
Al termine dell'operazione di lunga durata, viene restituita una risorsa ConversationModelEvaluation. Sono incluse due metriche:
allowlist_coverage: la percentuale di messaggi dell'agente nel set di dati di test coperti dalla lista consentita.recall: la percentuale di messaggi dell'agente nel set di dati di test che sono contenuti nella lista consentita e vengono visualizzati nei primi tre suggerimenti proposti dal modello di risposta rapida.
Configurare un profilo di conversazione
Un profilo di conversazione configura un insieme di parametri che controllano i
suggerimenti forniti a un agente durante una conversazione. I seguenti passaggi creano un
ConversationProfile con un
HumanAgentAssistantConfig
oggetto. Puoi anche eseguire queste azioni utilizzando la
console Agent Assist se preferisci
non chiamare direttamente l'API.
Creare un profilo di conversazione
Per creare un profilo di conversazione,
chiama il metodo create sulla risorsa
ConversationProfile.
Fornisci l'ID knowledge base, l'ID documento, l'ID progetto e l'ID modello.
{
"displayName": "smart_compose_assist",
"humanAgentAssistantConfig": {
"humanAgentSuggestionConfig": {
"featureConfigs": [
{
"suggestionFeature": {
"type": "SMART_COMPOSE"
},
"queryConfig": {
"documentQuerySource": {
"documents": "projects/PROJECT_ID/knowledgeBases/KNOWLEDGE_BASE_ID/documents/DOCUMENT_ID"
},
"maxResults": "1"
},
"conversationModelConfig": {
"model": "projects/PROJECT_ID/conversationModels/MODEL_ID"
}
}
]
}
}
}
La risposta contiene il nuovo ID del profilo conversazione.
Gestire le conversazioni in fase di runtime
Quando inizia un dialogo tra un utente finale e un agente umano, crei una conversazione. Per visualizzare i suggerimenti, devi anche creare un partecipante utente finale e un partecipante agente umano e aggiungerli alla conversazione. Le sezioni seguenti illustrano questa procedura.
Creare una conversazione
Per creare una conversazione,
chiama il metodo create sulla risorsa
Conversation.
REST
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto cloud
- LOCATION_ID: il tuo ID località
- CONVERSATION_PROFILE_ID: l'ID che hai ricevuto durante la creazione del profilo conversazione
Metodo HTTP e URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/conversations
Corpo JSON della richiesta:
{
"conversationProfile": "projects/PROJECT_ID/locations/LOCATION_ID/conversationProfiles/CONVERSATION_PROFILE_ID",
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"name": "projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID",
"lifecycleState": "IN_PROGRESS",
"conversationProfile": "projects/PROJECT_ID/locations/LOCATION_ID/conversationProfiles/CONVERSATION_PROFILE_ID",
"startTime": "2018-11-05T21:05:45.622Z"
}
Il segmento del percorso dopo conversations contiene il nuovo ID conversazione.
Python
Per eseguire l'autenticazione in Agent Assist, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Crea un partecipante utente finale
Per visualizzare i suggerimenti, devi aggiungere alla conversazione sia i partecipanti utenti finali sia quelli agenti umani. Per creare un partecipante utente finale, chiama il metodo create sulla risorsa Participant. Fornisci l'ID conversazione e END_USER per il campo role.
REST
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto cloud
- LOCATION_ID: il tuo ID località
- CONVERSATION_ID: l'ID della conversazione
Metodo HTTP e URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/participants
Corpo JSON della richiesta:
{
"role": "END_USER",
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"name": "projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID",
"role": "END_USER"
}
Il segmento di percorso dopo participants contiene il nuovo ID partecipante utente finale.
Python
Per eseguire l'autenticazione in Agent Assist, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Crea un partecipante agente umano
Per creare un partecipante agente umano, chiama il metodo create sulla risorsa Participant. Fornisci l'ID conversazione e HUMAN_AGENT per il campo role.
REST
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto cloud
- LOCATION_ID: il tuo ID località
- CONVERSATION_ID: l'ID della conversazione
Metodo HTTP e URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/participants
Corpo JSON della richiesta:
{
"role": "HUMAN_AGENT",
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"name": "projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID",
"role": "HUMAN_AGENT"
}
Il segmento di percorso dopo participants contiene il nuovo ID partecipante dell'agente umano.
Python
Per eseguire l'autenticazione in Agent Assist, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Aggiungere e analizzare un messaggio dell'agente umano
Ogni volta che uno dei partecipanti digita un messaggio nella conversazione, devi
inviarlo all'API per l'elaborazione. Agent Assist basa i suoi suggerimenti sull'analisi dei messaggi degli agenti umani e degli utenti finali. Per aggiungere e analizzare
un messaggio dell'agente umano per la conversazione, chiama il metodo analyzeContent sulla risorsa
Participant.
Fornisci l'ID conversazione e l'ID partecipante dell'agente umano.
REST
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: il tuo ID progetto GCP
- CONVERSATION_ID: l'ID della conversazione
- PARTICIPANT_ID: il tuo ID partecipante agente umano
Metodo HTTP e URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID:analyzeContent
Corpo JSON della richiesta:
{
"textInput": {
"text": "How may I help you?",
"languageCode": "en-US"
}
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"message": {
"name": "projects/PROJECT_ID/conversations/CONVERSATION_ID/messages/MESSAGE_ID",
"content": "How may I help you?",
"languageCode": "en-US",
"participant": "PARTICIPANT_ID",
"participantRole": "HUMAN_AGENT",
"createTime": "2020-02-13T00:01:30.683Z"
},
"humanAgentSuggestionResults": [
{
"suggestSmartRepliesResponse": {
"smartReplyAnswers": [
{
"reply": "I am here to help you.",
"confidence": 0.5,
"answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID_1"
},
{
"reply": "Sorry for the wait, we have a high volume of chats right now.",
"confidence": 0.3,
"answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID_2"
},
{
"reply": "Thank you for contacting us!",
"confidence": 0.1,
"answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID_3"
}
]
}
}
]
}
Python
Per eseguire l'autenticazione in Agent Assist, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Aggiungere e analizzare un messaggio dell'utente finale
Per aggiungere e analizzare un messaggio dell'utente finale per la conversazione, chiama il metodo analyzeContent sulla risorsa Participant. Fornisci l'ID conversazione e l'ID partecipante utente finale.
REST
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: il tuo ID progetto GCP
- CONVERSATION_ID: l'ID della conversazione
- PARTICIPANT_ID: l'ID partecipante utente finale
Metodo HTTP e URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID:analyzeContent
Corpo JSON della richiesta:
{
"textInput": {
"text": "I want to reserve a room.",
"languageCode": "en-US"
}
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"message": {
"name": "projects/PROJECT_ID/conversations/CONVERSATION_ID/messages/MESSAGE_ID",
"content": "I want to reserve a room.",
"languageCode": "en-US",
"participant": "PARTICIPANT_ID",
"participantRole": "END_USER",
"createTime": "2020-02-13T00:07:35.925Z"
},
"humanAgentSuggestionResults": [
{
"suggestSmartRepliesResponse": {
"smartReplyAnswers": [
{
"reply": "Where would you like to reserve a room?",
"confidence": 0.5,
"answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID_1"
},
{
"reply": "What type of rooms would you like to reserve?",
"confidence": 0.3,
"answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID_2"
},
{
"reply": "How long do you want to stay?",
"confidence": 0.1,
"answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID_3"
}
]
}
}
]
}
Python
Per eseguire l'autenticazione in Agent Assist, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
(Facoltativo) Ricevere un suggerimento
Puoi disattivare i suggerimenti in qualsiasi momento. Se vuoi, puoi specificare un ID messaggio per
ricevere suggerimenti basati su quel messaggio. Se questo campo non è impostato, i suggerimenti
si basano per impostazione predefinita sull'ultimo messaggio di uno dei partecipanti. Per ottenere
suggerimenti, chiama il metodo suggestSmartReplies sulla risorsa
Suggestion. Fornisci l'ID conversazione, l'ID partecipante dell'agente umano e un ID messaggio di uno dei partecipanti (facoltativo).
La risposta contiene i suggerimenti di Risposta rapida per l'agente umano.
REST
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: il tuo ID progetto GCP
- CONVERSATION_ID: l'ID della conversazione
- PARTICIPANT_ID: l'ID partecipante utente finale
Metodo HTTP e URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID:analyzeContent
Corpo JSON della richiesta:
{
"textInput": {
"text": "I want to reserve a room.",
"languageCode": "en-US"
}
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"message": {
"name": "projects/PROJECT_ID/conversations/CONVERSATION_ID/messages/MESSAGE_ID",
"content": "I want to reserve a room.",
"languageCode": "en-US",
"participant": "PARTICIPANT_ID",
"participantRole": "END_USER",
"createTime": "2020-02-13T00:07:35.925Z"
},
"humanAgentSuggestionResults": [
{
"suggestSmartRepliesResponse": {
"smartReplyAnswers": [
{
"reply": "Where would you like to reserve a room?",
"confidence": 0.5,
"answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID_1"
},
{
"reply": "What type of rooms would you like to reserve?",
"confidence": 0.3,
"answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID_2"
},
{
"reply": "How long do you want to stay?",
"confidence": 0.1,
"answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID_3"
}
]
}
}
]
}
Python
Per eseguire l'autenticazione in Agent Assist, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Completare la conversazione
Per completare la conversazione, chiama il metodo complete sulla risorsa conversations. Fornisci l'ID conversazione.
REST
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: il tuo ID progetto GCP
- CONVERSATION_ID: l'ID ricevuto durante la creazione della conversazione
Metodo HTTP e URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID:complete
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"name": "projects/PROJECT_ID/conversations/CONVERSATION_ID",
"lifecycleState": "COMPLETED",
"conversationProfile": "projects/PROJECT_ID/conversationProfiles/CONVERSATION_PROFILE_ID",
"startTime": "2018-11-05T21:05:45.622Z",
"endTime": "2018-11-06T03:50:26.930Z"
}
Python
Per eseguire l'autenticazione in Agent Assist, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.