Dieser Leitfaden beschreibt die Verwendung von Claude Die fortschrittlichen Dialogfähigkeiten der Software bearbeiten Kundenanfragen in Echtzeit, bieten 24/7-Support, reduzieren Wartezeiten und bewältigen große Mengen von Supportanfragen mit präzisen Antworten und proaktiven Interaktionen.
Vor dem Bau mit Claude
Entscheiden Sie, ob Sie Claude für den Support-Chat verwenden möchten
Hier sind einige Schlüsselindikatoren dafür, dass Sie ein LLM wie Claude einsetzen sollten, um einige Ihrer Kundensupportprozesse zu automatisieren:
Große Anzahl von sich wiederholenden Abfragen
Claude ist darauf spezialisiert, eine große Anzahl gleichartiger Probleme effizient zu bearbeiten, so dass menschliche Agenten mehr Zeit für die Lösung komplexerer Probleme haben.
Die Notwendigkeit einer schnellen Informationsintegration
Claude ist in der Lage, Informationen aus einer umfangreichen Wissensbasis schnell abzurufen, zu verarbeiten und zu integrieren, während ein menschlicher Agent unter Umständen Zeit braucht, um Nachforschungen anzustellen oder mehrere Quellen zu konsultieren.
Anforderungen an die 24/7-Verfügbarkeit
Claude ist in der Lage, rund um die Uhr Support zu leisten, ohne zu ermüden, während die kontinuierliche Betreuung durch menschliche Mitarbeiter sowohl teuer als auch schwierig sein kann.
Rasche Expansion in Spitzenzeiten
Claude kann einen plötzlichen Anstieg des Anfragevolumens bewältigen, ohne zusätzliches Personal einstellen und schulen zu müssen.
Konsistente Markensprache
Sie können Claude anweisen, den Ton und die Werte Ihrer Marke einheitlich zu vertreten, während menschliche Agenten einen anderen Kommunikationsstil haben können.
Einige Faktoren, die bei der Entscheidung für Claude gegenüber anderen LLM-Studiengängen zu berücksichtigen sind:
- Sie legen Wert auf natürliche und nuancierte Konversationen: Claudes ausgefeiltes Sprachverständnis ermöglicht natürlichere, kontextbezogene Konversationen, die einer menschlichen Interaktion näher kommen als Chats mit anderen LLMs.
- Sie erhalten häufig komplexe und offene Fragen: Claude kann eine breite Palette von Themen und Anfragen bearbeiten, ohne dass Sie Standardantworten erstellen oder umfangreiche Permutationen der Benutzersprache verfassen müssen.
- Sie brauchen eine skalierbare mehrsprachige Unterstützung: Die mehrsprachigen Funktionen von Claude ermöglichen Unterhaltungen in mehr als 200 Sprachen, ohne dass Sie für jede unterstützte Sprache einen eigenen Chatbot einrichten oder einen umfangreichen Übersetzungsprozess durchlaufen müssen.
Definition der idealen Chat-Interaktion
Skizzieren Sie die ideale Kundeninteraktion, um zu definieren, wie und wann Sie erwarten, dass Ihre Kunden mit Claude interagieren. Dieser Überblick wird Ihnen helfen, die technischen Anforderungen Ihrer Lösung zu definieren.
Nachfolgend finden Sie ein Beispiel für eine Chat-Interaktion für den Kundensupport einer Autoversicherung:
- unsere Kunden: Start des Support-Chat-Erlebnisses
- ClaudeHerzlich willkommen und Dialog mit den Kunden
- unsere KundenFragen Sie nach einer Versicherung für ihr neues Elektroauto
- ClaudeInformationen über Versicherungen für Elektrofahrzeuge
- unsere KundenFragen zu den besonderen Bedürfnissen der Elektroautoversicherung
- ClaudeGenaue und nützliche Antworten mit Links zu relevanten Quellen geben
- unsere KundenOff-Topic-Fragen stellen, die nichts mit Versicherungen oder Autos zu tun haben
- ClaudeSie stellen klar, dass sie keine irrelevanten Themen behandeln und leiten die Kunden zurück zu Inhalten, die sich auf die Autoversicherung beziehen.
- unsere Kunden: Interesse an Versicherungsangeboten geäußert
- ClaudeFragen: Stellen Sie eine Reihe von Fragen, um einen angemessenen Kostenvoranschlag zu erstellen und passen Sie ihn auf der Grundlage der Antworten des Kunden an.
- ClaudeSenden Sie eine Anfrage an das API-Tool zur Angebotserstellung mit den vom Kunden gesammelten Informationen.
- ClaudeEmpfangen der Antwortinformationen vom API-Tool, Synthetisieren in eine natürliche Antwort und Erstellen eines Angebots für den Kunden
- unsere Kunden: Gestellte Folgefragen
- ClaudeBeantwortung von Folgefragen nach Bedarf
- Claude: Leiten Sie den Kunden zum nächsten Schritt im Versicherungsprozess und schließen Sie den Dialog ab.
Wenn Sie konkrete Beispiele für Ihre eigenen Anwendungsfälle schreiben, ist es vielleicht hilfreich, die im Dialog verwendeten Wörter aufzuschreiben, damit Sie ein Gefühl für Claudes idealen Tonfall, die Länge der Antwort und den erforderlichen Detailgrad bekommen.
Interaktionen in einzelne Aufgaben aufteilen
Ein Kundendienst-Chat besteht aus einer Reihe verschiedener Aufgaben, darunter die Beantwortung von Fragen, das Abrufen von Informationen und die Bearbeitung von Anfragen, die alle in einer vollständigen Kundeninteraktion zusammengefasst sind. Bevor Sie mit der Erstellung beginnen, sollten Sie die ideale Kundeninteraktion in jede Aufgabe aufteilen, die Claude ausführen muss. Auf diese Weise wird sichergestellt, dass Sie Claude für jede Aufgabe auffordern und bewerten können, und Sie erhalten ein gutes Verständnis für den Umfang der Interaktion, das Sie beim Schreiben von Testfällen berücksichtigen können.
Kunden finden es manchmal hilfreich, diesen Prozess in Form eines Interaktionsdiagramms zu visualisieren, das die möglichen Verzweigungspunkte des Dialogs auf der Grundlage der Benutzeranfragen zeigt.
Im Folgenden werden die wichtigsten Aufgaben im Zusammenhang mit den oben genannten Versicherungsinteraktionen beschrieben:
- Begrüßung und allgemeine Hinweise
- Kunden herzlich willkommen heißen und einen Dialog beginnen
- Bereitstellung grundlegender Informationen über das Unternehmen und Interaktionen
- Informationen zum Produkt
- Bereitstellung von Informationen über die EV-Versicherung Dies muss geschehen, um sicherzustellen, dass Claude über die notwendigen Informationen in seinem Kontext verfügt, und kann bedeuten, dass er RAG-Integration.
- Beantwortung von Fragen im Zusammenhang mit den besonderen Bedürfnissen der Elektroautoversicherung
- Beantwortung von Folgefragen zu Angeboten oder Versicherungsdetails
- Geben Sie gegebenenfalls Links zu relevanten Quellen an.
- Verwaltung des Dialogs
- Das Thema im Blick behalten (Autoversicherung)
- Lenken von Fragen, die nicht zum Thema gehören, zurück zu relevanten Themen
- Zitat Generation
- Stellen Sie geeignete Fragen, um die Qualifikation der Angebote zu ermitteln.
- Anpassung der Fragen auf der Grundlage der Kundenantworten
- Übermitteln Sie die gesammelten Informationen an die API zur Angebotserstellung
- Erstellung von Kostenvoranschlägen für Kunden
Festlegung von Erfolgskriterien
In Zusammenarbeit mit Ihrem Support-Team kann dieDefinieren Sie klare Erfolgskriterienund verfassen einen Bericht mit quantifizierbaren Benchmarks und Zielen.Detaillierte Bewertung.
Im Folgenden werden die Kriterien und Maßstäbe für die Bewertung des Erfolgs von Claude bei der Erfüllung der festgelegten Aufgaben aufgeführt:
Genauigkeit des Abfrageverständnisses
Mit dieser Kennzahl wird die Genauigkeit bewertet, mit der Claude Kundenanfragen zu einer Vielzahl von Themen versteht. Das Verständnis von Claude für die Absicht des Kunden, kritische nächste Schritte, erfolgreiche Lösungen usw. wird durch die Überprüfung einer Stichprobe von Gesprächen bewertet. Ziel ist es, eine Verstehensgenauigkeit von 95% oder besser zu erreichen.
Relevanz
Bewertung, ob die Antworten von Claude bei der Lösung des spezifischen Problems eines Kunden wirksam sind. Bewerten Sie eine Reihe von Dialogen und schätzen Sie die Relevanz jeder Antwort ein (groß angelegte Bewertung mit einem Punktesystem, das auf einem großen Sprachmodell basiert). Ziel ist eine Relevanzbewertung von 90% oder höher.
Antwortgenauigkeit
Bewerten Sie die Genauigkeit der Unternehmens- und Produktinformationen, die Claude auf der Grundlage der bereitgestellten Kontextinformationen zur Verfügung gestellt werden. Ziel ist es, eine Genauigkeitsrate von 100% für diese Leitinformationen zu erreichen.
Relevanz des Zitats
Verfolgen Sie die Häufigkeit und Relevanz der bereitgestellten Links oder Ressourcen. Ziel ist es, bei 80%-Interaktionen, die zusätzliche Informationen erfordern, relevante Ressourcen bereitzustellen.
Einhaltung des Themas
Bewerten Sie, ob Claude während des Dialogs beim Thema bleibt, z. B. in unserer Beispielimplementierung der Autoversicherung, und bewerten Sie die Antworten von Claude auf Autoversicherungs- oder kundenspezifische Fragen. Das Ziel ist, dass die Antworten von 95% in direktem Zusammenhang mit der Autoversicherung oder kundenspezifischen Fragen stehen.
Effektivität der Inhaltserstellung
Bewertung des Erfolgs von Claude bei der Erstellung von Nachrichteninhalten und der Relevanz des Inhalts. In unserer Implementierung werden wir z. B. bewerten, wie gut Claude weiß, wann er Angebote erstellen muss und wie genau sie sind. Das Ziel ist eine 100%-Genauigkeit, da dies eine entscheidende Information für erfolgreiche Kundeninteraktionen ist.
Effizienz verbessern
Damit wird die Fähigkeit von Claude gemessen, Anfragen zu erkennen, die ein menschliches Eingreifen erfordern, und sie gegebenenfalls zu eskalieren. Verfolgt den Prozentsatz der Konversationen, die korrekt eskaliert wurden, und derjenigen, die hätten eskaliert werden müssen, aber nicht eskaliert wurden. Das Ziel ist eine Eskalationsgenauigkeit von 95% oder besser.
Im Folgenden finden Sie Kriterien und Maßstäbe für die Bewertung der geschäftlichen Auswirkungen des Einsatzes von Claude zur Unterstützung:
emotionale Pflege
Beurteilen Sie die Fähigkeit von Claude, die Stimmung der Kunden während des gesamten Dialogs aufrechtzuerhalten oder zu verbessern. Verwenden Sie ein Stimmungsanalyse-Tool, um den emotionalen Zustand zu Beginn und am Ende eines jeden Dialogs zu messen. Ziel ist es, die Stimmung in den Interaktionen von 90% zu erhalten oder zu verbessern.
Abzweigungsrate
Prozentualer Anteil der Kundenanfragen, die von einem Chatbot ohne menschliches Eingreifen erfolgreich bearbeitet werden. Normalerweise liegt das Ziel bei 70%-80% Triage-Rate, je nach Komplexität der Anfrage.
Bewertung der Kundenzufriedenheit
Misst die Kundenzufriedenheit mit Interaktionen mit Chatbots. Wird in der Regel durch eine Umfrage nach der Interaktion durchgeführt. Das Ziel ist eine Kundenzufriedenheit von 4 von 5 oder höher.
Durchschnittliche Bearbeitungszeit
Die durchschnittliche Zeit, die ein Chatbot für die Beantwortung einer Anfrage benötigt. Diese Zeit hängt stark von der Komplexität der Frage ab, aber das allgemeine Ziel ist es, die durchschnittliche Bearbeitungszeit kürzer zu machen als beim menschlichen Kundendienst.
Wie man Claude als Kundendienstmitarbeiter einsetzt
Auswahl des richtigen Claude-Modells
Die Wahl des Modells hängt von der Abwägung zwischen Kosten, Genauigkeit und Reaktionszeit ab.
Für den Kunden-Support-Chat.claude-3-5-sonnet-20240620
Ideal für das Gleichgewicht zwischen Intelligenz, Latenz und Kosten. Wenn jedoch mehrere Prompts in einem Dialog enthalten sind (einschließlich RAGs, Werkzeugverwendung und/oder lange kontextbezogene Prompts), ist dieclaude-3-haiku-20240307
Möglicherweise ist es besser, die Latenzzeit zu optimieren.
Aufbau eines aussagekräftigen Stichworts
Die Verwendung von Claude für den Kundensupport erfordert, dass Claude zielgerichtet und kontextbezogen genug ist, um angemessen zu reagieren, und flexibel genug, um ein breites Spektrum von Kundenanfragen zu bearbeiten.
Beginnen wir mit den Elementen des Schreibens von starken Hinweisen, beginnend mit den Systemhinweisen:
IDENTITY = """你是 Eva,一位友好且知识渊博的 Acme 保险公司 AI 助手。你的角色是热情地欢迎客户,并提供有关 Acme 保险产品的信息,包括车险和电动车险。你还可以帮助客户获取他们的保险需求报价。"""
Während man geneigt sein könnte, alle Informationen in die System-Prompt-Wörter zu packen, um die Anweisungen vom Benutzerdialog zu trennen, packt Claude den Großteil des Prompt-Inhalts in die erste Runde der User
Am besten funktioniert es, wenn es sich in der Mitte befindet (die einzige Ausnahme sind Zeichenaufforderungen). Für weitere Informationen lesen Sie Verwenden Sie die Systemabfrage, um Claude eine Rolle zuzuweisen.
Es ist am besten, komplexe Aufforderungen in Teilbereiche aufzugliedern und einen Teil nach dem anderen zu schreiben. Für jede Aufgabe können Sie bessere Ergebnisse erzielen, indem Sie nach und nach die Teile der Aufforderung definieren, die Claude für die Erledigung dieser Aufgabe benötigt. Im Fall des Kundensupports für die Autoversicherung schreiben wir die Prompts zum Beispiel schrittweise, beginnend mit der Aufgabe "Begrüßung und allgemeine Hinweise". Dies erleichtert auch die Fehlersuche in den Prompts, da Sie die einzelnen Teile des gesamten Prompts schneller anpassen können.
Wir legen alle diese Abschnitte in einer Datei namens config.py
in dem Dokument.
STATIC_GREETINGS_AND_GENERAL = """
<static_context>
Acme 汽车保险:您在路上的可靠伙伴
简介:
在 Acme 保险公司,我们理解您的车辆不仅仅是交通工具——它是您通往生活冒险的门票。自 1985 年以来,我们一直在制定汽车保险政策,赋予驾驶者探索、通勤和旅行的信心。
无论您是在城市街道上穿行,还是在进行跨国旅行,Acme 都会保护您和您的车辆。
我们的创新汽车保险政策专为适应您的独特需求而设计,涵盖从轻微碰撞到重大事故的一切。
凭借 Acme 的获奖客户服务和快速理赔解决方案,您可以专注于驾驶的乐趣,而我们处理其他事宜。
我们不仅是保险提供商——我们是您人生旅途中的副驾驶。
选择 Acme 汽车保险,体验优质保障和真诚关怀带来的安心。因为在 Acme,我们不仅为您的汽车提供保险——我们还为您开拓生活的旅程提供动力。
注:我们还提供电动车的专门保险,确保所有类型车辆的驾驶者都能从我们的保护中受益。
Acme 保险提供以下产品:
- 汽车保险
- 电动车保险
- 两轮车保险
营业时间:周一至周五,上午 9 点至下午 5 点(美国东部时间)
客户服务电话:1-800-123-4567
</static_context>
"""
Wir werden die Informationen zur Kfz-Versicherung und zur Versicherung von Elektroautos gleich behandeln.
STATIC_CAR_INSURANCE="""
<static_context>
汽车保险覆盖范围:
Acme 的汽车保险政策通常涵盖:
1. 责任险:支付您对他人造成的人身伤害和财产损失。
2. 碰撞险:支付事故中对您汽车的损坏。
3. 综合险:支付非碰撞事故对您汽车造成的损坏。
4. 医疗费用险:支付事故后的医疗费用。
5. 无保险/保险不足的驾驶员险:当您被保险不足的驾驶员撞击时保护您。
可选覆盖范围包括:
- 租车报销
- 道路救援
- 新车更换
</static_context>
"""
STATIC_ELECTRIC_CAR_INSURANCE="""
<static_context>
电动车保险:
我们专门的电动车保险超越了传统的汽车保险,为您的高科技投资提供量身定制的保护。除了标准的保险项目外,我们还提供:
- 保护昂贵的电池系统
- 覆盖家用充电设备
- 适应电动车领域的快速发展
无论您驾驶的是 Rivian、Nissan Leaf、Chevrolet Bolt 或其他电动车型,我们经验丰富的代理人都准备为您制定一份让您安心享受每一段电力驱动旅程的保单。
</static_context>
"""
Da wir nun über statische Inhalte verfügen, sollten wir mindestens 4-5 Beispiele für "gute" Interaktionen hinzufügen, um Claudes Reaktion zu steuern. Diese Beispiele sollten Ihre ideale Kundeninteraktion repräsentieren und können Sicherheitsvorkehrungen, Toolanrufe usw. beinhalten.
EXAMPLES="""
以下是一些如何与客户互动的示例:
<example 1>
H: 你好,请问你们提供小企业的商业保险吗?
A: 啊!很遗憾,目前我们不提供商业保险。
不过,我们有多种个人保险产品,包括汽车保险和电动车保险。
您想了解更多关于这些产品的信息吗?
</example 1>
<example 2>
H: 你好,你们的营业时间是几点?
A: 我们的营业时间是周一至周五,上午 9 点到下午 5 点 (美国东部标准时间)。
如果您有任何问题或需要帮助,请随时在这些时间内联系我们。
今天还有什么其他需要我帮助的吗?
</example 2>
<example 3>
H: 我正在寻找汽车保险。Acme 提供哪些服务?
A: 很好的选择!Acme 的汽车保险通常包括:
- 责任险:在事故中您为过错方时为您提供保障
- 碰撞险:支付事故中您车辆的损坏费用
- 全面保障:涵盖非碰撞事件,如盗窃或故意破坏
- 医疗费用保险:事故后支付医疗费用
- 未投保/保险不足司机保障:保护您免受投保不足的司机影响
我们还提供一些可选保障,如租车报销、道路救援和新车更换。
您想了解这些保障的更多细节,还是有其他关于为您的车辆投保的具体问题?
</example 3>
<example 4>
H: 我想了解一下你们的电动车保险。
A: 当然可以!我们的电动车保险专为电动车车主的独特需求量身定制。
除了我们为普通车辆提供的所有标准保障外,我们的电动车保险还包括:
- 电池保障:保护您的车辆昂贵电池系统免受损坏或老化
- 技术包:涵盖高级电子设备和车载计算机系统的维修或更换
- 充电站保障:保护家庭和便携式充电设备
- 网络安全保障:对抗黑客攻击或数字威胁的保障
- 专业道路救援:包括平板拖车服务,以保护车辆底盘
我们为多种电动车提供保障,包括特斯拉、Rivian、日产、雪佛兰等热门车型。
您是否有特定的电动车需要投保,或者您想了解某些保障的更多细节?
</example 4>
<example 5>
H: 我想获取我的汽车保险报价。
A: 当然!我很乐意为您提供汽车保险报价。
为了为您提供准确的报价,我需要收集一些关于您车辆和主要驾驶人的信息。
让我们从基本信息开始:
1. 您的车辆品牌和型号是什么?
2. 车辆生产年份是哪一年?
3. 您大约行驶了多少英里?
4. 主要驾驶人的年龄是多少?
一旦您提供了这些信息,我会使用我们的报价工具为您生成个性化的保险报价。
</example 5>
"""
Sie müssen auch alle wichtigen Anweisungen für den Umgang von Claude mit seinen Kunden aufnehmen. Diese können dem Markenschutz oder den Support-Richtlinien entnommen werden.
ADDITIONAL_GUARDRAILS = """请遵循以下防护措施:
1. 仅提供我们产品中列出的保险类型信息。
2. 如果被问及我们不提供的保险类型,请礼貌地说明我们不提供此类服务。
3. 不要对未来的产品或公司计划进行猜测。
4. 不要做出未经授权的承诺或达成协议。你只能提供信息和指导。
5. 不要提及任何竞争对手的产品或服务。
"""
Kombinieren wir nun alle diese Teile zu einer Zeichenkette, die wir als Eingabeaufforderung verwenden.
TASK_SPECIFIC_INSTRUCTIONS = ' '.join([
STATIC_GREETINGS_AND_GENERAL,
STATIC_CAR_INSURANCE,
STATIC_ELECTRIC_CAR_INSURANCE,
EXAMPLES,
ADDITIONAL_GUARDRAILS,
])
Einsatz von Tools zur Förderung von Dynamik und Proaktivität
Claude kann Vorgänge durchführen und Informationen dynamisch abrufen, indem er clientseitige Tooling-Funktionen verwendet. Alle externen Tools oder APIs, die für die Eingabeaufforderung verwendet werden sollen, werden zuerst aufgeführt.
In diesem Beispiel beginnen wir mit einem Tool zur Berechnung von Kursen.
Beachten Sie, dass das Tool die Berechnung nicht tatsächlich durchführt, sondern der Anwendung lediglich signalisiert, dass das Tool verwendet werden soll, und die angegebenen Parameter übergibt.
Beispiel für einen Kostenvoranschlagsrechner für Versicherungen:
TOOLS = [{
"name": "get_quote",
"description": "根据用户输入计算保险报价。返回值为每月的保费。",
"input_schema": {
"type": "object",
"properties": {
"make": {"type": "string", "description": "车辆的品牌。"},
"model": {"type": "string", "description": "车辆的型号。"},
"year": {"type": "integer", "description": "车辆的生产年份。"},
"mileage": {"type": "integer", "description": "车辆的行驶里程数。"},
"driver_age": {"type": "integer", "description": "主要驾驶员的年龄。"}
},
"required": ["make", "model", "year", "mileage", "driver_age"]
}
}]
def get_quote(make, model, year, mileage, driver_age):
"""返回每月的保费(以美元计)"""
# 你可以调用 HTTP 端点或数据库来获取报价。
# 这里,我们模拟1秒的延迟并返回固定的100美元报价。
time.sleep(1)
return 100
Einsetzen der Tipps
ohne die Eingabeaufforderung in der Testproduktionsumgebung zu implementieren und Operative Bewertung Fall ist es schwer zu wissen, wie gut Ihre Hinweise funktionieren. Lassen Sie uns also eine kleine Anwendung mit unseren Hinweisen, dem Anthropic SDK und Streamlit erstellen und eine Benutzeroberfläche dafür entwickeln.
unter dem Namen chatbot.py
Datei wird zunächst die Klasse ChatBot eingerichtet, die die gleichen Informationen kapselt, die auch von der Anthropisch SDK-Interaktionen.
Die Klasse sollte zwei Hauptmethoden enthalten:generate_message
im Gesang antworten process_user_input
.
from anthropic import Anthropic
from config import IDENTITY, TOOLS, MODEL, get_quote
from dotenv import load_dotenv
load_dotenv()
class ChatBot:
def __init__(self, session_state):
self.anthropic = Anthropic()
self.session_state = session_state
def generate_message(
self,
messages,
max_tokens,
):
try:
response = self.anthropic.messages.create(
model=MODEL,
system=IDENTITY,
max_tokens=max_tokens,
messages=messages,
tools=TOOLS,
)
return response
except Exception as e:
return {"error": str(e)}
def process_user_input(self, user_input):
self.session_state.messages.append({"role": "user", "content": user_input})
response_message = self.generate_message(
messages=self.session_state.messages,
max_tokens=2048,
)
if "error" in response_message:
return f"发生错误: {response_message['error']}"
if response_message.content[-1].type == "tool_use":
tool_use = response_message.content[-1]
func_name = tool_use.name
func_params = tool_use.input
tool_use_id = tool_use.id
result = self.handle_tool_use(func_name, func_params)
self.session_state.messages.append(
{"role": "assistant", "content": response_message.content}
)
self.session_state.messages.append({
"role": "user",
"content": [{
"type": "tool_result",
"tool_use_id": tool_use_id,
"content": f"{result}",
}],
})
follow_up_response = self.generate_message(
messages=self.session_state.messages,
max_tokens=2048,
)
if "error" in follow_up_response:
return f"发生错误: {follow_up_response['error']}"
response_text = follow_up_response.content[0].text
self.session_state.messages.append(
{"role": "assistant", "content": response_text}
)
return response_text
elif response_message.content[0].type == "text":
response_text = response_message.content[0].text
self.session_state.messages.append(
{"role": "assistant", "content": response_text}
)
return response_text
else:
raise Exception("发生错误: 意外的响应类型")
def handle_tool_use(self, func_name, func_params):
if func_name == "get_quote":
premium = get_quote(**func_params)
return f"生成的报价: 每月 ${premium:.2f}"
raise Exception("使用了意外的工具")
Aufbau der Benutzeroberfläche
Setzen Sie diesen Code mit Streamlit und einem Master-Methoden-Test ein. Diese main()
Funktion richtet eine Streamlit-basierte Chat-Schnittstelle ein.
Wir arbeiten an einer Datei namens app.py
Dies geschieht in der Datei
import streamlit as st
from chatbot import ChatBot
from config import TASK_SPECIFIC_INSTRUCTIONS
def main():
st.title("与 Eva 聊天,Acme 保险公司的助理🤖")
if "messages" not in st.session_state:
st.session_state.messages = [
{'role': "user", "content": TASK_SPECIFIC_INSTRUCTIONS},
{'role': "assistant", "content": "明白"},
]
chatbot = ChatBot(st.session_state)
# 显示用户和助理的消息,跳过前两条
for message in st.session_state.messages[2:]:
# 忽略工具使用的消息块
if isinstance(message["content"], str):
with st.chat_message(message["role"]):
st.markdown(message["content"])
if user_msg := st.chat_input("在此输入您的消息..."):
st.chat_message("user").markdown(user_msg)
with st.chat_message("assistant"):
with st.spinner("Eva 正在思考..."):
response_placeholder = st.empty()
full_response = chatbot.process_user_input(user_msg)
response_placeholder.markdown(full_response)
if __name__ == "__main__":
main()
Verwenden Sie den folgenden Befehl, um das Programm auszuführen:
streamlit run app.py
Bewerten Sie Ihre Tipps
Prompts müssen oft getestet und optimiert werden, um die Produktionsreife zu erreichen. Um festzustellen, ob Ihre Lösung bereit ist, können Sie die Chatbot-Leistung durch einen systematischen Prozess bewerten, der quantitative und qualitative Methoden kombiniert. Erstellen Sie auf der Grundlage der von Ihnen definierten Erfolgskriterien eineStarke empirische Bewertungermöglicht es Ihnen, Ihre Eingabeaufforderungen zu optimieren.
Anthropische Konsole Es gibt jetzt ein Bewertungstool, mit dem Sie Ihre Prompts in verschiedenen Szenarien testen können.
Die Leistung verbessern
In komplexen Szenarien wird zusätzlich zu den StandardTipps für die Technikim Gesang antwortenStrategie zur Umsetzung der LeitplankenDarüber hinaus kann es hilfreich sein, andere Strategien zur Verbesserung der Leistung in Betracht zu ziehen. Hier sind einige gängige Szenarien:
Verringerung der langen Kontext-Latenzzeit mit RAG
Bei einer großen Anzahl von statischen und dynamischen Kontexten kann die Einbeziehung aller Informationen in den Cue zu hohen Kosten, langsameren Antwortzeiten und dem Erreichen der Grenzen des Kontextfensters führen. In diesem Fall kann die Implementierung von Retrieval Augmented Generation (RAG)-Techniken die Leistung und Effizienz erheblich verbessern.
Durch die Verwendung des Voyage-ähnliches Einbettungsmodell Durch die Umwandlung von Informationen in eine Vektordarstellung entsteht ein besser skalierbares und reaktionsschnelleres System. Dieser Ansatz ermöglicht den dynamischen Abruf relevanter Informationen auf der Grundlage der aktuellen Abfrage, anstatt alle möglichen Kontexte in jeden Hinweis aufzunehmen.
realisieren RAG Wird zur Unterstützung der Verwendung von Szenarien verwendet RAG-Formulierungen verbessert nachweislich die Genauigkeit, verkürzt die Antwortzeiten und senkt die API-Kosten in Systemen, die ein breites Spektrum an Kontexten erfordern.
Integration von Echtzeitdaten durch den Einsatz von Tools
Bei Anfragen, die Informationen in Echtzeit erfordern, wie z. B. Kontostände oder Policendetails, ist ein eingebetteter RAG-basierter Ansatz nicht ausreichend. Stattdessen können Sie den Einsatz von Tools nutzen, um die Fähigkeit Ihres Chatbots, präzise Antworten in Echtzeit zu geben, erheblich zu verbessern. So können Sie beispielsweise Tools verwenden, um Kundeninformationen zu finden, Auftragsdetails abzurufen und Aufträge im Namen von Kunden zu stornieren.
Diese Methode wird in unserem Verwendung des Tools: Formel für Kundendienstmitarbeiter die in skizziert wurde, ermöglicht es Ihnen, Echtzeitdaten nahtlos in die Antworten von Claude zu integrieren und so ein personalisiertes und effizientes Kundenerlebnis zu schaffen.
Verbesserte Eingangs- und Ausgangsschutzmaßnahmen
Beim Einsatz von Chatbots, vor allem im Kundenservice, ist es wichtig, sich gegen das Risiko von Missbrauch, unangemessenen Anfragen und unangemessenen Antworten zu schützen. Claude ist zwar von Natur aus gegen diese Szenarien gewappnet, aber hier sind zusätzliche Schritte, um Ihre Chatbot-Schutzmaßnahmen zu verstärken:
- Verringerung von HalluzinationenImplementierung von Mechanismen zur Faktenüberprüfung und Zitat um sicherzustellen, dass die Antworten auf den bereitgestellten Informationen beruhen.
- Überprüfen Sie die Informationen: Stellen Sie sicher, dass die Antwort des Sachbearbeiters mit der Unternehmenspolitik und den bekannten Fakten übereinstimmt.
- Vermeidung vertraglicher Verpflichtungen: Achten Sie darauf, dass der Bevollmächtigte keine Versprechungen macht oder Vereinbarungen trifft, zu denen er nicht befugt ist.
- Jailbreak-AbschwächungMethoden wie harmloses Screening und Eingabevalidierung verhindern, dass Benutzer Modellschwachstellen ausnutzen, um unangemessene Inhalte zu erstellen.
- Vermeiden Sie die Erwähnung von Konkurrenten: Setzen Sie einen Filter für die Erwähnung von Konkurrenten ein, um Ihre Marke im Auge zu behalten und die Erwähnung von Produkten oder Dienstleistungen von Konkurrenten zu vermeiden.
- Behalten Sie die Rolle von Claude.Verhindert, dass Claude bei langen und komplexen Interaktionen seinen kontextuellen Stil ändert.
- Entfernen Sie persönlich identifizierbare Informationen (PII): Löschen Sie alle PII aus den Antworten, es sei denn, Sie haben dies ausdrücklich verlangt und genehmigt.
Geringere wahrgenommene Reaktionszeit durch Streaming-Verarbeitung
Die Implementierung von Streaming kann das Engagement und die Zufriedenheit der Nutzer bei potenziell langen Antworten erheblich steigern. In diesem Fall erhalten die Nutzer nach und nach Antworten, anstatt darauf zu warten, dass die gesamte Antwort generiert wird.
Im Folgenden werden die Schritte zur Implementierung der Stream-Verarbeitung beschrieben:
- ausnutzen Anthropische Streaming-API Streaming-Antworten werden unterstützt.
- Richtet das Frontend für die Verarbeitung eingehender Textblöcke ein.
- Zeigt für jede Ankunft einen Textblock an und simuliert so den Effekt einer Echtzeiteingabe.
- Implementieren Sie einen Mechanismus zum Speichern vollständiger Antworten, so dass die Nutzer den gesamten Inhalt sehen können, wenn sie nach dem Weggehen zurückkehren.
In einigen Fällen ermöglicht das Streaming die Verwendung fortgeschrittener Modelle mit höheren Basislatenzen, da die progressive Darstellung die Auswirkungen längerer Verarbeitungszeiten abschwächt.
Erweitern Sie Ihren Chatbot
Wenn die Komplexität des Chatbots zunimmt, kann sich die Anwendungsarchitektur mit ihm weiterentwickeln. Bevor Sie der Architektur weitere Schichten hinzufügen, sollten Sie die folgenden einfacheren Optionen in Betracht ziehen:
- Stellen Sie sicher, dass Sie die Hinweise optimal nutzen und mit der Hinweistechnik optimieren. Nutzen Sie unser Tip Engineering Leitfaden Schreiben Sie die wirksamsten Tipps.
- Andere zur Eingabeaufforderung hinzufügen Artefakt (die Folgendes umfassen können Queue-Kette), um zu sehen, ob die gewünschte Funktion erreicht werden kann.
Wenn Ihr Chatbot sehr unterschiedliche Aufgaben bearbeitet, sollten Sie in Erwägung ziehen, eine Getrennte Absichtsklassifikatoren zur Weiterleitung der ursprünglichen Kundenanfrage. Bei bestehenden Anwendungen würde dies bedeuten, dass ein Entscheidungsbaum erstellt wird, der Kundenanfragen über Klassifikatoren an spezialisierte Dialoge weiterleitet (jeder mit seinen eigenen Tools und Systemaufforderungen). Beachten Sie, dass dieser Ansatz einen zusätzlichen Aufruf an Claude erfordert, was zu zusätzlichen Latenzzeiten führen kann.
Integration von Claude in Support-Workflows
Während sich unsere Beispiele auf Python-Funktionen konzentrieren, die in einer Streamlit-Umgebung aufgerufen werden können, erfordert der Einsatz von Claude zur Echtzeit-Unterstützung von Chatbot einen API-Dienst.
Sie können dies tun:
- Erstellen Sie einen API-Wrapper: Entwickeln Sie einen einfachen API-Wrapper für Ihre klassifizierten Funktionen. Sie können zum Beispiel die Flask-API oder Fast-API verwenden, um Ihren Code als HTTP-Dienst zu verpacken. Dieser HTTP-Dienst kann Benutzereingaben entgegennehmen und eine vollständige Antwort des Assistenten zurückgeben. Der Dienst kann also die folgenden Eigenschaften haben:
- Server-Sent Events (SSE): SSE ermöglicht das Streaming von Antworten in Echtzeit zwischen dem Server und dem Client. Dies ist entscheidend für ein reibungsloses, interaktives Erlebnis bei der Verwendung von LLM.
- Caching: Die Implementierung von Caching kann die Reaktionsfähigkeit erheblich verbessern und unnötige API-Aufrufe reduzieren.
- Beibehaltung des Kontexts: Die Beibehaltung des Kontexts ist wichtig für die Kontinuität des Dialogs, wenn der Benutzer weg- und zurücknavigiert.
- Aufbau der Webschnittstelle: Implementierung einer benutzerfreundlichen Web-UI für die Interaktion mit Claude-gesteuerten Agenten.