Generative KI hat die Welt im Sturm erobert und in der breiten Masse eine Diskussion darüber ausgelöst, welche Anwendungsfälle mit dieser erstaunlichen Technologie gelöst werden können.
In diesem Weblog konzentrieren wir uns auf einen sehr beliebten Anwendungsfall, bei dem es um die Erstellung von Put up-Name-Analysen und Informationsextraktion für einen Kundenbetreuer bei einer Financial institution (nennen wir sie AnyBank) geht.
Daher erhält AnyBank jeden Tag Tausende von Kundenanrufen, sodass alle Mitarbeiter rund um die Uhr beschäftigt sind. Die wichtigsten Probleme bei ihrem aktuellen Setup sind:
- Der Zeitaufwand für jeden Anruf ist sehr hoch.
- Wiederholte Anrufe wegen ähnlicher Probleme.
- Aufgrund des Mangels an einfachen, genauen und schnellen Instruments zum Abrufen von Informationen haben Agenten und Supervisor Schwierigkeiten, immer wieder dieselben/ähnlichen Informationen zu finden und den Kunden ähnliche Lösungen anzubieten.
In diesem Weblog zeigen wir, wie man für AnyBank einen Chat-Bot zur Unterstützung von Kundenbetreuern erstellt, der schnell Erkenntnisse aus der jüngsten Kunden-Agent-Interaktion liefern kann. Wir werden diese Lösung erstellen, indem wir die folgenden Schritte befolgen:
Wir benutzen Amazon SageMaker Studio Um das Modell auf dem SageMaker-Endpunkt bereitzustellen, können Sie jedoch jede andere IDE Ihrer Wahl mit der neuesten Model des SageMaker Python SDK verwenden. Sie müssen nur Ihre haben AWS-Anmeldeinformationen korrekt konfiguriert, um die SageMaker-APIs aufrufen zu können.
Als Voraussetzung bitte klonen aws-gen-ai-financial-services-Repository in Ihrer Umgebung (lokal oder SageMaker Studio)
Der erste Schritt besteht darin, das bereitzustellen falcon4b-instruct Modell. Unten ist der Code dafür. Zuerst müssen wir die abrufen Amazon Elastic Container Registry (ECR) Bild-URI des von SageMaker bereitgestellten Huggingface LLM-Inferenzcontainers:
# retrieve the llm picture uri
llm_image = get_huggingface_llm_image_uri(
"huggingface",
model="0.8.2"
)
Geben Sie als Nächstes die Konfigurationen zum Erstellen eines an SageMaker HuggingFace-Modell Objekt:
# sagemaker config
instance_type = "ml.g5.12xlarge" # occasion on which the mannequin will probably be deployed
number_of_gpu = 4 # based mostly on the variety of GPUs obtainable within the occasion
health_check_timeout = 300# Outline Mannequin and Endpoint configuration parameter
config = {
'HF_MODEL_ID': "tiiuae/falcon-40b-instruct", # model_id from hf.co/fashions
'SM_NUM_GPUS': json.dumps(number_of_gpu), # Variety of GPU used per duplicate
'MAX_INPUT_LENGTH': json.dumps(1024), # Max size of enter textual content
'MAX_TOTAL_TOKENS': json.dumps(2048), # Max size of the era (together with enter textual content)
}
mannequin = HuggingFaceModel(
function=function,
image_uri=llm_image,
env=config
)
Und stellen Sie das Modell bereit:
endpoint = mannequin.deploy(
initial_instance_count=1,
instance_type=instance_type,
container_startup_health_check_timeout=health_check_timeout
)
Der vollständige Code für die Bereitstellung des Modells ist verfügbar Hier.
Der nächste Schritt besteht darin, eine einfache Streamlit-Chat-basierte Anwendung zu erstellen. Diese Anwendung bietet Folgendes:
- Eine Choice zum Hochladen des Anrufprotokolls.
- Senden Sie eine Anfrage zum Transkript an den Chatbot.
- Erhalten Sie eine Antwort vom Modellendpunkt, indem Sie das Anruftranskript als „Kontext“ bereitstellen.
Unten finden Sie den Codeausschnitt zum Lesen des Modellendpunkts aus der Konfigurationsdatei:
consumer = boto3.consumer('sagemaker-runtime')
with open(r'../endpoint_config.yaml') as file:
endpoint_config = yaml.safe_load(file)
Und unten ist die Funktion, die aufgerufen wird, wenn der Benutzer die Anfrage über die Chat-Oberfläche sendet:
def generate_response(context, question):
immediate = f'{context}n{question}'# hyperparameters for falcon40b-instruct
prompt_with_config = {
"inputs": immediate,
"parameters": {
"do_sample": True,
"top_p": 0.9,
"temperature": 0.4,
"max_new_tokens": 1024,
"repetition_penalty": 1.03
}
}
# ship request to endpoint
payload = json.dumps(prompt_with_config).encode('utf-8')
response = consumer.invoke_endpoint(EndpointName=endpoint_config['endpoint_name'],
ContentType='software/json',
Physique=payload)
model_predictions = json.hundreds(response['Body'].learn())
# print assistant response
return model_predictions[0]["generated_text"][len(prompt):]
Der vollständige Code ist verfügbar Hier.
Abgesehen von dieser Datei sind auch einige unterstützende Dateien im enthalten gleichen Ordner im Repository, die eine reibungslose Einrichtung und Ausführung der App ermöglichen:
- Anforderungen.txt – enthält Abhängigkeiten für app.py
- setup.sh – führt die Datei „necessities.txt“ zusammen mit einigen weiteren erforderlichen Systemabhängigkeiten aus.
- run.sh – Wenn Sie diese Datei ausführen, wird der Streamlit-Server gestartet und in der Ausgabe eine App-URL bereitgestellt.
- cleanup.sh – stoppt die Streamlit-App (löscht jedoch nicht den SageMaker-Endpunkt)
Es gibt zwei Möglichkeiten, diese App auszuführen:
- Wenn Sie zum Bereitstellen des Modells eine lokale IDE verwendet haben, können Sie den Chatbot in der lokalen Umgebung selbst ausführen.
- Wenn Sie SageMaker Studio verwendet haben, können Sie den Chatbot auch als verwaltete App in Studio ausführen.
Unabhängig von der oben gewählten Choice bleiben die Ausführungsschritte dieselben:
- Stellen Sie sicher, dass alle Shell-Skripte ausführbar sind. Wenn nicht, führen Sie Folgendes aus:
chmod +x *.sh
2. Laufen setup.sh
. Dadurch werden alle erforderlichen Python- und Systemabhängigkeiten installiert
3. Laufen run.sh
. Dadurch wird der Streamlit-Server hochgefahren und die App-URL bereitgestellt.
4. Klicken Sie auf die App-URL, die die App-Oberfläche bereitstellt, die wie folgt aussieht:
5. Laden Sie das unten aufgeführte Beispiel-Anrufprotokoll hoch streamlit-Ordner im Repository. Es liest die Dateien und zeigt den Inhalt der Datei auch in der Benutzeroberfläche an. Jetzt können Sie dem Chatbot Fragen zum Transkript stellen.
6. Es gibt einige Beispielaufforderungen in prompts.txt im selben Ordner, den Sie zum Testen oder zum Verwenden Ihrer eigenen Eingabeaufforderungen verwenden können. Beispiel: Als ich den Chat-Bot um eine Zusammenfassung des Gesprächs bat, kam folgendes heraus:
Der Kunde hat Probleme, sich in sein Konto einzuloggen und seine Debitkarte zu verwenden. Der Agent versucht, das Downside zu beheben und stellt fest, dass das Konto des Kunden kompromittiert und seine Debitkarte gesperrt wurde. Der Agent bestätigt, dass der Kunde in letzter Zeit keine Transaktionen mit seiner Karte durchgeführt hat und sperrt sie dauerhaft. Der Agent setzt außerdem die Anmeldedaten des Kunden zurück und sendet ihm eine neue Karte und PIN per Put up. Der Kunde fragt, wie lange es dauern wird, bis er die neue Karte und die Zugangsdaten erhält, und der Agent erklärt den Vorgang. Der Agent stellt außerdem Anweisungen zum Erstellen neuer Anmeldeinformationen und deren Aktivierung bereit. Der Kunde dankt dem Agenten für seine Hilfe und beendet das Gespräch.
Ebenso können Sie mit anderen Eingabeaufforderungen experimentieren, die ebenfalls im Beispiel enthalten sind prompts.txt Sie können auch eine andere Frage verwenden, um zu sehen, wie das generative KI-Modell reagiert.
Und das ist alles, was ich in diesem Weblog behandeln wollte.
Zusammenfassend lässt sich sagen, wie generative KI die Effizienz im Kundenagententeam verbessern und Managern dabei helfen kann, mithilfe generativer KI Erkenntnisse aus Kundeninteraktionen zu gewinnen. Diese Informationen können für viele verschiedene nachgelagerte Zwecke verwendet werden, z. B. zur Einspeisung in den internen Informationsspeicher, zum schnellen Nachschlagen früherer Kundeninteraktionen bei der Lösung ähnlicher Kundenprobleme sowie für interne Schulungen und Schulungen.
Der vollständige Code für diesen Weblog ist verfügbar Hier.
Wenn Ihnen das, was Sie gelesen haben, gefallen hat, können Sie gerne klatschen und auf „Folgen“ klicken, damit Sie den nächsten Generative AI-Weblog von mir nicht verpassen.