Generative Wissensunterstützung

Generative Knowledge Assist liefert Antworten auf die Fragen Ihres Kundenservicemitarbeiters, die auf Informationen in von Ihnen bereitgestellten Dokumenten basieren. Sie können Ihren Domainnamen angeben oder Dokumente hochladen, die ein Datenspeicher-Agent indexieren soll. Generative Knowledge Assist fasst diese Informationen mit dem laufenden Gespräch und den verfügbaren Kundenmetadaten zusammen, um Ihrem Kundenservicemitarbeiter eine relevantere und zeitnahere Antwort zu geben.

Die proaktive generative Wissensunterstützung folgt dem laufenden Gespräch zwischen Ihrem Kundenservicemitarbeiter und dem Kunden. Es werden proaktiv Suchanfragevorschläge basierend auf dem aktuellen Unterhaltungskontext und der Antwort bereitgestellt.

Datenspeicher-Agent erstellen

  1. Sofern Sie nicht der Projektinhaber sind, benötigen Sie die folgenden Rollen, um einen Datenspeicher-Agent zu erstellen:

    • Dialogflow API-Administrator
    • Discovery Engine-Administrator
  2. Aktivieren Sie die AI Applications API in der Vertex AI-Konsole.

  3. Folgen Sie der Anleitung unter Datenspeicher-Agents, um den Agent zu erstellen.

Fragen von Kundenservicemitarbeitern beantworten

Der Datenspeicher-Agent kann die Fragen Ihrer Kundenservicemitarbeiter anhand der von Ihnen bereitgestellten Dokumente beantworten.

Schritt 1: Unterhaltungsprofil erstellen

Erstellen Sie ein Unterhaltungsprofil mit der Agent Assist Console oder der API.

Über die Console erstellen

  1. Sie müssen den Vorschlagstyp „Generative Knowledge Assist“ aktivieren und mit dem Data Store-Agent aus dem vorherigen Schritt verknüpfen.
  2. Optional: Mit dem Kästchen Protokollierung von Agent-Suchanfragen deaktivieren können Sie angeben, ob Google anonymisierte Suchanfragen zur potenziellen Qualitätsverbesserung erheben und speichern soll.
  3. Mit dem Kästchen Enable conversation augmented query (Konversationserweiterte Anfrage aktivieren) können Sie angeben, ob der Konversationskontext zwischen dem menschlichen Kundenservicemitarbeiter und dem Nutzer bei der Generierung der Antwort auf die Suchanfrage berücksichtigt werden soll.

Über API erstellen

In den folgenden Schritten wird veranschaulicht, wie Sie ein ConversationProfile-Objekt mit einem HumanAgentAssistantConfig-Objekt erstellen. Sie können diese Aktionen auch über die Agent Assist-Konsole ausführen.

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

Ersetzen Sie diese Werte in den folgenden Anfragedaten:
  • PROJECT_ID: Ihre Projekt-ID.
  • LOCATION_ID: die ID für Ihren Standort
  • AGENT_ID: Ihre Data Store-Agent-ID aus dem vorherigen Schritt
Hier ist ein JSON-Beispiel:
  {
    "displayName": "my-conversation-profile-display-name",
    "humanAgentAssistantConfig": {
      "humanAgentSuggestionConfig": {
        "featureConfigs": [
          {
            "suggestionFeature": {
              "type": "KNOWLEDGE_SEARCH"
            },
            "queryConfig": {
              "dialogflowQuerySource": {
                "humanAgentSideConfig": {
                  "agent": "projects/PROJECT_ID/locations/LOCATION_ID/agents/AGENT_ID"
                }
              }
            },
            "disableAgentQueryLogging": false,
            "enableConversationAugmentedQuery": false,
          }
        ]
      }
    }
  }
      

Wenn Sie ein Unterhaltungsprofil in der Agent Assist Console erstellen, werden sowohl die generative Wissensunterstützung als auch die proaktive generative Wissensunterstützung automatisch aktiviert. Wenn Sie die proaktive generative Wissensunterstützung deaktivieren möchten, müssen Sie Ihr Unterhaltungsprofil über die API erstellen.

Schritt 2: Data Store-Agent verwenden

Optional können Sie die SearchKnowledge-API verwenden, um die Antworten vom Data Store-Agent zu erhalten. Sie können auch die folgenden Konfigurationen als Teil Ihrer SearchKnowledge-Anfrage verwenden:

  • querySource: Legen Sie dieses Feld fest, um anzugeben, ob ein Kundenservicemitarbeiter die Anfrage eingegeben oder ob sie automatisch durch proaktive generative Wissensunterstützung vorgeschlagen wurde.
  • exactSearch: Legen Sie dieses Feld fest, um anzugeben, ob die genaue Eingabeabfrage ohne Umschreiben der Abfrage durchsucht werden soll.
  • endUserMetadata: Legen Sie dieses Feld fest, um zusätzliche Informationen zum Endnutzer einzuschließen, die die generierte Antwort verbessern. Weitere Informationen finden Sie auf der Seite Data Store-Agent-Leistung personalisieren.
  • searchConfig: Legen Sie dieses Feld fest, um Wissensdokumente zusätzlich zu optimieren und zu filtern. Weitere Informationen finden Sie auf der Seite Konfiguration der Suche nach der Leistung des Data Store-Agents.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID.
  • LOCATION_ID: die ID für Ihren Standort
  • CONVERSATION_PROFILE_ID: Ihre Unterhaltungsprofil-ID aus dem vorherigen Schritt
  • SESSION_ID: Ihre Suchsitzungs-ID
  • Der Suchverlauf derselben Sitzung kann sich auf das Suchergebnis auswirken. Sie können die folgende Unterhaltungs-ID für die Sitzungs-ID verwenden.
  • CONVERSATION_ID: Die Unterhaltung (zwischen Kundenservicemitarbeiter und Endnutzer), in der die Suchanfrage ausgelöst wird
  • MESSAGE_ID: die letzte Unterhaltungsnachricht, wenn die Suchanfrage ausgelöst wird

Hier ist ein Beispiel für eine JSON-Anfrage:

{
  "parent": "projects/PROJECT_ID/locations/LOCATION_ID"
  "query": {
    "text": "What is the return policy?"
  }
  "conversationProfile": "projects/PROJECT_ID/locations/LOCATION_ID/conversationProfiles/CONVERSATION_PROFILE_ID"
  "sessionId": "SESSION_ID
  "conversation": "projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID"
  "latestMessage": "projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/messages/MESSAGE_ID
  "querySource": AGENT_QUERY
  "exactSearch": false
  "searchConfig": {
    "filterSpecs": {
      "filter": "category: ANY(\"persona_B\")"
    }
  }
  "endUserMetadata": {
    "deviceOwned": "Google Pixel 7"
  }
}

Optional können Sie die Ressourcennamen conversation und latest_message angeben, wenn die Suche des Kundenservicemitarbeiters während einer Unterhaltung mit einem Nutzer erfolgt. Diese beiden Felder sind erforderlich, wenn Sie die Option enable_conversation_augmented_query aktivieren und die Antwort auf die Anfrage durch den konversationellen Kontext zwischen Ihrem Agent und dem Nutzer verbessern möchten.

Simulator

Testen Sie Ihren Datenspeicher-Agent im Agent Assist-Simulator.

Im vorherigen Beispiel beantwortet der Datenspeicher-Agent die Nutzeranfrage What is the refund processing time? mit den folgenden Informationen:

  • Antwort, die von generativer KI erstellt wurde: Wenn das Paket mit Ihrer Retoure im Retourencenter des Verkäufers eintrifft, kann die Bearbeitung bis zu 7 Arbeitstage dauern. Den Status Ihrer Erstattung können Sie anhand der Rücksendungs-Trackingnummer auf der Seite „Bestellungen“ einsehen.
  • Titel des relevanten Wissensdokuments: Rückgaben und Erstattungen.

Proaktiv Fragen und Antworten für Ihre Agents vorschlagen

Die proaktive generative Wissensunterstützung folgt einem laufenden Gespräch und bietet proaktiv Vorschläge für Suchanfragen und Antworten.

Schritt 1: Unterhaltungsprofil erstellen

Erstellen Sie ein Unterhaltungsprofil mit der Agent Assist Console oder der API. Wir empfehlen, ein Unterhaltungsprofil über die Agent Assist Console zu erstellen.

Über die Console erstellen

  1. Aktivieren Sie den Vorschlagstyp Generative Knowledge Assist und verknüpfen Sie ihn mit dem Datenspeicher-Agent aus dem vorherigen Schritt. So kann der Datenspeicher-Agent proaktiv Vorschläge für Anfragen und Antworten machen und manuelle Suchanfragen Ihrer menschlichen Kundenservicemitarbeiter beantworten.
  2. Optional: Wenn Sie das Kästchen Alle vorgeschlagenen Anfragen für die Unterhaltung anzeigen aktivieren, werden alle diese Anfragen vom Data Store-Agent angezeigt, auch wenn in Ihren Wissensdokumenten keine Antwort gefunden wird. Damit soll getestet werden, welche Anfragen aus der laufenden Unterhaltung abgerufen werden können.
  3. Optional: Wenn Sie nur Vorschläge für Anfragen erhalten möchten, aktivieren Sie das Kästchen Proaktive Antworten asynchron laden. Sie können die vorgeschlagene Anfrage manuell an die SearchKnowledge API senden und automatisch im Agent Assist Console-Simulator und in den UI-Modulen einreichen.

Über API erstellen

Mit den folgenden Schritten wird ein ConversationProfile mit einem HumanAgentAssistantConfig-Objekt erstellt. Sie können diese Aktionen auch über die Agent Assist-Konsole ausführen.

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

Ersetzen Sie diese Werte in den folgenden Anfragedaten:
  • PROJECT_ID: Ihre Projekt-ID.
  • LOCATION_ID: die ID für Ihren Standort
  • AGENT_ID: Ihre Data Store-Agent-ID aus dem vorherigen Schritt
Hier ist ein JSON-Beispiel:
  {
    "displayName": "my-conversation-profile-display-name",
    "humanAgentAssistantConfig": {
      "humanAgentSuggestionConfig": {
        "featureConfigs": [
          {
            "suggestionFeature": {
              "type": "KNOWLEDGE_ASSIST"
            },
            "queryConfig": {
              "dialogflowQuerySource": {
                "agent": "projects/PROJECT_ID/locations/LOCATION_ID/agents/AGENT_ID"
              }
            },
            "enableQuerySuggestionWhenNoAnswer": false,
          }
        ]
      }
    }
  }
      

Schritt 2: Unterhaltungen während der Laufzeit verarbeiten

Proactive Generative Knowledge Assist verarbeitet Unterhaltungen zur Laufzeit, um basierend auf dem aktuellen Unterhaltungskontext und der Antwort proaktiv Vorschläge für Suchanfragen zu machen.

Unterhaltung erstellen

Zuerst müssen Sie eine Unterhaltung erstellen:

REST

Rufen Sie zum Erstellen einer Unterhaltung 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

Weitere Informationen finden Sie in der Referenzdokumentation zur AI Applications Python API.

Richten Sie zur Authentifizierung bei AI Applications 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

Nutzer als Teilnehmer erstellen

Fügen Sie der Unterhaltung Teilnehmer hinzu, die Nutzer und Kundenservicemitarbeiter sind, damit Vorschläge angezeigt werden. Fügen Sie der Unterhaltung zuerst einen Nutzer als Teilnehmer hinzu:

REST

Rufen Sie zum Erstellen eines Nutzers 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 Nutzer.

Python

Weitere Informationen finden Sie in der Referenzdokumentation zur AI Applications Python API.

Richten Sie zur Authentifizierung bei AI Applications 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

Agent als Teilnehmer erstellen

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

REST

Rufen Sie zum Erstellen eines Agent-Teilnehmers 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

Weitere Informationen finden Sie in der Referenzdokumentation zur AI Applications Python API.

Richten Sie zur Authentifizierung bei AI Applications 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 Agent hinzufügen und analysieren

Wenn ein Teilnehmer eine Nachricht in die Unterhaltung eingibt, müssen Sie diese Nachricht zur Verarbeitung an die API senden. Der Data Store-Agent erteilt Vorschläge basierend auf der Analyse von Nachrichten von menschlichen Kundenservicemitarbeitern und Nutzern. 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: Ihre Projekt-ID.
  • 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"
  }
}

Python

Weitere Informationen finden Sie in der Referenzdokumentation zur AI Applications Python API.

Richten Sie zur Authentifizierung bei AI Applications 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 Nutzers für Vorschläge hinzufügen

Als Reaktion auf den Kundenservicemitarbeiter sagt der Nutzer: „Wann erhalte ich die Erstattung für meine Rückgabe?“ Dieses Mal enthält die API-Antwort eine vorgeschlagene Anfrage und die Antwort der generativen KI basierend auf den Wissensdokumenten.

REST

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

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID.
  • 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": "When can I get my return refund?",
    "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": "When can I get my return refund?",
    "languageCode": "en-US",
    "participant": "PARTICIPANT_ID",
    "participantRole": "END_USER",
    "createTime": "2020-02-13T00:07:35.925Z"
  },
  "humanAgentSuggestionResults": [
    {
      "suggestKnowledgeAssistResponse": {
        "knowledgeAssistAnswer": {
          "suggestedQuery": {
            "queryText": "Refund processing time"
          },
          "suggestedQueryAnswer": {
            "answerText": "After your return is processed, you receive your refund in 7 days. The refund amount should be for the full value of the items returned, but doesn't include shipping & service fees.",
            "generativeSource": {
              "snippets": [
                {
                  "title": "Returns & refunds - Help",
                  "uri": "https://example.com/",
                  "text": "When the package with your return arrives at the seller's return center, it may take up to 7 additional business days to process. Check the status of your refund with the return tracking number found on your orders page."
                }
              ]
            },
          },
          "answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID"
        },
      }
    }
  ]
}

Python

Weitere Informationen finden Sie in der Referenzdokumentation zur AI Applications Python API.

Richten Sie zur Authentifizierung bei AI Applications 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

Weitere Informationen finden Sie in der Referenzdokumentation zur AI Applications Python API.

Richten Sie zur Authentifizierung bei AI Applications 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

Simulator

Sie können Ihren Datenspeicher-Agent im Agent Assist-Simulator testen.

Im vorherigen Beispiel macht der Data Store-Agent die folgenden Vorschläge:

  • Vorgeschlagene Anfrage: Bearbeitungszeit der Erstattung.
  • KI-generierte Antwort: Nachdem deine Rückgabe bearbeitet wurde, erhältst du deine Erstattung innerhalb von 7 Tagen. Der Erstattungsbetrag muss den vollen Wert der zurückgegebenen Artikel abdecken, jedoch ohne Versand- und Servicegebühren.
  • Titel des relevanten Wissensdokuments: Rückgaben und Erstattungen – Hilfe.

Schritt 3: Pub/Sub-Benachrichtigungen für Vorschläge

Sie können das Feld notificationConfig beim Erstellen eines Unterhaltungsprofils festlegen, um Benachrichtigungen zu Vorschlägen zu erhalten. Diese Option verwendet Pub/Sub, um Benachrichtigungen mit Vorschlägen an Ihre Anwendung zu senden, wenn die Unterhaltung fortgesetzt wird und neue Vorschläge verfügbar sind.

Wenn Sie die AnalyzeContent API einbinden, können Sie die disable_high_latency_features_sync_delivery-Konfiguration in ConversationProfile aktivieren, damit die AnalyzeContent API antwortet, ohne auf die proaktiven generativen Vorschläge für die Wissensunterstützung zu warten, und die Vorschläge über Pub/Sub bereitstellt.

Sie können diese Konfiguration auch über die Agent Assist-Konsole aktivieren.

Über Conversational Insights auf Daten zugreifen

Alternativ werden die von der proaktiven generativen Wissensunterstützung generierten Anfragen und Antworten automatisch in Conversational Insights eingefügt. Folgen Sie dieser Anleitung, um auf diese Daten zuzugreifen.

Feedback geben

Eine Anleitung zum Senden von Feedback finden Sie unter Feedback zu Agent Assist geben.

Fragen des Kundenservicemitarbeiters beantworten

Das Folgende ist ein Beispiel für eine JSON-Anfrage zum Senden von Feedback zu Antworten auf Fragen des Kundenservicemitarbeiters.

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/answerRecords/ANSWER_RECORD_ID",
  "answerFeedback": {
    "displayed": true
    "clicked": true
    "correctnessLevel": "FULLY_CORRECT"
    "agentAssistantDetailFeedback": {
      "knowledgeSearchFeedback": {
        "answerCopied": true
        "clickedUris": [
          "url_1",
          "url_2",
          "url_3",
        ]
      }
    }
  }
}

Fragerunde proaktiv vorschlagen

Unten sehen Sie ein Beispiel für eine JSON-Anfrage zum Senden von Feedback zu proaktiven Vorschlägen.

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/answerRecords/ANSWER_RECORD_ID",
  "answerFeedback": {
    "displayed": true
    "clicked": true
    "correctnessLevel": "FULLY_CORRECT"
    "agentAssistantDetailFeedback": {
      "knowledgeAssistFeedback": {
        "answerCopied": true
        "clickedUris": [
          "url_1",
          "url_2",
          "url_3",
        ]
      }
    }
  }
}

Metadaten

Wenn Sie Metadaten für ein Wissensdokument konfigurieren, geben sowohl die generative Wissensunterstützung als auch die proaktive generative Wissensunterstützung die Metadaten des Dokuments zusammen mit der Antwort zurück.

Sie können beispielsweise Metadaten verwenden, um zu kennzeichnen, ob es sich bei dem Wissensdokument um einen internen privaten Artikel oder einen externen öffentlichen Artikel handelt. Sowohl im Agent Assist-Simulator als auch in den UI-Modulen wird für bestimmte Schlüssel automatisch ein Dokumentmetadatenwert für die generative Wissensunterstützung und die proaktive generative Wissensunterstützung angezeigt.

  • gka_source_label: Der Wert wird direkt auf der Vorschlagskarte angezeigt.
  • gka_source_tooltip: Wenn der Wert vom Typ struct ist, wird der Wert in einem Kurzinfo-Fenster angezeigt, wenn Sie den Mauszeiger auf den Quelllink bewegen.

Wenn Sie die folgenden Metadaten für ein Wissensdokument haben, wird in der Vorschlagskarte die Quelle als External Doc und in der Kurzinfo doc_visibility: public doc angezeigt.

Metadaten: None { "title": "Public Sample Doc", "gka_source_label": "External Doc", "gka_source_tooltip": { "doc_visibility": "public doc" } }

Sprachunterstützung

Vollständige Liste der unterstützten Sprachen