Crea la tua assistenza basata sull'IA generativa ti consente di creare un generatore di testo e di integrarlo con Agent Assist. Il generatore di testo utilizza modelli linguistici di grandi dimensioni (LLM) avanzati, come Text Bison e Gemini, per generare suggerimenti. Puoi utilizzare questi suggerimenti per aiutare i partecipanti a una conversazione con l'assistenza clienti, ad esempio gli agenti umani e gli utenti umani. Il generatore può utilizzare le chiamate LLM integrate di Agent Assist che possono essere configurate per la maggior parte delle attività LLM. Per saperne di più sui generatori in Agent Assist, consulta la documentazione di Vertex AI.
Input del generatore
Il generatore di testo richiede i seguenti input:
Istruzione: un testo per descrivere l'attività che vuoi che venga eseguita dal generatore di testo. In Vertex AI l'istruzione è chiamata prompt.
Opzioni modello: la scelta del modello e le impostazioni necessarie per un rendimento ottimale, ad esempio temperatura, limite di token di output, TopK e TopP. Le uscite del generatore sono limitate da queste impostazioni. Puoi scegliere un modello e impostarne le opzioni quando crei un generatore facendo clic su Opzioni modello oppure puoi utilizzare le impostazioni predefinite. In Vertex AI, le opzioni del modello sono chiamate valori dei parametri.
Evento di attivazione: uno dei seguenti eventi che indica quando avviare il generatore:
END_OF_UTTERANCE
: attiva il generatore dopo l'inserimento di ogni enunciato.MANUAL_CALL
: attiva il generatore solo quando effettui chiamate API esplicite per invocarlo.CUSTOMER_MESSAGE
: attiva il generatore solo dopo ogni messaggio del cliente.AGENT_MESSAGE
: attiva il generatore solo dopo ogni messaggio dell'agente.
Output del generatore
Dopo aver fornito gli input al generatore di testo, lo strumento Crea il tuo assistente di IA generativa fornisce suggerimenti come link agli articoli, risposte appropriate o informazioni di backend sulle offerte promozionali. Questi suggerimenti vengono forniti in formato di testo e sono pertinenti nel contesto della conversazione con l'assistenza clienti al momento della loro generazione.
Casi d'uso
Questa sezione presenta tre casi d'uso come esempi di come è possibile implementare i generatori di assistenza basati sull'IA generativa. Il modello potrebbe generare risposte di output diverse rispetto ai seguenti esempi.
Riscritto professionale
Prima di rispondere ai clienti, puoi chiedere al generatore di riformulare le frasi degli agenti umani in modo professionale, educato ed empatico, come segue.
- Nome del generatore: Riscritto professionale
- Evento di attivazione: messaggio dell'agente
Istruzione:
# TASK DESCRIPTION: Output the agent's response under ## LAST UTTERANCE rewritten in a professional, polite and empathetic way in EXAMPLE 4. - DO NOT miss any information mentioned by the original text. - Only output rewritten response. - You're provided with EXAMPLE 1-3. Follow the format. # EXAMPLE 1 ## CONVERSATION: AGENT: Yo what's up it's Akshay. This is Amazon customer service. What do you want? ## LAST UTTERANCE: Yo what's up it's Akshay. This is Amazon customer service. What do you want? ## OUTPUT: Hi I'm Akshay. Thank you for choosing Amazon customer service. How can I assist you today? # EXAMPLE 2 ## CONVERSATION: CUSTOMER: Hi, I'm having some trouble with my Apple Music subscription. AGENT: Hey, I'm [name]. I can help, I guess. What's your name and account number? CUSTOMER: Sure, my name is [name] and my account number is [number]. AGENT: Alright. Checked that out. You are on Apple Music Individual plan, right? ## LAST UTTERANCE: Alright. Checked that out. You are on Apple Music Individual plan, right? ## OUTPUT: Thank you. I see that you're currently subscribed to the Apple Music Individual plan. Is that correct? # EXAMPLE 3 ## CONVERSATION: AGENT: What is your order number? CUSTOMER: 12345 AGENT: Hang on a sec. Looking. CUSTOMER: I'll wait. AGENT: Alright, it appears your order is not registered. Did you even submit the order? CUSTOMER: Let me double check. Shoot, someone canceled it. Must be the kids. AGENT: Yeah, watch your kids will you? CUSTOMER: I'm so sorry. AGENT: All good. Have a good one. ## LAST UTTERANCE: All good. Have a good one. ## OUTPUT: No problem. I'm glad I can help. Please have a good day! # EXAMPLE 4 ## CONVERSATION: ${parameter:transcript} ## LAST UTTERANCE: ${parameter:transcript_last_utterance} ## OUTPUT:
Fidelizzazione dei clienti
Puoi anche chiedere al generatore di suggerire risposte degli agenti per la fidelizzazione dei clienti, ad esempio offrire sconti sui prodotti, upsell o cross-sell di prodotti e risolvere i problemi, come nell'esempio seguente. Il generatore accede alle informazioni che fornisci su sconti e offerte come riferimenti di contesto con l'API IngestContextReferences
.
- Nome del generatore: Ritirata e fidelizzazione dei clienti
- Evento di attivazione: messaggio del cliente
- Riferimenti contestuali: offerte
- Uno: sconto dell'11%
- Nest: sconto del 5%
- Sconto per i nuovi clienti: 10%
Istruzione:
# TASK DESCRIPTION: You are an Agent who is helping a customer resolve an issue with complete understanding of the same. - Make sure you wait to understand the concern or query before making any suggestions. - If the customer informs about the issue, you need to ask the exact reason. If the reason is valid, you can give appropriate credit from the OFFERS section. - If the customer is about to cancel an order or subscription, make sure you offer something from the OFFERS section and try to retain the customer. - If a customer is inquiring about a new product, offer some combo for upselling another product. Below are two examples for detecting churn and generating suggestions for mitigation. The output should be a single message suggested to the agent according to the context of the conversation. # EXAMPLE 1 Customer: Hello Agent: Welcome to Google. How may I help you? Customer: I want to cancel order. Agent: Sure Let me have an order ID. Customer: Its 123321 Agent: I could see that you placed an order for Google Nest. May I know the reason for cancellation? Customer: It's available at cheaper rate now. Agent: Ohh.! I see. Let me check the current price and adjust the order price. Is it okay ? Customer: Sure..! I can purchase the product as long as I can get it at the discounted price. I'd definitely go with it Agent: Google Nest costs $200 at present. I can see that you paid $230. Customer: Yeah. Can you request to refund $30. I can buy it at $200. Agent : Sure. I have updated. You will get $30 refund once your order is delivered. Customer: Thanks. Agent : Welcome # EXAMPLE 2 Customer: Hello Agent: Welcome to Google. How may I help you? Customer: I am having Google One Subscription. I think I may need some more space in future. Agent: Okay. May I have your customer Id: Customer: Its 123321 Agent: I could see that you have 100GB Plan at present. How much are you expecting to need in future? Customer: I think I may need 100GB or more. Agent: I could check that you are a loyal customer who had subscriptions since last 6 months. I can provide you 10% discount. Customer: Sure..! That would be great. Agent: 200GB Subscription costs $180 per annum which I can offer you at $162. Customer: That's cool. Thank you. Agent: Is there anything else I can help you with? Customer: No thanks. ## CONTEXT ${parameter:transcript} ## OFFERS ${parameter:offers}
Creare un generatore
Gli esempi riportati di seguito mostrano come creare un generatore di testo di assistenza basato sull'IA generativa.
Console
Per creare un generatore utilizzando la console Agent Assist:
Nella console, vai alla pagina Crea la tua assistenza.
Fai clic su Crea.
Inserisci il nome dell'impianto di generazione.
Seleziona l'evento di attivazione dall'elenco.
Inserisci l'istruzione per definire l'attività.
Fai clic su Opzioni modello e seleziona un modello dall'elenco.
Imposta i parametri o utilizza le impostazioni predefinite.
Fai clic su Salva e poi di nuovo su Salva per salvare il generatore.
REST
Per creare un generatore utilizzando l'API:
- Chiama il metodo
CreateGenerator
dalla risorsa Generator. - Inserisci il nome dell'impianto nel campo
description
. - Inserisci l'evento di attivazione.
- Inserisci l'istruzione per definire l'attività in FreeFormContext.text.
- Inserisci un nome del modello nel campo
published_model
o lascialo vuoto per utilizzare il modello predefinito. - Specifica i parametri del modello nel campo
inference_parameter
o lasciali vuoti per utilizzare i valori predefiniti.
Parametri
Puoi rendere contestuale un'istruzione contrassegnando le parole come parametri utilizzando il formato ${parameter:<parameter_name>}
. Puoi anche utilizzare l'API Data Ingestion per importare il valore effettivo di un parametro chiamando il metodo IngestContextReferences in una conversazione. Con questo metodo, i parametri nell'istruzione verranno sostituiti dal relativo valore durante l'esecuzione.
Di seguito è riportato un esempio JSON di come importare il valore dei parametri chiamando IngestContextReferences:
{ "contextReferences": { "glossary": { "contextContents": [ { "content": "east one", "contentFormat": "PLAIN_TEXT" } ] } } }
Esistono anche alcuni parametri del generatore che non devono essere importati. Questi parametri integrati sono:
${parameter:transcript}
: la conversazione tra l'agente e l'utente, inclusa l'ultima frase dell'utente.${parameter:transcript_last_utterance}
: l'ultima frase nella conversazione.
In ogni istruzione deve essere utilizzato almeno un parametro integrato.
Che siano integrati o importati, i parametri del generatore sono diversi dalle opzioni del modello impostate al momento della creazione del generatore. I valori di questi parametri del generatore provengono da una trascrizione della conversazione o da dati importati. Invece, imposti i valori delle opzioni del modello per l'intero generatore.
Testare un generatore
Nella console Crea la tua assistenza AI generativa, puoi testare il generatore nella sezione Testa il generatore.
Per testare un generatore nella console Crea la tua assistenza AI generativa, segui questi passaggi:
Console
- Aggiungi una trascrizione della conversazione. Puoi inserire manualmente le frasi o caricare una trascrizione in formato JSON facendo clic su Carica.
- Per aggiungere altri dati da importare, fai clic su more_vert e note_add Aggiungi dati iniettati.
La console Crea il tuo assistente AI generativa mostra le risposte generate con annotazioni del nome del generatore.
REST
Per testare un generatore utilizzando l'API:
- Inserisci il nome del generatore nel campo
generatorName
. - Fornisci le conversazioni nel campo
conversationContext
. - Fornisci i valori dei parametri, se presenti, nel campo
contextReferences
. - Inserisci l'attivatore per la generazione di suggerimenti nel campo
triggerEvents
. I suggerimenti generati sono disponibili nel campogeneratorSuggestion
.
Profilo di conversazione
Un profilo di conversazione definisce un insieme di parametri che controllano i suggerimenti fatti durante una conversazione. I passaggi riportati di seguito creano una risorsa conversationProfile
con un oggetto HumanAgentAssistantConfig
.
Console
- Nella console Agent Assist, vai alla pagina Profili di conversazione.
- Fai clic su + Crea.
- Inserisci il nome visualizzato.
- Seleziona il tipo di suggerimento check_box Crea il tuo assistente.
- Inserisci il nome dell'impianto o sceglilo dall'elenco.
REST
- Chiama il metodo
create
dalla risorsa profilo conversazione. - Assegna un nome al nuovo profilo di conversazione.
- Inserisci il codice lingua.
- Inserisci il nome del generatore in human_agent_suggestion_config.
Di seguito è riportato un esempio JSON di un profilo di conversazione.
{ "displayName": "build-your-own-assist-test", "humanAgentAssistantConfig": { "humanAgentSuggestionConfig": { "generators": "projects/PROJECT_ID/locations/global/generators/GENERATOR_ID" } } }
Verifica con il simulatore
Puoi verificare il profilo di conversazione nel simulatore di Agent Assist. Il simulatore mostra le risposte generate con l'annotazione del nome del generatore.
Testare un prompt
Nella console Crea la tua assistenza AI generativa, puoi testare un prompt con il simulatore nello stesso modo in cui verifichi un profilo di conversazione.
L'output generato mostrato nell'immagine seguente illustra l'aderenza del generatore freeform-tool-test1
al prompt di esempio.
Conversazioni in fase di esecuzione
Una conversazione viene definita come un'interazione tra un agente, inclusi agenti umani e virtuali, e un cliente o un utente finale dell'assistenza. In fase di esecuzione, quando inizia un dialogo tra un utente finale e un agente umano, viene creata una conversazione. Per visualizzare i suggerimenti, devi creare un partecipante utente finale e un partecipante agente umano e aggiungerli alla conversazione.
Creare una conversazione
Per creare una conversazione:
- Chiama il metodo
create
daconversation resource
. - Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto
- CONVERSATION_PROFILE_ID: il tuo ID profilo di conversazione
Metodo HTTP e URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations
Corpo JSON della richiesta:
{ "conversationProfile": "projects/PROJECT_ID/conversationProfiles/CONVERSATION_PROFILE_ID", }
Nella risposta JSON, il segmento di percorso dopo conversations
contiene il nuovo ID conversazione. La risposta JSON dovrebbe essere simile alla seguente:
{ "name": "projects/PROJECT_ID/conversations/CONVERSATION_ID", "lifecycleState": "IN_PROGRESS", "conversationProfile": "projects/PROJECT_ID/conversationProfiles/CONVERSATION_PROFILE_ID", "startTime": "2023-11-05T21:05:45.622Z" }
Crea un partecipante utente finale
Per creare un partecipante utente finale:
- Chiama il metodo
create
dalla risorsaparticipants
. - Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto
- CONVERSATION_ID: il tuo ID conversazione
Fornisci l'ID conversazione e "END_USER" per il campo del ruolo come segue.
Metodo HTTP e URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID/participants
Corpo JSON della richiesta:
{ "role": "END_USER", }
Nella risposta JSON, il segmento di percorso dopo participants
contiene il nuovo ID partecipante utente finale. La risposta JSON dovrebbe essere simile alla seguente:
{ "name": "projects/PROJECT_ID/conversations/CONVERSATION_ID/participants/USER_PARTICIPANT_ID", "role": "END_USER" }
Crea un partecipante agente umano
Per creare un partecipante agente umano:
- Chiama il metodo
create
dalla risorsaparticipants
. - Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto
- CONVERSATION_ID: il tuo ID conversazione
Fornisci l'ID conversazione e il ruolo HUMAN_AGENT
per il campo come segue.
Metodo HTTP e URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID/participants
Corpo JSON della richiesta:
{ "role": "HUMAN_AGENT", }
Nella risposta JSON, il segmento di percorso dopo participants
contiene il nuovo ID partecipante dell'agente umano. La risposta dovrebbe essere simile alla seguente:
{ "name": "projects/PROJECT_ID/conversations/CONVERSATION_ID/participants/AGENT_PARTICIPANT_ID", "role": "HUMAN_AGENT" }
Analizza messaggio
Un generatore può anche analizzare un messaggio all'interno di una conversazione. Durante una conversazione, puoi aggiungere un messaggio e il generatore può analizzare i messaggi sia dell'agente umano sia dell'utente finale con il metodo analyzeContent
della risorsa participants
.
Per aggiungere e analizzare un messaggio con un agente umano:
- Chiama il metodo
analyzeContent
. - Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto
- CONVERSATION_ID: il tuo ID conversazione
- PARTICIPANT_ID: il tuo ID partecipante agente umano
Fornisci l'ID conversazione e l'ID partecipante agente umano. La richiesta deve includere qualcosa di simile al seguente:
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": "Bonjour, ici le service client d'ABC fishing, comment puis-je vous aider aujourd'hui ?", "languageCode": "en-US" } }
Dovresti ricevere una risposta JSON simile alla seguente:
{ "message": { "name": "projects/PROJECT_ID/conversations/CONVERSATION_ID/messages/MESSAGE_ID", "content": "Bonjour, ici le service client d'ABC fishing, comment puis-je vous aider aujourd'hui ?", "languageCode": "en-US", "participant": "PARTICIPANT_ID", "participantRole": "HUMAN_AGENT", "createTime": "2023-02-13T00:01:30.683Z" }, "humanAgentSuggestionResults": [{ "generateSuggestionsResponse": { "generatorSuggestionAnswers": [{ "generatorSuggestion": { "freeFormSuggestion": { "response": "Hello, this is ABC fishing customer service, how can I help you today?" } }, "sourceGenerator": "projects/PROJECT_ID/locations/global/generators/GENERATOR_ID", "answerRecord": "projects/PROJECT_ID/locations/global/answerRecords/ANSWER_RECORD_ID" }], "latestMessage": "projects/PROJECT_ID/locations/global/conversations/CONVERSATION_ID/messages/MESSAGE_ID" } }] }
Per aggiungere e analizzare un messaggio dell'utente finale
- Chiama il metodo
analyzeContent
. Non effettuare chiamate duplicate al metodo se è stato chiamato per altre funzionalità di Agent Assist. - Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto
- CONVERSATION_ID: il tuo ID conversazione
- PARTICIPANT_ID: il tuo ID partecipante agente umano
Fornisci l'ID conversazione e l'ID partecipante agente umano. La richiesta deve includere qualcosa di simile al seguente:
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": "Hi", "languageCode": "en-US" } }
Dovresti ricevere una risposta JSON simile alla seguente:
{ "message": { "name": "projects/PROJECT_ID/conversations/CONVERSATION_ID/messages/MESSAGE_ID", "content": "Hi", "languageCode": "en-US", "participant": "PARTICIPANT_ID", "participantRole": "END_USER", "createTime": "2020-02-13T00:07:35.925Z" }, "humanAgentSuggestionResults": [{ "generateSuggestionsResponse": { "generatorSuggestionAnswers": [{ "generatorSuggestion": { "freeFormSuggestion": { "response": "Salut" } }, "sourceGenerator": "projects/PROJECT_ID/locations/global/generators/GENERATOR_ID", "answerRecord": "projects/PROJECT_ID/locations/global/answerRecords/ANSWER_RECORD_ID" }], "latestMessage": "projects/PROJECT_ID/locations/global/conversations/CONVERSATION_ID/messages/MESSAGE_ID" } }] }
Quando una conversazione è stata completata e analyzeContent
non è stato utilizzato, puoi utilizzare il metodo batchCreate
della risorsa messages per importare e analizzare i messaggi storici della conversazione.
Visualizza suggerimenti
Il generatore fornisce anche suggerimenti in risposta a un messaggio in qualsiasi momento di una conversazione. Per impostazione predefinita, i suggerimenti riguardano l'ultimo messaggio inviato da entrambi i partecipanti. Puoi anche specificare il messaggio per cui vuoi ricevere i suggerimenti. Ricevi suggerimenti per impostazione predefinita o utilizzando una delle seguenti risorse.
Utilizzare i suggerimenti inclusi
La risposta di analyzeContent
è accompagnata da suggerimenti. Il generatore attivato produce questi suggerimenti. La richiesta JSON deve includere qualcosa di simile al seguente:
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" } }
Utilizzare la risorsa suggestions
Un altro approccio per ricevere suggerimenti è seguire questi passaggi.
- Chiama il metodo
generate
dalla risorsasuggestions
. - Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto
- CONVERSATION_ID: il tuo ID conversazione
- PARTICIPANT_ID: il tuo ID partecipante agente umano
Fornisci l'ID conversazione, l'ID messaggio più recente di uno dei partecipanti e gli eventi di attivazione. Se il campo ID messaggio non è impostato, per impostazione predefinita i suggerimenti si basano sull'ultimo messaggio inviato da uno dei partecipanti. Verrà quindi avviato il generatore associato all'evento di attivazione. La richiesta JSON deve includere qualcosa di simile al seguente:
Metodo HTTP e URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_IDsuggestions:generate
Corpo JSON della richiesta:
{ "latestMessage": "projects/PROJECT_ID/conversations/CONVERSATION_IDmessages/Message_ID", "triggerEvents": [ "END_OF_UTTERANCE" ] }
Utilizzare la risorsa statelessSuggestion
Un ultimo approccio per ricevere suggerimenti è seguire questi passaggi.
- Chiama il metodo
generate
dalla risorsastatelessSuggestion
. - Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto
- LOCATION_ID: il tuo ID posizione
Fornisci il generatore, i messaggi della conversazione e i riferimenti contestuali contenenti i dati importati. I dati importati sostituiscono i parametri nell'istruzione del generatore. La richiesta JSON dovrebbe essere simile alla seguente:
Metodo HTTP e URL:
https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/statelessSuggestion:generate
Corpo JSON della richiesta:
{ "generator": { "description": "Translation", "triggerEvent": "END_OF_UTTERANCE", "freeFormContext": { "text": "Read the conversation between agent and customer, and the last utterance. Output the last utterance from customer by following these instructions: - If the last utterance from AGENT, output the utterance by translating it to English. - If the last utterance from CUSTOMER, output the utterance by translating it to French. - Specific brand names and technical terms specified under 'GLOSSARY' section, such as 'Google Home,' should remain unchanged as per the glossary guidelines. # GLOSSARY ${parameter:glossary} # CONVERSATION: ${parameter:transcript} # LAST UTTERANCE: ${parameter:transcript_last_utterance} # OUTPUT: " } }, "contextReferences": { "glossary": { "contextContents": { "content": "east one", "contentFormat": "PLAIN_TEXT" } } }, "conversationContext": { "messageEntries": [ { "text": "hi", "languageCode": "en-US", "role": "END_USER", "createTime": { "seconds": "1400000000", "nanos": "10000000" } }, { "text": "Bonjour, comment puis-je vous aider aujourd\\'hui ?", "languageCode": "en-US", "role": "HUMAN_AGENT", "createTime": { "seconds": "1400000010", "nanos": "10000000" } } ] }, "triggerEvents": [ "END_OF_UTTERANCE" ] }
Limiti di quota
Puoi visualizzare le quote e i limiti per Agent Assist nella pagina delle quote di Dialogflow. La funzionalità Crea il tuo assistente IA generativa include i seguenti limiti di quota:
Nome | Descrizione | Limite |
---|---|---|
Operazioni del gestore del generatore al minuto (per regione) | Limite al numero di operazioni di gestione dei generatori che possono essere eseguite ogni minuto, ad esempio creazione, elencazione o eliminazione di generatori. | 300 |
Generatori (per regione) | Limite per il numero massimo di generatori che puoi creare in un singolo progetto. | 200 |
Operazioni di suggerimento del generatore al minuto per tipo di modello (per regione) | Limite al numero di richieste di operazioni di suggerimento del generatore che puoi ricevere ogni minuto per ogni tipo di modello. | 10 |