Virtual Agent Assist

Questa guida illustrativa illustra la procedura per attivare la funzionalità Assistente Virtuale chiamando direttamente l'API. L'assistente Assistente agente virtuale segue la conversazione e utilizza un agente virtuale Dialogflow per fornire supporto al flusso di lavoro agli agenti umani e rilevare gli intent per l'analisi dei dati.

Se preferisci, puoi utilizzare la console di Agent Assist per addestrare un modello e testarne il rendimento utilizzando il simulatore. Per istruzioni, consulta il tutorial sulla console Virtual Agent Assist.

Prima di iniziare

Prima di poter attivare Virtual Agent Assist, devi aver già implementato una o più funzionalità di Agent Assist da utilizzare con l'agente virtuale. Risposta rapida, Assistenza FAQ, Suggerimento articolo e Scrittura intelligente possono essere utilizzati singolarmente con Agent Assist virtuale o in qualsiasi combinazione. I seguenti link ti rimandano alla documentazione pertinente per i dettagli di implementazione.

Creare una conversazione

Quando inizia un dialogo tra un utente finale e un agente umano o virtuale, crei una conversazione. Per visualizzare i suggerimenti, devi anche creare un partecipante utente finale e un partecipante operatore umano e aggiungerli alla conversazione. Le sezioni seguenti illustrano questa procedura.

Innanzitutto, devi creare una conversazione:

REST

Per creare una conversazione, chiama il metodo create sulla risorsa Conversation.

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.

def create_conversation(project_id, conversation_profile_id):
    """Creates a conversation with given values

    Args:
        project_id:  The GCP project linked with the conversation.
        conversation_profile_id: The conversation profile id used to create
        conversation."""

    client = dialogflow.ConversationsClient()
    conversation_profile_client = dialogflow.ConversationProfilesClient()
    project_path = client.common_project_path(project_id)
    conversation_profile_path = conversation_profile_client.conversation_profile_path(
        project_id, conversation_profile_id
    )
    conversation = {"conversation_profile": conversation_profile_path}
    response = client.create_conversation(
        parent=project_path, conversation=conversation
    )

    print("Life Cycle State: {}".format(response.lifecycle_state))
    print("Conversation Profile Name: {}".format(response.conversation_profile))
    print("Name: {}".format(response.name))
    return response

Crea un partecipante utente finale

Per visualizzare i suggerimenti, devi aggiungere alla conversazione sia i partecipanti utenti finali sia quelli agenti umani. Innanzitutto, aggiungi il partecipante utente finale alla conversazione:

REST

Per creare un partecipante utente finale, chiama il metodo create sulla risorsa Participant.

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.

def create_participant(project_id: str, conversation_id: str, role: str):
    from google.cloud import dialogflow_v2beta1 as dialogflow

    """Creates a participant in a given conversation.

    Args:
        project_id: The GCP project linked with the conversation profile.
        conversation_id: Id of the conversation.
        participant: participant to be created."""

    client = dialogflow.ParticipantsClient()
    conversation_path = dialogflow.ConversationsClient.conversation_path(
        project_id, conversation_id
    )
    if role in ROLES:
        response = client.create_participant(
            parent=conversation_path, participant={"role": role}, timeout=600
        )
        print("Participant Created.")
        print(f"Role: {response.role}")
        print(f"Name: {response.name}")

        return response

Crea un partecipante agente umano

Aggiungi un partecipante agente umano alla conversazione:

REST

Per creare un partecipante agente umano, chiama il metodo create sulla risorsa Participant.

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.

def create_participant(project_id: str, conversation_id: str, role: str):
    from google.cloud import dialogflow_v2beta1 as dialogflow

    """Creates a participant in a given conversation.

    Args:
        project_id: The GCP project linked with the conversation profile.
        conversation_id: Id of the conversation.
        participant: participant to be created."""

    client = dialogflow.ParticipantsClient()
    conversation_path = dialogflow.ConversationsClient.conversation_path(
        project_id, conversation_id
    )
    if role in ROLES:
        response = client.create_participant(
            parent=conversation_path, participant={"role": role}, timeout=600
        )
        print("Participant Created.")
        print(f"Role: {response.role}")
        print(f"Name: {response.name}")

        return response

Aggiungere un messaggio dell'utente finale e ricevere suggerimenti

Per aggiungere e analizzare un messaggio dell'utente finale per la conversazione, chiama il metodo analyzeContent nella risorsa Participant. La risposta include un campo dialogflowAssistAnswers contenente i seguenti dati:

  • fulfillmentText: contiene una risposta suggerita. Puoi configurare il tuo sistema in modo che presenti questo suggerimento all'agente umano.
  • answer record: un ID univoco per il suggerimento.

Seleziona il suggerimento.

Quando un operatore umano riceve un suggerimento, può accettarlo così com'è o modificarlo prima di inoltrarlo all'utente finale. Per selezionare un suggerimento, chiama analyzeContent di nuovo utilizzando il partecipante agente umano. Imposta il campo suggestionInput in base alle impostazioni selezionate e fornisci il answer record che hai ricevuto in precedenza. Il campo text override deve contenere il testo effettivo inviato all'utente finale. Di seguito è riportato un esempio di configurazione del campo suggestionInput:

{
  "answerRecord": "answer-record",
  "textOverride": {
    "text" : "Yes, there will be ponies.",
    "languageCode": "en-US"
  }
}

Completare la conversazione

Al termine della conversazione, utilizza l'API per completarla.

REST

Per completare la conversazione, chiama il metodo complete sulla risorsa conversations.

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.

def complete_conversation(project_id, conversation_id):
    """Completes the specified conversation. Finished conversations are purged from the database after 30 days.

    Args:
        project_id: The GCP project linked with the conversation.
        conversation_id: Id of the conversation."""

    client = dialogflow.ConversationsClient()
    conversation_path = client.conversation_path(project_id, conversation_id)
    conversation = client.complete_conversation(name=conversation_path)
    print("Completed Conversation.")
    print("Life Cycle State: {}".format(conversation.lifecycle_state))
    print("Conversation Profile Name: {}".format(conversation.conversation_profile))
    print("Name: {}".format(conversation.name))
    return conversation