Zephyrnet-Logo

Erweitern Sie Amazon Connect und Lex mit generativen KI-Funktionen | Amazon Web Services

Datum:

Effektive Self-Service-Optionen werden für Contact Center immer wichtiger, ihre gute Implementierung stellt jedoch besondere Herausforderungen dar.

Amazon Lex bietet Ihnen Amazon Connect Contact Center mit Chatbot-Funktionen wie automatischer Spracherkennung (ASR) und Funktionen zum Verstehen natürlicher Sprache (NLU) über Sprach- und Textkanäle. Der Bot nimmt Sprach- oder Texteingaben in natürlicher Sprache entgegen, erkennt die Absicht hinter der Eingabe und erfüllt die Absicht des Benutzers, indem er die entsprechende Antwort auslöst.

Anrufer können unterschiedliche Akzente, Aussprache und Grammatik haben. In Kombination mit Hintergrundgeräuschen kann es für die Spracherkennung schwierig sein, Aussagen genau zu verstehen. Beispielsweise kann „Ich möchte meine Bestellung verfolgen“ fälschlicherweise als „Ich möchte meinen Halter transportieren“ interpretiert werden. Fehlgeschlagene Absichten wie diese frustrieren Kunden, die sich wiederholen müssen, falsch weitergeleitet werden oder an Live-Agenten weitergeleitet werden, was Unternehmen mehr kostet.

Amazonas Grundgestein demokratisiert den Zugriff auf grundlegende Modelle (FM) für Entwickler, um mühelos generative KI-basierte Anwendungen für das moderne Contact Center zu erstellen und zu skalieren. Von Amazon Bedrock bereitgestellte FMs, wie z Amazonas-Titan und Anthropischer Claude, werden anhand von Datensätzen im Internetmaßstab vorab trainiert, was ihnen starke NLU-Fähigkeiten wie Satzklassifizierung, Frage und Antwort und ein verbessertes semantisches Verständnis trotz Spracherkennungsfehlern verleiht.

In diesem Beitrag untersuchen wir eine Lösung, die von Amazon Bedrock bereitgestellte FMs nutzt, um die Absichtserkennung von Amazon Lex in Verbindung mit Amazon Connect zu verbessern und letztendlich ein verbessertes Self-Service-Erlebnis für Ihre Kunden zu bieten.

Lösungsübersicht

Die Lösung verwendet Amazon Connect, Amazon Lex , AWS Lambda und Amazonas Grundgestein in den folgenden Schritten:

  1. Ein Amazon Connect-Kontaktablauf lässt sich über den in einen Amazon Lex-Bot integrieren GetCustomerInput blockieren.
  2. Wenn der Bot die Absicht des Anrufers nicht erkennt und standardmäßig die Fallback-Absicht verwendet, wird eine Lambda-Funktion ausgelöst.
  3. Die Lambda-Funktion nimmt das Transkript der Kundenäußerung und übergibt es an ein Basismodell in Amazon Bedrock
  4. Mithilfe seiner erweiterten Funktionen für natürliche Sprache ermittelt das Modell die Absicht des Anrufers.
  5. Die Lambda-Funktion weist den Bot dann an, den Anruf zur Erfüllung an die richtige Absicht weiterzuleiten.

Durch die Verwendung von Amazon Bedrock Foundation-Modellen ermöglicht die Lösung dem Amazon Lex-Bot, Absichten trotz Spracherkennungsfehlern zu verstehen. Dies führt zu einer reibungslosen Weiterleitung und Abwicklung und verhindert Eskalationen an Agenten und frustrierende Wiederholungen für Anrufer.

Das folgende Diagramm veranschaulicht die Lösungsarchitektur und den Workflow.

In den folgenden Abschnitten gehen wir näher auf die Schlüsselkomponenten der Lösung ein.

Lambda-Funktionen und das LangChain Framework

Wenn der Amazon Lex-Bot die Lambda-Funktion aufruft, sendet er eine Ereignisnachricht, die Bot-Informationen und die Transkription der Äußerung des Anrufers enthält. Mithilfe dieser Ereignisnachricht ruft die Lambda-Funktion dynamisch die konfigurierten Absichten, die Absichtsbeschreibung und die Absichtsäußerungen des Bots ab und erstellt daraus eine Eingabeaufforderung LangChain, ein Open-Source-Framework für maschinelles Lernen (ML), das es Entwicklern ermöglicht, große Sprachmodelle (LLMs), Datenquellen und Anwendungen zu integrieren.

Mithilfe der Eingabeaufforderung wird dann ein Amazon-Bedrock-Foundation-Modell aufgerufen und eine Antwort mit der vorhergesagten Absicht und dem vorhergesagten Konfidenzniveau empfangen. Wenn das Konfidenzniveau größer als ein festgelegter Schwellenwert ist, beispielsweise 80 %, gibt die Funktion die identifizierte Absicht mit einer Aktion an Amazon Lex zurück delegieren. Wenn das Konfidenzniveau unter dem Schwellenwert liegt, wird der Standardwert wiederhergestellt FallbackIntent und eine Aktion zum Schließen.

Kontextbezogenes Lernen, Prompt Engineering und Modellaufruf

Um diese Aufgabe mithilfe eines Basismodells bewältigen zu können, nutzen wir das Lernen im Kontext. Beim kontextbezogenen Lernen handelt es sich um die Fähigkeit von LLMs, eine Aufgabe anhand der Eingabeaufforderung zu erlernen, ohne vorher für die jeweilige Aufgabe trainiert oder darauf abgestimmt zu sein.

In der Eingabeaufforderung geben wir zunächst die Anweisungen, die detailliert beschreiben, was zu tun ist. Anschließend ruft die Lambda-Funktion die konfigurierten Absichten, Absichtsbeschreibungen und Absichtsäußerungen des Amazon Lex-Bots dynamisch ab und fügt sie in die Eingabeaufforderung ein. Abschließend geben wir ihm Anweisungen, wie er seine Gedanken und sein Endergebnis ausgeben kann.

Die folgende Eingabeaufforderungsvorlage wurde auf den Textgenerierungsmodellen Anthropic Claude Instant v1.2 und Anthropic Claude v2 getestet. Wir verwenden XML-Tags, um die Leistung des Modells besser zu verbessern. Wir geben dem Modell außerdem Raum zum Nachdenken, bevor es die endgültige Absicht identifiziert, um seine Argumentation für die Wahl der richtigen Absicht besser zu verbessern. Der {intent_block} enthält die Absichts-IDs, Absichtsbeschreibungen und Absichtsäußerungen. Der {input} Der Block enthält die transkribierte Äußerung des Anrufers. Am Ende werden drei Backticks („`“) hinzugefügt, damit das Modell einen Codeblock konsistenter ausgibt. A <STOP> Die Sequenz wird hinzugefügt, um eine weitere Generierung zu verhindern.

"""
Human: You are a call center agent. You try to understand the intent given an utterance from the caller.

The available intents are as follows, the intent of the caller is highly likely to be one of these.
<intents>
{intents_block} </intents>
The output format is:
<thinking>
</thinking>

<output>
{{
     "intent_id": intent_id,
     "confidence": confidence
}}
</output><STOP>

For the given utterance, you try to categorize the intent of the caller to be one of the intents in <intents></intents> tags.
If it does not match any intents or the utterance is blank, respond with FALLBCKINT and confidence of 1.0.
Respond with the intent name and confidence between 0.0 and 1.0.
Put your thinking in <thinking></thinking> tags before deciding on the intent.

Utterance: {input}

Assistant: ```"""

Nachdem das Modell aufgerufen wurde, erhalten wir die folgende Antwort vom Fundamentmodell:

<thinking>
The given utterance is asking for checking where their shipment is. It matches the intent order status.
</thinking>

{
    "intent": "ORDERSTATUSID",
    "confidence": 1.0
}
```

Filtern Sie verfügbare Absichten basierend auf Kontaktablauf-Sitzungsattributen

Wenn Sie die Lösung als Teil eines Amazon Connect-Kontaktablaufs verwenden, können Sie die Fähigkeit des LLM, die richtige Absicht zu identifizieren, durch Angabe des Sitzungsattributs weiter verbessern available_intents der „Kundeninput einholen“ Block mit einer durch Kommas getrennten Liste von Absichten, wie im folgenden Screenshot gezeigt. Auf diese Weise bezieht die Lambda-Funktion nur diese angegebenen Absichten als Teil der Eingabeaufforderung an das LLM ein, wodurch die Anzahl der Absichten reduziert wird, die das LLM durchdenken muss. Wenn die available_intents Wenn das Sitzungsattribut nicht angegeben ist, werden standardmäßig alle Absichten im Amazon Lex-Bot verwendet.

Lambda-Funktionsantwort auf Amazon Lex

Nachdem das LLM die Absicht ermittelt hat, antwortet die Lambda-Funktion im bestimmtes Format wird von Amazon Lex benötigt, um die Antwort zu verarbeiten.

Wenn eine passende Absicht über dem Konfidenzschwellenwert gefunden wird, wird ein Dialogaktionstyp zurückgegeben Delegate um Amazon Lex anzuweisen, die ausgewählte Absicht zu verwenden und anschließend die abgeschlossene Absicht an Amazon Connect zurückzugeben. Die Antwortausgabe lautet wie folgt:

{
    "sessionState": {
        "dialogAction": {
        "type": "Delegate"
        },
        "intent": {
        "name": intent,
        "state": "InProgress",
        }
    }
}

Wenn das Konfidenzniveau unter dem Schwellenwert liegt oder eine Absicht nicht erkannt wurde, ein Dialogaktionstyp Menu wird zurückgegeben, um Amazon Lex anzuweisen, die zu schließen FallbackIntent, und geben Sie die Kontrolle an Amazon Connect zurück. Die Antwortausgabe lautet wie folgt:

{
    "sessionState": {
        "dialogAction": {
        "type": "Close"
        },
        "intent": {
        "name": intent,
        "state": "Fulfilled",
        }
    }
}

Der vollständige Quellcode für dieses Beispiel ist verfügbar unter GitHub.

Voraussetzungen:

Bevor Sie beginnen, stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind:

Implementieren Sie die Lösung

Führen Sie die folgenden Schritte aus, um die Lösung zu implementieren:

  1. Klonen Sie das Repository
    git clone https://github.com/aws-samples/amazon-connect-with-amazon-lex-genai-capabilities
    cd amazon-connect-with-amazon-lex-genai-capabilities

  2. Führen Sie den folgenden Befehl aus, um die Umgebung zu initialisieren und eine zu erstellen Amazon Elastic Container-Registrierung (Amazon ECR)-Repository für das Image unserer Lambda-Funktion. Geben Sie die AWS-Region und den Namen des ECR-Repositorys an, das Sie erstellen möchten.
    bash ./scripts/build.sh region-name repository-name

  3. Aktualisieren Sie die ParameterValue Felder in der scripts/parameters.json Datei:
    • ParameterKey ("AmazonECRImageUri") – Geben Sie die Repository-URL aus dem vorherigen Schritt ein.
    • ParameterKey ("AmazonConnectName") – Geben Sie einen eindeutigen Namen ein.
    • ParameterKey ("AmazonLexBotName") – Geben Sie einen eindeutigen Namen ein.
    • ParameterKey ("AmazonLexBotAliasName") – Der Standardwert ist „prodversion“; Sie können es bei Bedarf ändern.
    • ParameterKey ("LoggingLevel") – Der Standardwert ist „INFO“; Sie können es bei Bedarf ändern. Gültige Werte sind DEBUG, WARN und ERROR.
    • ParameterKey ("ModelID") – Der Standardwert ist „anthropic.claude-instant-v1“; Sie können es ändern, wenn Sie ein anderes Modell verwenden müssen.
    • ParameterKey ("AmazonConnectName") – Der Standardwert ist „0.75“; Sie können es ändern, wenn Sie den Konfidenzwert aktualisieren müssen.
  4. Führen Sie den Befehl aus, um den CloudFormation-Stack zu generieren und die Ressourcen bereitzustellen:
    bash ./scripts/deploy.sh region cfn-stack-name

Wenn Sie den Kontaktablauf in Amazon Connect nicht von Grund auf erstellen möchten, können Sie den mit diesem Repository bereitgestellten Beispielablauf importieren filelocation: /contactflowsample/samplecontactflow.json.

  1. Einloggen, um Amazon Connect-Instanz. Dem Konto muss ein Sicherheitsprofil zugewiesen werden, das Bearbeitungsberechtigungen für Flows enthält.
  2. Auf der Amazon Connect-Konsole im Navigationsbereich unter Routing, wählen Kontakt fließt.
  3. Erstellen Sie einen neuen Flow desselben Typs wie den, den Sie importieren.
  4. Auswählen Ablauf speichern und importieren.
  5. Wählen Sie die zu importierende Datei aus und wählen Sie Import.

Wenn der Flow in einen vorhandenen Flow importiert wird, wird auch der Name des vorhandenen Flows aktualisiert.

  1. Überprüfen und aktualisieren Sie gegebenenfalls alle gelösten oder ungelösten Referenzen.
  2. Um den importierten Flow zu speichern, wählen Sie Speichern. Zum Veröffentlichen wählen Sie Speichern und veröffentlichen.
  3. Aktualisieren Sie nach dem Hochladen des Kontaktablaufs die folgenden Konfigurationen:
    • Aktualisieren Sie die GetCustomerInput Blöcke mit dem richtigen Amazon Lex-Bot-Namen und der richtigen Version.
    • Aktualisieren Sie unter Telefonnummer verwalten die Nummer mit dem zuvor importierten Kontaktablauf oder IVR.

Überprüfen Sie die Konfiguration

Stellen Sie sicher, dass die mit dem CloudFormation-Stack erstellte Lambda-Funktion über eine IAM-Rolle mit Berechtigungen zum Abrufen von Bots und Absichtsinformationen von Amazon Lex (Listen- und Leseberechtigungen) sowie über entsprechende Amazon Bedrock-Berechtigungen (Listen- und Leseberechtigungen) verfügt.

Überprüfen Sie in Ihrem Amazon Lex-Bot für Ihren konfigurierten Alias ​​und Ihre Sprache, ob die Lambda-Funktion korrekt eingerichtet wurde. Für die FallBackIntent, bestätige das Fulfillmentis einstellen Active um die Funktion jederzeit ausführen zu können FallBackIntent ausgelöst wird.

An diesem Punkt führt Ihr Amazon Lex-Bot automatisch die Lambda-Funktion aus und die Lösung sollte nahtlos funktionieren.

Testen Sie die Lösung

Sehen wir uns eine beispielhafte Absichts-, Beschreibungs- und Äußerungskonfiguration in Amazon Lex an und sehen wir, wie gut das LLM mit Beispieleingaben funktioniert, die Tippfehler, Grammatikfehler und sogar eine andere Sprache enthalten.

Die folgende Abbildung zeigt Screenshots unseres Beispiels. Auf der linken Seite werden der Absichtsname, seine Beschreibung und eine Beispieläußerung mit einem einzigen Wort angezeigt. Ohne viel Konfiguration auf Amazon Lex ist das LLM in der Lage, die richtige Absicht vorherzusagen (rechte Seite). In diesem Test haben wir eine einfache Erfüllungsnachricht mit der richtigen Absicht.

Aufräumen

Um Ihre Ressourcen zu bereinigen, führen Sie den folgenden Befehl aus, um das ECR-Repository und den CloudFormation-Stack zu löschen:

bash ./scripts/cleanup.sh region repository-name cfn-stack-name

Zusammenfassung

Durch die Verwendung von Amazon Lex, erweitert mit LLMs von Amazon Bedrock, können Sie die Absichtserkennungsleistung Ihrer Bots verbessern. Dies bietet einem vielfältigen Kundenkreis ein nahtloses Self-Service-Erlebnis, überbrückt die Lücke zwischen Akzenten und einzigartigen Sprachmerkmalen und steigert letztendlich die Kundenzufriedenheit.

Um tiefer einzutauchen und mehr über generative KI zu erfahren, sehen Sie sich diese zusätzlichen Ressourcen an:

Weitere Informationen dazu, wie Sie mit der generativen KI-gestützten Self-Service-Lösung experimentieren können, finden Sie unter Stellen Sie Self-Service-Fragebeantwortung mit der QnABot-on-AWS-Lösung bereit, die auf Amazon Lex mit Amazon Kendra und großen Sprachmodellen basiert.


Über die Autoren

Hamza Nadeem ist ein Amazon Connect Specialist Solutions Architect bei AWS mit Sitz in Toronto. Er arbeitet mit Kunden in ganz Kanada zusammen, um ihre Kontaktzentren zu modernisieren und Lösungen für ihre einzigartigen Herausforderungen bei der Kundenbindung und Geschäftsanforderungen bereitzustellen. In seiner Freizeit reist Hamza gerne, spielt Fußball und probiert gemeinsam mit seiner Frau neue Rezepte aus.

Parag Srivastava ist Lösungsarchitekt bei Amazon Web Services (AWS) und unterstützt Unternehmenskunden bei der erfolgreichen Cloud-Einführung und -Migration. Im Laufe seiner beruflichen Laufbahn war er intensiv an komplexen Projekten der digitalen Transformation beteiligt. Seine Leidenschaft gilt auch der Entwicklung innovativer Lösungen rund um Geodatenaspekte von Adressen.

Ross Ach ist Lösungsarchitekt bei AWS mit Sitz in Toronto, Kanada. Er unterstützt Kunden bei der Innovation mit KI/ML- und generativen KI-Lösungen, die zu echten Geschäftsergebnissen führen. Er hat mit einer Vielzahl von Kunden aus den Bereichen Einzelhandel, Finanzdienstleistungen, Technologie, Pharma und anderen zusammengearbeitet. In seiner Freizeit liebt er die Natur und genießt die Natur mit seiner Familie.

Sangeetha Kamatkar ist Lösungsarchitekt bei Amazon Web Services (AWS) und unterstützt Kunden bei der erfolgreichen Cloud-Einführung und -Migration. Sie arbeitet mit Kunden zusammen, um hoch skalierbare, flexible und belastbare Cloud-Architekturen zu entwickeln, die auf die Geschäftsprobleme der Kunden eingehen. In ihrer Freizeit hört sie Musik, schaut Filme und genießt im Sommer die Gartenarbeit.

spot_img

Neueste Intelligenz

spot_img