Nachdem Sie einen Kundenservicemitarbeiter entwickelt haben, können Sie mit dem Gen AI Evaluation Service die Fähigkeit des Kundenservicemitarbeiters bewerten, Aufgaben und Ziele für einen bestimmten Anwendungsfall zu erledigen.
Bewertungsmesswerte definieren
Beginnen Sie mit einer leeren Liste von Messwerten (z.B. metrics = []
) und fügen Sie die relevanten Messwerte hinzu. So fügen Sie weitere Messwerte hinzu:
Endgültige Antwort
Die endgültige Antwortbewertung erfolgt nach demselben Verfahren wie die modellbasierte Bewertung. Weitere Informationen finden Sie unter Bewertungsmesswerte definieren.
Genaue Übereinstimmung
metrics.append("trajectory_exact_match")
Wenn die vorhergesagte Flugbahn mit der Referenzflugbahn identisch ist und die Toolaufrufe in genau derselben Reihenfolge erfolgen, gibt der Messwert trajectory_exact_match
die Punktzahl 1
zurück, andernfalls 0
.
Eingabeparameter:
predicted_trajectory
: Die Liste der Toolaufrufe, die der Kundenservicemitarbeiter verwendet hat, um die endgültige Antwort zu erhalten.reference_trajectory
: Die erwartete Toolnutzung des Kundenservicemitarbeiters, um die Anfrage zu beantworten.
Sortierte Übereinstimmung
metrics.append("trajectory_in_order_match")
Wenn die vorhergesagte Flugbahn alle Toolaufrufe aus der Referenzflugbahn in derselben Reihenfolge enthält und möglicherweise auch zusätzliche Toolaufrufe enthält, wird für den Messwert trajectory_in_order_match
die Bewertung 1
zurückgegeben, andernfalls 0
.
Eingabeparameter:
predicted_trajectory
: Die prognostizierte Flugbahn, die der Bot verwendet, um die endgültige Antwort zu erreichen.reference_trajectory
: Die erwartete vorhergesagte Flugbahn des Fahrzeugs, um die Anfrage zu erfüllen.
Übereinstimmung in beliebiger Reihenfolge
metrics.append("trajectory_any_order_match")
Wenn die vorhergesagte Flugbahn alle Toolaufrufe aus der Referenzflugbahn enthält, die Reihenfolge jedoch keine Rolle spielt und zusätzliche Toolaufrufe enthalten kann, wird für den Messwert trajectory_any_order_match
die Bewertung 1
zurückgegeben, andernfalls 0
.
Eingabeparameter:
predicted_trajectory
: Die Liste der Toolaufrufe, die der Kundenservicemitarbeiter verwendet hat, um die endgültige Antwort zu erhalten.reference_trajectory
: Die erwartete Toolnutzung des Kundenservicemitarbeiters, um die Anfrage zu beantworten.
Precision
metrics.append("trajectory_precision")
Der Messwert trajectory_precision
gibt an, wie viele der Toolaufrufe in der prognostizierten Flugbahn gemäß der Referenzflugbahn tatsächlich relevant oder korrekt sind. Es ist ein float
-Wert im Bereich von [0, 1]
: Je höher der Wert, desto genauer ist die prognostizierte Flugbahn.
Die Genauigkeit wird so berechnet: Zählen Sie, wie viele Aktionen in der vorhergesagten Flugbahn auch in der Referenzflugbahn vorkommen. Teilen Sie diese Anzahl durch die Gesamtzahl der Aktionen in der vorhergesagten Flugbahn.
Eingabeparameter:
predicted_trajectory
: Die Liste der Toolaufrufe, die der Kundenservicemitarbeiter verwendet hat, um die endgültige Antwort zu erhalten.reference_trajectory
: Die erwartete Toolnutzung des Kundenservicemitarbeiters, um die Anfrage zu beantworten.
Recall
metrics.append("trajectory_recall")
Mit dem Messwert trajectory_recall
wird gemessen, wie viele der wichtigen Toolaufrufe aus der Referenztrajektorie tatsächlich in der prognostizierten Trajektorie erfasst werden. Es ist ein float
-Wert im Bereich von [0, 1]
: Je höher die Punktzahl, desto besser ist die Wiedererkennung der prognostizierten Flugbahn.
Der Recall wird so berechnet: Zählen Sie, wie viele Aktionen in der Referenztrajektorie auch in der prognostizierten Trajektorie vorkommen. Teilen Sie diese Anzahl durch die Gesamtzahl der Aktionen in der Referenztrajektorie.
Eingabeparameter:
predicted_trajectory
: Die Liste der Toolaufrufe, die der Kundenservicemitarbeiter verwendet hat, um die endgültige Antwort zu erhalten.reference_trajectory
: Die erwartete Toolnutzung des Kundenservicemitarbeiters, um die Anfrage zu beantworten.
Einzeln verwendetes Tool
from vertexai.preview.evaluation import metrics
metrics.append(metrics.TrajectorySingleToolUse(tool_name='tool_name'))
Mit dem Messwert trajectory_single_tool_use
wird geprüft, ob ein bestimmtes Tool, das in der Messwertspezifikation angegeben ist, in der prognostizierten Flugbahn verwendet wird. Es wird nicht geprüft, in welcher Reihenfolge die Toolaufrufe erfolgen oder wie oft das Tool verwendet wird, sondern nur, ob es vorhanden ist oder nicht. Der Wert ist 0
, wenn das Tool nicht vorhanden ist, andernfalls 1
.
Eingabeparameter:
predicted_trajectory
: Die Liste der Toolaufrufe, die der Kundenservicemitarbeiter verwendet hat, um die endgültige Antwort zu erhalten.
Benutzerdefiniert
So definieren Sie einen benutzerdefinierten Messwert:
from vertexai.preview.evaluation import metrics
def word_count(instance):
response = instance["response"]
score = len(response.split(" "))
return {"word_count": score}
metrics.append(
metrics.CustomMetric(name="word_count", metric_function=word_count)
)
Die folgenden beiden Leistungsmesswerte sind immer in den Ergebnissen enthalten. Sie müssen sie in EvalTask
nicht angeben:
latency
(float
): Zeit (in Sekunden), die der Kundenservicemitarbeiter für die Beantwortung benötigt hat.failure
(bool
):0
, wenn die Agent-Aufrufung erfolgreich war, andernfalls1
.
Bewertungs-Dataset vorbereiten
So bereiten Sie Ihr Dataset für die Bewertung der endgültigen Antwort oder des Kurses vor:
Endgültige Antwort
Das Datenschema für die Bewertung der endgültigen Antwort ähnelt dem der Bewertung der Modellantwort.
Genaue Übereinstimmung
Der Bewertungsdatensatz muss die folgenden Eingaben enthalten:
Eingabeparameter:
predicted_trajectory
: Die Liste der Toolaufrufe, die der Kundenservicemitarbeiter verwendet hat, um die endgültige Antwort zu erhalten.reference_trajectory
: Die erwartete Toolnutzung des Kundenservicemitarbeiters, um die Anfrage zu beantworten.
Sortierte Übereinstimmung
Der Bewertungsdatensatz muss die folgenden Eingaben enthalten:
Eingabeparameter:
predicted_trajectory
: Die prognostizierte Flugbahn, die der Bot verwendet, um die endgültige Antwort zu erreichen.reference_trajectory
: Die erwartete vorhergesagte Flugbahn des Fahrzeugs, um die Anfrage zu erfüllen.
Übereinstimmung in beliebiger Reihenfolge
Der Bewertungsdatensatz muss die folgenden Eingaben enthalten:
Eingabeparameter:
predicted_trajectory
: Die Liste der Toolaufrufe, die der Kundenservicemitarbeiter verwendet hat, um die endgültige Antwort zu erhalten.reference_trajectory
: Die erwartete Toolnutzung des Kundenservicemitarbeiters, um die Anfrage zu beantworten.
Precision
Der Bewertungsdatensatz muss die folgenden Eingaben enthalten:
Eingabeparameter:
predicted_trajectory
: Die Liste der Toolaufrufe, die der Kundenservicemitarbeiter verwendet hat, um die endgültige Antwort zu erhalten.reference_trajectory
: Die erwartete Toolnutzung des Kundenservicemitarbeiters, um die Anfrage zu beantworten.
Recall
Der Bewertungsdatensatz muss die folgenden Eingaben enthalten:
Eingabeparameter:
predicted_trajectory
: Die Liste der Toolaufrufe, die der Kundenservicemitarbeiter verwendet hat, um die endgültige Antwort zu erhalten.reference_trajectory
: Die erwartete Toolnutzung des Kundenservicemitarbeiters, um die Anfrage zu beantworten.
Einzelnutzung
Der Bewertungsdatensatz muss die folgenden Eingaben enthalten:
Eingabeparameter:
predicted_trajectory
: Die Liste der Toolaufrufe, die der Kundenservicemitarbeiter verwendet hat, um die endgültige Antwort zu erhalten.
Im Folgenden finden Sie ein Beispiel für ein Bewertungs-Dataset.
import pandas as pd
eval_dataset = pd.DataFrame({
"predicted_trajectory": [
[ # example 1
{
"tool_name": "set_device_info",
"tool_input": {"device_id": "device_3", "updates": {"status": "OFF"}}
},
],
[ # example 2
{
"tool_name": "get_user_preferences",
"tool_input": {"user_id": "user_z"},
}, {
"tool_name": "set_temperature",
"tool_input": {"location": "Living Room", "temperature": 23},
},
]
],
"reference_trajectory": [
[ # example 1
{
"tool_name": "set_device_info",
"tool_input": {"device_id": "device_2", "updates": {"status": "OFF"}},
},
],
[ # example 2
{
"tool_name": "get_user_preferences",
"tool_input": {"user_id": "user_y"},
}, {
"tool_name": "set_temperature",
"tool_input": {"location": "Living Room", "temperature": 23},
},
],
],
})
Beispieldatensätze
Die folgenden Beispieldatensätze zeigen, wie Sie Kundenservicemitarbeiter bewerten können:
"on-device"
: Bewertungs-Dataset für einen On-Device-Home Assistant. Der Kundenservicemitarbeiter hilft bei Anfragen wie „Planen Sie die Klimaanlage im Schlafzimmer so, dass sie zwischen 23:00 Uhr und 8:00 Uhr eingeschaltet ist und den Rest der Zeit ausgeschaltet ist.“"customer-support"
: Bewertungs-Dataset für einen Kundenservicemitarbeiter. Der Kundenservicemitarbeiter hilft bei Fragen wie „Können Sie ausstehende Bestellungen stornieren und offene Support-Tickets eskalieren?“"content-creation"
: Bewertungsdatensatz für einen Agenten zur Erstellung von Marketinginhalten. Der Kundenservicemitarbeiter hilft bei Anfragen wie „Kampagne X in eine einmalige Kampagne auf der Social-Media-Website Y mit einem um 50% reduzierten Budget umwandeln, nur am 25. Dezember 2024“.
So importieren Sie die Beispiel-Datasets:
Installieren und initialisieren Sie die
gcloud
-Befehlszeile.Laden Sie das Bewertungs-Dataset herunter.
Auf dem Gerät
gcloud storage cp gs://cloud-ai-demo-datasets/agent-eval-datasets/on-device/eval_dataset.json .
Kundensupport
gcloud storage cp gs://cloud-ai-demo-datasets/agent-eval-datasets/customer-support/eval_dataset.json .
Erstellung von Inhalten
gcloud storage cp gs://cloud-ai-demo-datasets/agent-eval-datasets/content-creation/eval_dataset.json .
Dataset-Beispiele laden
import json eval_dataset = json.loads(open('eval_dataset.json').read())
Bewertungsergebnisse generieren
Führen Sie den folgenden Code aus, um Bewertungsergebnisse zu generieren:
from vertexai.preview.evaluation import EvalTask
eval_task = EvalTask(dataset=eval_dataset, metrics=metrics)
eval_result = eval_task.evaluate(runnable=agent)
Ergebnisse ansehen und interpretieren
Die Bewertungsergebnisse werden so angezeigt:
Die Bewertungsergebnisse enthalten die folgenden Informationen:
Messwerte für die endgültige Antwort
Zeilenbasierte Messwerte:
response
: Die vom Kundenservicemitarbeiter generierte endgültige Antwort.latency_in_seconds
: Zeit (in Sekunden), die für die Generierung der Antwort benötigt wurde.failure
: Gibt an, ob eine gültige Antwort generiert wurde oder nicht.score
: Ein Wert, der für die in der Messwertspezifikation angegebene Antwort berechnet wird.explanation
: Die Erklärung für die in der Messwertspezifikation angegebene Bewertung.
Zusammenfassende Messwerte:
mean
: Durchschnittliche Bewertung für alle Instanzen.standard deviation
: Standardabweichung aller Punktzahlen.
Messwerte zur Flugbahn
Zeilenbasierte Messwerte:
predicted_trajectory
: Sequenz von Toolaufrufen, gefolgt von einem Kundenservicemitarbeiter, um die endgültige Antwort zu erhalten.reference_trajectory
: Abfolge der erwarteten Toolaufrufe.score
: Ein Wert, der für die vorhergesagte Flugbahn und die in der Messwertspezifikation angegebene Referenzflugbahn berechnet wird.latency_in_seconds
: Zeit (in Sekunden), die für die Generierung der Antwort benötigt wurde.failure
: Gibt an, ob eine gültige Antwort generiert wurde oder nicht.
Zusammenfassende Messwerte:
mean
: Durchschnittliche Bewertung für alle Instanzen.standard deviation
: Standardabweichung aller Punktzahlen.
Nächste Schritte
- Entwickeln Sie einen Agenten.
- Agent bereitstellen
- Einen Kundenservicemitarbeiter verwenden
- Support anfordern
Probieren Sie die folgenden Notebooks aus: