Suggerimento articoli

La funzionalità di suggerimento di articoli di Agent Assist segue una conversazione tra un agente umano e un utente finale e fornisce all'agente umano suggerimenti di documenti pertinenti. Un agente umano può esaminare questi suggerimenti man mano che la conversazione procede e decidere quali documenti leggere o condividere con l'utente finale. Puoi utilizzare il suggerimento di articoli per aiutare un agente umano a comprendere e risolvere i problemi degli utenti finali durante una conversazione.

Agent Assist fornisce modelli di base per i suggerimenti di articoli che puoi utilizzare per suggerire articoli ai tuoi agenti. Se vuoi, puoi addestrare un modello personalizzato utilizzando i tuoi dati sulle conversazioni caricati per migliorare il rendimento. Se vuoi addestrare un modello di suggerimenti personalizzato da utilizzare con il Suggerimento di articoli, contatta il tuo rappresentante di Google.

Questo documento illustra la procedura di utilizzo dell'API per implementare il Suggerimento di articoli e ricevere suggerimenti da questa funzionalità durante l'esecuzione. Puoi scegliere di utilizzare la console Agent Assist per testare i risultati dei suggerimenti di articoli durante la fase di progettazione, ma devi chiamare l'API direttamente in fase di esecuzione. Consulta la sezione relativa ai tutorial per informazioni dettagliate sul test delle prestazioni delle funzionalità utilizzando la console di Agent Assist.

Prima di iniziare

Prima di iniziare questa guida, completa quanto segue:

  1. Abilita l'API Dialogflow per il tuo progettoGoogle Cloud .

Configurare un profilo di conversazione

Per ricevere suggerimenti da Agent Assist, devi creare una knowledge base contenente i documenti caricati e configurare un profilo di conversazione. Puoi anche eseguire queste azioni utilizzando la console Agent Assist se preferisci non chiamare direttamente l'API.

Creazione di una knowledge base

Prima di poter iniziare a caricare i documenti, devi creare una knowledge base in cui inserirli. Per creare una knowledge base, chiama il metodo create sul tipo KnowledgeBase.

REST

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto Google Cloud
  • KNOWLEDGE_BASE_DISPLAY_NAME: il nome della knowledge base desiderato

Metodo HTTP e URL:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/knowledgeBases

Corpo JSON della richiesta:

{
  "displayName": "KNOWLEDGE_BASE_DISPLAY_NAME"
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "name": "projects/PROJECT_ID/knowledgeBases/NDA4MTM4NzE2MjMwNDUxMjAwMA",
  "displayName": "KNOWLEDGE_BASE_DISPLAY_NAME"
}

Il segmento di percorso dopo knowledgeBases contiene il nuovo ID knowledge base.

Python

Per autenticarti ad Agent Assist, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

def create_knowledge_base(project_id, display_name):
    """Creates a Knowledge base.

    Args:
        project_id: The GCP project linked with the agent.
        display_name: The display name of the Knowledge base."""
    from google.cloud import dialogflow_v2beta1 as dialogflow

    client = dialogflow.KnowledgeBasesClient()
    project_path = client.common_project_path(project_id)

    knowledge_base = dialogflow.KnowledgeBase(display_name=display_name)

    response = client.create_knowledge_base(
        parent=project_path, knowledge_base=knowledge_base
    )

    print("Knowledge Base created:\n")
    print("Display Name: {}\n".format(response.display_name))
    print("Name: {}\n".format(response.name))

Creare un documento della conoscenza

Ora puoi aggiungere documenti alla knowledge base. Per creare un documento nella knowledge base, chiama il metodo create sul tipo Document. Imposta KnowledgeType suARTICLE_SUGGESTION. Questo esempio utilizza un file HTML con informazioni sull'ordine di reso caricato in un bucket Cloud Storage condiviso pubblicamente. Quando configuri il Suggerimento di articoli nel tuo sistema, i documenti devono essere in uno dei seguenti formati. Per ulteriori informazioni sulle best practice per i documenti, consulta la documentazione relativa ai documenti di conoscenza.

Formati dei documenti pertinenti:

  • Un file archiviato in un bucket Cloud Storage. Puoi specificare il percorso quando chiamai l'API.
  • I contenuti di testo di un documento, che puoi inviare in una richiesta API.
  • Un URL pubblico.

REST

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto Google Cloud
  • KNOWLEDGE_BASE_ID: l'ID della knowledge base restituito dalla richiesta precedente
  • DOCUMENT_DISPLAY_NAME: nome del documento della conoscenza desiderato

Metodo HTTP e URL:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/knowledgeBases/KNOWLEDGE_BASE_ID/documents

Corpo JSON della richiesta:

{
  "displayName": "DOCUMENT_DISPLAY_NAME",
  "mimeType": "text/html",
  "knowledgeTypes": "ARTICLE_SUGGESTION",
  "contentUri": "gs://agent-assist-public-examples/public_article_suggestion_example_returns.html"
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "name": "projects/PROJECT_ID/operations/ks-add_document-MzA5NTY2MTc5Mzg2Mzc5NDY4OA"
}

La risposta è un'operazione a lunga esecuzione, che puoi eseguire un polling per verificare il completamento.

Python

Per autenticarti ad Agent Assist, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

def create_document(
    project_id, knowledge_base_id, display_name, mime_type, knowledge_type, content_uri
):
    """Creates a Document.

    Args:
        project_id: The GCP project linked with the agent.
        knowledge_base_id: Id of the Knowledge base.
        display_name: The display name of the Document.
        mime_type: The mime_type of the Document. e.g. text/csv, text/html,
            text/plain, text/pdf etc.
        knowledge_type: The Knowledge type of the Document. e.g. FAQ,
            EXTRACTIVE_QA.
        content_uri: Uri of the document, e.g. gs://path/mydoc.csv,
            http://mypage.com/faq.html."""
    from google.cloud import dialogflow_v2beta1 as dialogflow

    client = dialogflow.DocumentsClient()
    knowledge_base_path = dialogflow.KnowledgeBasesClient.knowledge_base_path(
        project_id, knowledge_base_id
    )

    document = dialogflow.Document(
        display_name=display_name, mime_type=mime_type, content_uri=content_uri
    )

    document.knowledge_types.append(
        getattr(dialogflow.Document.KnowledgeType, knowledge_type)
    )

    response = client.create_document(parent=knowledge_base_path, document=document)
    print("Waiting for results...")
    document = response.result(timeout=120)
    print("Created Document:")
    print(" - Display Name: {}".format(document.display_name))
    print(" - Knowledge ID: {}".format(document.name))
    print(" - MIME Type: {}".format(document.mime_type))
    print(" - Knowledge Types:")
    for knowledge_type in document.knowledge_types:
        print("    - {}".format(KNOWLEDGE_TYPES[knowledge_type]))
    print(" - Source: {}\n".format(document.content_uri))

Creare un profilo di conversazione

Un profilo di conversazione configura un insieme di parametri che controllano i suggerimenti fatti a un agente durante una conversazione. I passaggi che seguono creano un ConversationProfile con un HumanAgentAssistantConfig oggetto. Se preferisci non chiamare direttamente l'API, puoi eseguire queste azioni anche utilizzando la console Agent Assist.

Ti consigliamo di impostare una soglia di confidenza iniziale di 0,44 (0,1 se utilizzi il modello di riferimento precedente). Se necessario, puoi aumentare la soglia oltre l'intervallo consigliato. L'aumento della soglia comporta una maggiore accuratezza e una copertura inferiore (meno suggerimenti); la diminuzione della soglia comporta una minore accuratezza e una maggiore copertura (più suggerimenti).

I suggerimenti in linea sono attivati per impostazione predefinita. Se vuoi, puoi attivare le notifiche Cloud Pub/Sub quando configuri il profilo di conversazione.

REST

Per creare un profilo di conversazione, chiama il metodo create sulla risorsa ConversationProfile.

noSmallTalk: se true, i suggerimenti non verranno attivati dopo i messaggi di conversazione iniziale (ad esempio "ciao", "come va" e così via). Se false, i suggerimenti verranno attivati dopo i messaggi di conversazione spicciola.

onlyEndUser: se true, i suggerimenti verranno attivati solo dopo i messaggi dell'utente finale. Se false, i suggerimenti verranno attivati sia dopo i messaggi dell'utente finale sia dopo quelli degli agenti umani.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto Google Cloud
  • KNOWLEDGE_BASE_ID: il tuo ID knowledge base

Metodo HTTP e URL:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversationProfiles

Corpo JSON della richiesta:

{
  "name": "projects/PROJECT_ID/conversationProfiles/CONVERSATION_PROFILE_ID",
  "displayName": "my-conversation-profile-display-name",
  "humanAgentAssistantConfig": {
    "notificationConfig": {},
    "humanAgentSuggestionConfig": {
      "featureConfigs": [
        {
          "enableInlineSuggestion": true,
          "SuggestionTriggerSettings": {
            "noSmallTalk": true,
            "onlyEndUser": true,
          },
          "suggestionFeature": {
            "type": "ARTICLE_SUGGESTION"
          },
          "queryConfig": {
            "knowledgeBaseQuerySource": {
              "knowledgeBases": [
                "projects/PROJECT_ID/knowledgeBases/KNOWLEDGE_BASE_ID"
              ]
            }
          }
        }
      ]
    }
  },
  "sttConfig": {},
  "languageCode": "en-US"
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "name": "projects/PROJECT_ID/conversationProfiles/CONVERSATION_PROFILE_ID",
  "displayName": "my-conversation-profile-display-name",
  "humanAgentAssistantConfig": {
    ...
  }
}

Il segmento di percorso dopo conversationProfiles contiene il nuovo ID profilo della conversazione.

Python

Per autenticarti ad Agent Assist, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

def create_conversation_profile_article_faq(
    project_id,
    display_name,
    article_suggestion_knowledge_base_id=None,
    faq_knowledge_base_id=None,
):
    """Creates a conversation profile with given values

    Args: project_id:  The GCP project linked with the conversation profile.
        display_name: The display name for the conversation profile to be
        created.
        article_suggestion_knowledge_base_id: knowledge base id for article
        suggestion.
        faq_knowledge_base_id: knowledge base id for faq."""

    client = dialogflow.ConversationProfilesClient()
    project_path = client.common_project_path(project_id)

    conversation_profile = {
        "display_name": display_name,
        "human_agent_assistant_config": {
            "human_agent_suggestion_config": {"feature_configs": []}
        },
        "language_code": "en-US",
    }

    if article_suggestion_knowledge_base_id is not None:
        as_kb_path = dialogflow.KnowledgeBasesClient.knowledge_base_path(
            project_id, article_suggestion_knowledge_base_id
        )
        feature_config = {
            "suggestion_feature": {"type_": "ARTICLE_SUGGESTION"},
            "suggestion_trigger_settings": {
                "no_small_talk": True,
                "only_end_user": True,
            },
            "query_config": {
                "knowledge_base_query_source": {"knowledge_bases": [as_kb_path]},
                "max_results": 3,
            },
        }
        conversation_profile["human_agent_assistant_config"][
            "human_agent_suggestion_config"
        ]["feature_configs"].append(feature_config)
    if faq_knowledge_base_id is not None:
        faq_kb_path = dialogflow.KnowledgeBasesClient.knowledge_base_path(
            project_id, faq_knowledge_base_id
        )
        feature_config = {
            "suggestion_feature": {"type_": "FAQ"},
            "suggestion_trigger_settings": {
                "no_small_talk": True,
                "only_end_user": True,
            },
            "query_config": {
                "knowledge_base_query_source": {"knowledge_bases": [faq_kb_path]},
                "max_results": 3,
            },
        }
        conversation_profile["human_agent_assistant_config"][
            "human_agent_suggestion_config"
        ]["feature_configs"].append(feature_config)

    response = client.create_conversation_profile(
        parent=project_path, conversation_profile=conversation_profile
    )

    print("Conversation Profile created:")
    print("Display Name: {}".format(response.display_name))
    # Put Name is the last to make it easier to retrieve.
    print("Name: {}".format(response.name))
    return response

(Facoltativo) Imposta le impostazioni di sicurezza

Hai la possibilità di impostare parametri di sicurezza per risolvere problemi come l'oscuramento dei dati e la loro conservazione. Per farlo, devi creare una risorsa SecuritySettings e poi collegarla a un profilo di conversazione utilizzando il camposecuritySettings.

Le impostazioni di sicurezza aggiunte a un profilo di conversazione influiscono sul comportamento solo dei messaggi Agent Assist. Il comportamento della cronologia delle interazioni di Dialogflow è controllato dalle impostazioni di sicurezza di Dialogflow, che puoi impostare utilizzando la console Dialogflow CX.

Gestire le conversazioni in fase di esecuzione

Creare una conversazione

Quando inizia un dialogo tra un utente finale e un agente umano o virtuale, viene creata 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 la 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 seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto Cloud
  • LOCATION_ID: il tuo ID posizione
  • CONVERSATION_PROFILE_ID: l'ID che hai ricevuto durante la creazione del profilo di 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 di percorso dopo conversations contiene il nuovo ID conversazione.

Python

Per autenticarti ad Agent Assist, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare 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 gli utenti finali sia gli 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 seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto Cloud
  • LOCATION_ID: il tuo ID posizione
  • CONVERSATION_ID: il tuo ID 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 utente finale partecipante.

Python

Per autenticarti ad Agent Assist, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare 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 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 seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto Cloud
  • LOCATION_ID: il tuo ID posizione
  • CONVERSATION_ID: il tuo ID 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 agente umano.

Python

Per autenticarti ad Agent Assist, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare 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 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. Nel seguente esempio, l'agente umano avvia la conversazione chiedendo "Come posso aiutarti?". Non sono ancora stati restituiti suggerimenti nella risposta.

REST

Per aggiungere e analizzare un messaggio di un agente umano nella conversazione, chiama il metodo analyzeContent nella risorsa Participant.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto Google Cloud
  • CONVERSATION_ID: il tuo ID 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": [
          {
            "suggestArticlesResponse": {
              "latestMessage": "projects/PROJECT_ID/conversations/CONVERSATION_ID/messages/MESSAGE_ID",
              "contextSize": 1
            }
          }
        ]
      }
    }
  ]
}

Python

Per autenticarti ad Agent Assist, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

def analyze_content_text(
    project_id: str, conversation_id: str, participant_id: str, text: str
):
    from google.cloud import dialogflow_v2beta1 as dialogflow

    """Analyze text message content from a participant.

    Args:
        project_id: The GCP project linked with the conversation profile.
        conversation_id: Id of the conversation.
        participant_id: Id of the participant.
        text: the text message that participant typed."""

    client = dialogflow.ParticipantsClient()
    participant_path = client.participant_path(
        project_id, conversation_id, participant_id
    )
    text_input = {"text": text, "language_code": "en-US"}
    response = client.analyze_content(
        participant=participant_path, text_input=text_input
    )
    print("AnalyzeContent Response:")
    print(f"Reply Text: {response.reply_text}")

    for suggestion_result in response.human_agent_suggestion_results:
        if suggestion_result.error is not None:
            print(f"Error: {suggestion_result.error.message}")
        if suggestion_result.suggest_articles_response:
            for answer in suggestion_result.suggest_articles_response.article_answers:
                print(f"Article Suggestion Answer: {answer.title}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_faq_answers_response:
            for answer in suggestion_result.suggest_faq_answers_response.faq_answers:
                print(f"Faq Answer: {answer.answer}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_smart_replies_response:
            for (
                answer
            ) in suggestion_result.suggest_smart_replies_response.smart_reply_answers:
                print(f"Smart Reply: {answer.reply}")
                print(f"Answer Record: {answer.answer_record}")

    for suggestion_result in response.end_user_suggestion_results:
        if suggestion_result.error:
            print(f"Error: {suggestion_result.error.message}")
        if suggestion_result.suggest_articles_response:
            for answer in suggestion_result.suggest_articles_response.article_answers:
                print(f"Article Suggestion Answer: {answer.title}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_faq_answers_response:
            for answer in suggestion_result.suggest_faq_answers_response.faq_answers:
                print(f"Faq Answer: {answer.answer}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_smart_replies_response:
            for (
                answer
            ) in suggestion_result.suggest_smart_replies_response.smart_reply_answers:
                print(f"Smart Reply: {answer.reply}")
                print(f"Answer Record: {answer.answer_record}")

    return response

Aggiungere un messaggio dall'utente finale e ricevere suggerimenti

In risposta all'agente umano, l'utente finale dice: "Voglio restituire il mio ordine". Questa volta, la risposta dell'API contiene un documento suggerito con il relativo punteggio di affidabilità. All'inizio di questo tutorial abbiamo aggiunto un documento della conoscenza alla knowledge base, che è stato restituito. I punteggi di affidabilità vanno da 0 a 1; i valori più elevati indicano una maggiore probabilità che il documento sia pertinente alla conversazione. Viene restituito anche uno snippet contenente i primi 100 caratteri del documento. Lo snippet può aiutare un agente umano a determinare rapidamente se il documento è utile. Ti consigliamo di fornire queste informazioni all'agente umano, che potrebbe scegliere di condividere il documento consigliato con l'utente finale.

REST

Per aggiungere e analizzare un messaggio dell'utente finale per la conversazione, chiama il metodo analyzeContent nella risorsa Participant.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto Google Cloud
  • CONVERSATION_ID: il tuo ID conversazione
  • PARTICIPANT_ID: il tuo ID 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 return my order.",
    "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 return my order.",
    "languageCode": "en-US",
    "participant": "PARTICIPANT_ID",
    "participantRole": "END_USER",
    "createTime": "2020-02-13T00:07:35.925Z"
  },
  "humanAgentSuggestionResults": [
    {
      "suggestArticlesResponse": {
        "articleAnswers": [
          {
            "title": "Return an order",
            "uri": "gs://agent-assist-public-examples/public_article_suggestion_example_returns.html",
            "snippets": [
              "\u003cb\u003eReturn\u003c/b\u003e an \u003cb\u003eorder\u003c/b\u003e. Follow the steps below for Made-up Store \u003cb\u003ereturns\u003c/b\u003e. At this time, \nwe don't offer exchanges. In most cases, you can drop off \u003cb\u003ereturns\u003c/b\u003e at any Made-up\n ..."
            ],
            "metadata": {
              "title": "Return an order",
              "snippet": "\n  \n\n\u003ch1\u003eReturn an order\u003c/h1\u003e \nFollow the steps below for Made-up Store returns. At this time, we do...",
              "document_display_name": "my-kdoc"
            },
            "answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID"
          }
        ],
        "latestMessage": "projects/PROJECT_ID/conversations/CONVERSATION_ID/messages/MESSAGE_ID",
        "contextSize": 2
      }
    }
  ]
}

Python

Per autenticarti ad Agent Assist, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

def analyze_content_text(
    project_id: str, conversation_id: str, participant_id: str, text: str
):
    from google.cloud import dialogflow_v2beta1 as dialogflow

    """Analyze text message content from a participant.

    Args:
        project_id: The GCP project linked with the conversation profile.
        conversation_id: Id of the conversation.
        participant_id: Id of the participant.
        text: the text message that participant typed."""

    client = dialogflow.ParticipantsClient()
    participant_path = client.participant_path(
        project_id, conversation_id, participant_id
    )
    text_input = {"text": text, "language_code": "en-US"}
    response = client.analyze_content(
        participant=participant_path, text_input=text_input
    )
    print("AnalyzeContent Response:")
    print(f"Reply Text: {response.reply_text}")

    for suggestion_result in response.human_agent_suggestion_results:
        if suggestion_result.error is not None:
            print(f"Error: {suggestion_result.error.message}")
        if suggestion_result.suggest_articles_response:
            for answer in suggestion_result.suggest_articles_response.article_answers:
                print(f"Article Suggestion Answer: {answer.title}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_faq_answers_response:
            for answer in suggestion_result.suggest_faq_answers_response.faq_answers:
                print(f"Faq Answer: {answer.answer}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_smart_replies_response:
            for (
                answer
            ) in suggestion_result.suggest_smart_replies_response.smart_reply_answers:
                print(f"Smart Reply: {answer.reply}")
                print(f"Answer Record: {answer.answer_record}")

    for suggestion_result in response.end_user_suggestion_results:
        if suggestion_result.error:
            print(f"Error: {suggestion_result.error.message}")
        if suggestion_result.suggest_articles_response:
            for answer in suggestion_result.suggest_articles_response.article_answers:
                print(f"Article Suggestion Answer: {answer.title}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_faq_answers_response:
            for answer in suggestion_result.suggest_faq_answers_response.faq_answers:
                print(f"Faq Answer: {answer.answer}")
                print(f"Answer Record: {answer.answer_record}")
        if suggestion_result.suggest_smart_replies_response:
            for (
                answer
            ) in suggestion_result.suggest_smart_replies_response.smart_reply_answers:
                print(f"Smart Reply: {answer.reply}")
                print(f"Answer Record: {answer.answer_record}")

    return response

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 seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto Google Cloud
  • CONVERSATION_ID: l'ID che hai 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 autenticarti ad Agent Assist, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare 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

Opzioni di richiesta API

Le sezioni precedenti mostrano come creare un semplice ConversationProfile per ricevere suggerimenti. Le sezioni seguenti descrivono alcune funzionalità facoltative che puoi implementare durante una conversazione.

Notifiche di suggerimenti Pub/Sub

Nelle sezioni precedenti, il ConversationProfile è stato creato solo con un assistente di agente umano. Durante la conversazione, dovevi chiamare l'API per ricevere suggerimenti dopo l'aggiunta di ogni messaggio alla conversazione. Se preferisci ricevere eventi di notifica per i suggerimenti, puoi impostare il campo notificationConfig quando crei il profilo della conversazione. Questa opzione utilizza Cloud Pub/Sub per inviare notifiche di suggerimenti alla tua applicazione man mano che la conversazione procede e sono disponibili nuovi suggerimenti.