Artikelvorschlag

Das Agent Assist-Feature "Artikelvorschlag" verfolgt eine Unterhaltung zwischen einem menschlichen Kundenservicemitarbeiter und einem Endnutzer und stellt dem menschlichen Kundenservicemitarbeiter relevante Dokumentvorschläge bereit. Ein menschlicher Kundenservicemitarbeiter kann diese Vorschläge prüfen, während die Unterhaltung fortgesetzt wird, und entscheiden, welche Dokumente gelesen oder für den Endnutzer freigegeben werden sollen. Mit dem Tool "Artikelvorschlag" können Sie einem menschlichen Kundenservicemitarbeiter helfen, Probleme von Endnutzern zu verstehen und zu lösen, während sich der menschliche Kundenservicemitarbeiter und der Endnutzer unterhalten.

Agent Assist bietet Artikelvorschlagsmodelle, mit denen Sie Ihren Kundenservicemitarbeitern Artikel vorschlagen können. Optional können Sie ein benutzerdefiniertes Modell mit Ihren eigenen hochgeladenen Unterhaltungsdaten trainieren, um die Leistung zu verbessern. Wenn Sie ein benutzerdefiniertes Vorschlagsmodell für die Nutzung mit „Artikelvorschlag“ trainieren möchten, wenden Sie sich an Ihren Google-Ansprechpartner.

In diesem Dokument wird beschrieben, wie Sie mit der API "Artikelvorschlag" implementieren und während der Laufzeit Vorschläge von diesem Feature erhalten. Sie haben die Möglichkeit, mit der Agent Assist Console die Ergebnisse von „Artikelvorschlag“ während der Entwicklung zu testen. Sie müssen die API jedoch während der Laufzeit direkt aufrufen. Informationen zum Testen der Feature-Leistung über die Agent Assist Console finden Sie im Abschnitt „Anleitungen“.

Hinweise

Führen Sie die folgenden Schritte aus, bevor Sie mit dieser Anleitung beginnen:

  1. Aktivieren Sie die Dialogflow API für IhrGoogle Cloud -Projekt.

Unterhaltungsprofil konfigurieren

Damit Sie Vorschläge von Agent Assist erhalten, müssen Sie eine Wissensdatenbank mit Ihren hochgeladenen Dokumenten erstellen und ein Unterhaltungsprofil konfigurieren. Sie können diese Aktionen auch über die Agent Assist Console ausführen, wenn Sie die API nicht direkt aufrufen möchten.

Knowledge Base erstellen

Bevor Sie Dokumente hochladen können, müssen Sie zuerst eine Wissensdatenbank erstellen, in der sie abgelegt werden. Rufen Sie zum Erstellen einer Wissensdatenbank die Methode create für den Typ KnowledgeBase auf.

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: ID Ihres GCP-Projekts
  • KNOWLEDGE_BASE_DISPLAY_NAME: Name der gewünschten Wissensdatenbank

HTTP-Methode und URL:

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

JSON-Text anfordern:

{
  "displayName": "KNOWLEDGE_BASE_DISPLAY_NAME"
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

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

Das Pfadsegment nach knowledgeBases enthält Ihre neue Wissensdatenbank-ID.

Python

Richten Sie zur Authentifizierung bei Agent Assist Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

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))

Wissensdokument erstellen

Sie können der Wissensdatenbank jetzt Dokumente hinzufügen. Wenn Sie ein Dokument in der Wissensdatenbank erstellen möchten, rufen Sie die Methode create für den Typ Document auf. Legen Sie KnowledgeType auf ARTICLE_SUGGESTION fest. In diesem Beispiel wird eine HTML-Datei mit Informationen zur Rückgabe verwendet, die in einen öffentlich freigegebenen Cloud Storage-Bucket hochgeladen wurde. Wenn Sie Artikelvorschläge in Ihrem eigenen System einrichten, müssen Dokumente in einem der folgenden Formate vorliegen. Weitere Informationen zu Best Practices für Dokumente finden Sie in der Dokumentation zu Wissensdokumenten.

Formate für Wissensdokumente:

  • Eine Datei, die in einem Cloud Storage-Bucket gespeichert ist. Du kannst den Pfad beim Aufrufen der API angeben.
  • Der Textinhalt eines Dokuments zum Senden in einer API-Anfrage.
  • Eine öffentliche URL.

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: ID Ihres GCP-Projekts
  • KNOWLEDGE_BASE_ID: ID Ihrer Wissensdatenbank (bei der vorherigen Anfrage zurückgegeben)
  • DOCUMENT_DISPLAY_NAME: gewünschter Name des Wissensdokuments

HTTP-Methode und URL:

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

JSON-Text anfordern:

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

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

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

Die Antwort ist ein Vorgang mit langer Ausführungszeit, bei dem Sie prüfen können, ob er abgeschlossen wurde.

Python

Richten Sie zur Authentifizierung bei Agent Assist Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

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))

Unterhaltungsprofil erstellen

Mit einem Unterhaltungsprofil werden eine Reihe von Parametern konfiguriert, die die Vorschläge steuern, die einem Kundenservicemitarbeiter während einer Unterhaltung gegeben wurden. In den folgenden Schritten wird ein ConversationProfile mit einem HumanAgentAssistantConfig-Objekt erstellt. Sie können diese Aktionen auch über die Agent Assist Console ausführen, wenn Sie die API nicht direkt aufrufen möchten.

Wir empfehlen, einen anfänglichen Konfidenzgrenzwert von 0,44 festzulegen (0,1, wenn Sie das bisherige Baseline-Modell verwenden). Sie können den Grenzwert bei Bedarf über den empfohlenen Bereich hinaus erhöhen. Wenn Sie den Schwellenwert erhöhen, steigt die Genauigkeit und die Abdeckung sinkt (weniger Vorschläge). Wenn Sie den Schwellenwert senken, sinkt die Genauigkeit und die Abdeckung steigt (mehr Vorschläge).

Inline-Vorschläge sind standardmäßig aktiviert. Optional können Sie Cloud Pub/Sub-Benachrichtigungen aktivieren, wenn Sie das Unterhaltungsprofil konfigurieren.

REST

Zum Erstellen eines Unterhaltungsprofils rufen Sie die Methode create für die Ressource ConversationProfile auf.

noSmallTalk: Wenn true, werden nach Small-Talk-Nachrichten wie "Hallo", "wie geht es dir" usw. keine Vorschläge ausgelöst. Bei false werden Vorschläge nach Small-Talk-Nachrichten ausgelöst.

onlyEndUser: Bei true werden Vorschläge nur nach Nachrichten von Endnutzern ausgelöst. Bei false werden Vorschläge sowohl nach Nachrichten von Endnutzern als auch von Kundenservicemitarbeitern ausgelöst.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: ID Ihres GCP-Projekts
  • KNOWLEDGE_BASE_ID: Ihre Wissensdatenbank-ID

HTTP-Methode und URL:

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

JSON-Text anfordern:

{
  "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"
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

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

Das Pfadsegment nach conversationProfiles enthält Ihre neue Unterhaltungsprofil-ID.

Python

Richten Sie zur Authentifizierung bei Agent Assist Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

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

Optional: Sicherheitseinstellungen festlegen

Sie haben die Möglichkeit, Sicherheitsparameter festzulegen, um Probleme wie das Entfernen von Daten und die Datenaufbewahrung zu beheben. Dazu müssen Sie eine SecuritySettings-Ressource erstellen und sie dann über das Feld securitySettings mit einem Unterhaltungsprofil verknüpfen.

Sicherheitseinstellungen, die einem Unterhaltungsprofil hinzugefügt werden, wirken sich nur auf das Verhalten von Agent Assist-Textnachrichten aus. Das Verhalten des Dialogflow-Interaktionsverlaufs wird durch die Sicherheitseinstellungen von Dialogflow gesteuert, die Sie über die Dialogflow CX Console festlegen können.

Unterhaltungen während der Laufzeit verarbeiten

Unterhaltung erstellen

Wenn ein Dialog zwischen einem Endnutzer und einem menschlichen oder virtuellen Kundenservicemitarbeiter beginnt, erstellen Sie eine Unterhaltung. Damit Sie Vorschläge sehen können, müssen Sie auch einen Endnutzer und einen menschlichen Kundenservicemitarbeiter erstellen und dieser Unterhaltung hinzufügen. Dieser Prozess wird in den folgenden Abschnitten beschrieben.

Zuerst müssen Sie eine Unterhaltung erstellen:

REST

Zum Erstellen einer Unterhaltung rufen Sie die Methode create für die Ressource Conversation auf.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Cloud-Projekt-ID
  • LOCATION_ID: Ihre Standort-ID
  • CONVERSATION_PROFILE_ID: Die ID, die Sie beim Erstellen des Unterhaltungsprofils erhalten haben.

HTTP-Methode und URL:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/conversations

JSON-Text anfordern:

{
  "conversationProfile": "projects/PROJECT_ID/locations/LOCATION_ID/conversationProfiles/CONVERSATION_PROFILE_ID",
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

{
  "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"
}

Das Pfadsegment nach conversations enthält Ihre neue Unterhaltungs-ID.

Python

Richten Sie zur Authentifizierung bei Agent Assist Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

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

Endnutzer als Teilnehmer erstellen

Sie müssen der Unterhaltung sowohl Endnutzer als auch menschliche Kundenservicemitarbeiter hinzufügen, damit Vorschläge angezeigt werden. Fügen Sie der Unterhaltung zuerst einen Endnutzer als Teilnehmer hinzu:

REST

Rufen Sie zum Erstellen eines Endnutzers als Teilnehmer die Methode create für die Ressource Participant auf.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Cloud-Projekt-ID
  • LOCATION_ID: Ihre Standort-ID
  • CONVERSATION_ID: Die Unterhaltungs-ID

HTTP-Methode und URL:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/participants

JSON-Text anfordern:

{
  "role": "END_USER",
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID",
  "role": "END_USER"
}

Das Pfadsegment nach participants enthält die neue Teilnehmer-ID für den Endnutzer.

Python

Richten Sie zur Authentifizierung bei Agent Assist Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

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

Menschlichen Kundenservicemitarbeiter als Teilnehmer erstellen

Fügen Sie der Unterhaltung einen menschlichen Kundenservicemitarbeiter als Teilnehmer hinzu:

REST

Rufen Sie zum Erstellen eines menschlichen Kundenservicemitarbeiters als Teilnehmer die Methode create für die Ressource Participant auf.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Cloud-Projekt-ID
  • LOCATION_ID: Ihre Standort-ID
  • CONVERSATION_ID: Die Unterhaltungs-ID

HTTP-Methode und URL:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/participants

JSON-Text anfordern:

{
  "role": "HUMAN_AGENT",
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID",
  "role": "HUMAN_AGENT"
}

Das Pfadsegment nach participants enthält die neue Teilnehmer-ID für den menschlichen Kundenservicemitarbeiter.

Python

Richten Sie zur Authentifizierung bei Agent Assist Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

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

Nachricht vom menschlichen Kundenservicemitarbeiter hinzufügen und analysieren

Wenn ein Teilnehmer eine Nachricht in die Unterhaltung eingibt, müssen Sie diese Nachricht zur Verarbeitung an die API senden. Agent Assist erteilt Vorschläge basierend auf der Analyse von Nachrichten von menschlichen Kundenservicemitarbeitern und Endnutzern. Im folgenden Beispiel beginnt der Kundenservicemitarbeiter das Gespräch mit der Frage: „Wie kann ich Ihnen helfen?“ In der Antwort werden noch keine Vorschläge zurückgegeben.

REST

Wenn Sie die Nachricht eines menschlichen Kundenservicemitarbeiters für die Unterhaltung hinzufügen und analysieren möchten, rufen Sie die Methode analyzeContent für die Ressource Participant auf.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: ID Ihres GCP-Projekts
  • CONVERSATION_ID: Die Unterhaltungs-ID
  • PARTICIPANT_ID: Die Teilnehmer-ID für den menschlichen Kundenservicemitarbeiter

HTTP-Methode und URL:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID:analyzeContent

JSON-Text anfordern:

{
  "textInput": {
    "text": "How may I help you?",
    "languageCode": "en-US"
  }
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

      {
        "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

Richten Sie zur Authentifizierung bei Agent Assist Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

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

Nachricht des Endnutzers hinzufügen und Vorschläge erhalten

Der Endnutzer antwortet dem Kundenservicemitarbeiter: „Ich möchte meine Bestellung zurückgeben.“ Dieses Mal enthält die API-Antwort ein vorgeschlagenes Dokument mit dem zugehörigen Konfidenzwert. Zuvor in dieser Anleitung haben wir der Wissensdatenbank ein Wissensdokument hinzugefügt, das zurückgegeben wurde. Konfidenzwerte reichen von 0 bis 1. Je höher der Wert, desto wahrscheinlicher ist es, dass das Dokument für die Unterhaltung relevant ist. Außerdem wird ein Snippet mit den ersten 100 Zeichen des Dokuments zurückgegeben. Anhand des Snippets kann ein Kundenservicemitarbeiter schnell feststellen, ob das Dokument hilfreich ist. Wir empfehlen, diese Informationen an den Kundenservicemitarbeiter weiterzugeben, der das empfohlene Dokument möglicherweise an den Endnutzer weitergibt.

REST

Rufen Sie die Methode analyzeContent für die Resource Participant auf, um eine Endnutzernachricht für die Unterhaltung hinzuzufügen und zu analysieren.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: ID Ihres GCP-Projekts
  • CONVERSATION_ID: Die Unterhaltungs-ID
  • PARTICIPANT_ID: Die Teilnehmer-ID für den Endnutzer

HTTP-Methode und URL:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID:analyzeContent

JSON-Text anfordern:

{
  "textInput": {
    "text": "I want to return my order.",
    "languageCode": "en-US"
  }
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

{
  "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

Richten Sie zur Authentifizierung bei Agent Assist Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

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

Unterhaltung abschließen

Verwenden Sie am Ende der Unterhaltung die API, um die Unterhaltung abzuschließen.

REST

Rufen Sie zum Abschließen der Unterhaltung die Methode complete für die Ressource conversations auf.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: ID Ihres GCP-Projekts
  • CONVERSATION_ID: Die ID, die Sie beim Erstellen der Unterhaltung erhalten haben

HTTP-Methode und URL:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID:complete

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

{
  "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

Richten Sie zur Authentifizierung bei Agent Assist Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

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

Optionen für API-Anfragen

In den obigen Abschnitten wird gezeigt, wie Sie ein einfaches ConversationProfile erstellen, um Vorschläge zu erhalten. In den folgenden Abschnitten werden einige optionale Funktionen beschrieben, die Sie während einer Unterhaltung implementieren können.

Pub/Sub-Benachrichtigungen für Vorschläge

In den vorherigen Abschnitten wurde das ConversationProfile nur mit einem menschlichen Kundenservicemitarbeiter erstellt. Während der Unterhaltung mussten Sie die API aufrufen, um Vorschläge zu erhalten, nachdem die einzelnen Nachrichten zur Unterhaltung hinzugefügt wurden. Wenn Sie lieber Benachrichtigungsereignisse zu Vorschlägen erhalten möchten, können Sie das Feld notificationConfig beim Erstellen des Unterhaltungsprofils festlegen. Diese Option verwendet Cloud Pub/Sub, um Benachrichtigungen mit Vorschlägen an Ihre Anwendung zu senden, wenn die Unterhaltung fortgesetzt wird und neue Vorschläge verfügbar sind.