Gen AI-Agenten bewerten

Nachdem Sie Ihr Gen AI-Modell erstellt und bewertet haben, können Sie es verwenden, um einen Agenten wie einen Chatbot zu erstellen. Mit dem Gen AI Evaluation Service können Sie die Fähigkeit Ihres Agents messen, Aufgaben und Ziele für Ihren Anwendungsfall zu erledigen.

Übersicht

Sie haben folgende Möglichkeiten, Ihren Kundenservicemitarbeiter zu bewerten:

  • Bewertung der endgültigen Antwort: Hier wird die endgültige Ausgabe eines Kundenservicemitarbeiters bewertet (d. h., ob er sein Ziel erreicht hat oder nicht).

  • Kurvenverlaufsbewertung: Der Pfad (die Abfolge von Toolaufrufen), den der Kundenservicemitarbeiter eingeschlagen hat, um die endgültige Antwort zu erhalten.

Mit dem Gen AI-Bewertungsdienst können Sie eine Agentausführung auslösen und in einer einzigen Vertex AI SDK-Abfrage Messwerte sowohl für die Kursverlaufsbewertung als auch für die endgültige Antwortbewertung abrufen.

Unterstützte Kundenservicemitarbeiter

Der Gen AI Evaluation Service unterstützt die folgenden Kategorien von Kundenservicemitarbeitern:

Unterstützte Kundenservicemitarbeiter Beschreibung
Mit der Vorlage der Reasoning Engine erstellter Bot Die Reasoning Engine (LangChain in Vertex AI) ist eine Google Cloud Plattform, auf der Sie Agenten bereitstellen und verwalten können.
LangChain-Kundenservicemitarbeiter, die mit der anpassbaren Vorlage der Reasoning Engine erstellt wurden LangChain ist eine Open-Source-Plattform.
Benutzerdefinierte Kundenservicemitarbeiterfunktion Die benutzerdefinierte Agentfunktion ist eine flexible Funktion, die einen Prompt für den Kundenservicemitarbeiter entgegennimmt und eine Antwort und eine Antwortabfolge in einem Wörterbuch zurückgibt.

Messwerte für die Bewertung von Kundenservicemitarbeitern definieren

Definieren Sie Ihre Messwerte für die endgültige Antwort- oder Flugbahnbewertung:

Bewertung der endgültigen Antwort

Die endgültige Antwortbewertung erfolgt nach demselben Verfahren wie die Modellantwortbewertung. Weitere Informationen finden Sie unter Bewertungsmesswerte definieren.

Flugbahnbewertung

Anhand der folgenden Messwerte können Sie die Fähigkeit des Modells bewerten, der erwarteten Flugbahn zu folgen:

Genaue Übereinstimmung

Wenn die prognostizierte Flugbahn mit der Referenzflugbahn identisch ist und die Toolaufrufe genau in derselben Reihenfolge erfolgen, gibt der Messwert trajectory_exact_match die Bewertung 1 zurück, andernfalls 0.

Eingabeparameter für Messwerte

Eingabeparameter Beschreibung
predicted_trajectory Die Liste der Toolaufrufe, die der Kundenservicemitarbeiter zur Erstellung der endgültigen Antwort verwendet hat.
reference_trajectory Die voraussichtliche Toolnutzung des Kundenservicemitarbeiters, um die Anfrage zu beantworten.

Ausgabebewertungen

Wert Beschreibung
0 Die prognostizierte Flugbahn stimmt nicht mit der Referenz überein.
1 Die vorhergesagte Flugbahn stimmt mit der Referenz überein.

Sortierte Übereinstimmung

Wenn die prognostizierte Flugbahn alle Toolaufrufe aus der Referenzflugbahn in derselben Reihenfolge enthält und möglicherweise auch zusätzliche Toolaufrufe enthält, gibt der Messwert trajectory_in_order_match eine Punktzahl von 1 zurück, andernfalls 0.

Eingabeparameter für Messwerte

Eingabeparameter Beschreibung
predicted_trajectory Die vorhergesagte Flugbahn, die der Kundenservicemitarbeiter verwendet, um die endgültige Antwort zu erreichen.
reference_trajectory Die voraussichtliche vorhergesagte Flugbahn, die der Kundenservicemitarbeiter zurücklegen muss, um die Anfrage zu beantworten.

Ausgabebewertungen

Wert Beschreibung
0 Die Toolaufrufe in der prognostizierten Flugbahn stimmen nicht mit der Reihenfolge in der Referenzflugbahn überein.
1 Die vorhergesagte Flugbahn stimmt mit der Referenz überein.

Übereinstimmung in beliebiger Reihenfolge

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 eine Punktzahl von 1 zurückgegeben, andernfalls 0.

Eingabeparameter für Messwerte

Eingabeparameter Beschreibung
predicted_trajectory Die Liste der Toolaufrufe, die der Kundenservicemitarbeiter zur Erstellung der endgültigen Antwort verwendet hat.
reference_trajectory Die voraussichtliche Toolnutzung des Kundenservicemitarbeiters, um die Anfrage zu beantworten.

Ausgabebewertungen

Wert Beschreibung
0 Die prognostizierte Flugbahn enthält nicht alle Toolaufrufe in der Referenzflugbahn.
1 Die vorhergesagte Flugbahn stimmt mit der Referenz überein.

Precision

Der Messwert trajectory_precision gibt an, wie viele der Toolaufrufe in der vorhergesagten Flugbahn gemäß der Referenzflugbahn tatsächlich relevant oder korrekt sind.

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 prognostizierten Flugbahn.

Eingabeparameter für Messwerte

Eingabeparameter Beschreibung
predicted_trajectory Die Liste der Toolaufrufe, die der Kundenservicemitarbeiter zur Erstellung der endgültigen Antwort verwendet hat.
reference_trajectory Die voraussichtliche Toolnutzung des Kundenservicemitarbeiters, um die Anfrage zu beantworten.

Ausgabebewertungen

Wert Beschreibung
Eine Gleitkommazahl im Bereich [0,1] Je höher der Wert, desto genauer ist die Vorhersage der Flugbahn.

Recall

Mit dem Messwert trajectory_recall wird gemessen, wie viele der wichtigen Toolaufrufe aus der Referenztrajektorie tatsächlich in der prognostizierten Trajektorie erfasst werden.

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 für Messwerte

Eingabeparameter Beschreibung
predicted_trajectory Die Liste der Toolaufrufe, die der Kundenservicemitarbeiter zur Erstellung der endgültigen Antwort verwendet hat.
reference_trajectory Die voraussichtliche Toolnutzung des Kundenservicemitarbeiters, um die Anfrage zu beantworten.

Ausgabebewertungen

Wert Beschreibung
Eine Gleitkommazahl im Bereich [0,1] Je höher der Wert, desto besser ist die Erinnerung an die prognostizierte Flugbahn.

Einzeln verwendetes Tool

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.

Eingabeparameter für Messwerte

Eingabeparameter Beschreibung
predicted_trajectory Die Liste der Toolaufrufe, die der Kundenservicemitarbeiter verwendet hat, um die endgültige Antwort zu erhalten.

Ausgabebewertungen

Wert Beschreibung
0 Das Tool ist nicht vorhanden
1 Das Tool ist vorhanden.

Außerdem werden den Bewertungsergebnissen standardmäßig die folgenden beiden Messwerte für die Kundenservicemitarbeiter hinzugefügt. Sie müssen sie nicht in EvalTask angeben.

latency

Zeit, die der Kundenservicemitarbeiter für die Beantwortung benötigt.

Wert Beschreibung
Ein Float Berechnet in Sekunden.

failure

Ein boolescher Wert, der angibt, ob die Agent-Aufrufung zu einem Fehler geführt hat oder erfolgreich war.

Ausgabebewertungen

Wert Beschreibung
1 Fehler
0 Gültige Antwort zurückgegeben

Dataset für die Bewertung von Kundenservicemitarbeitern vorbereiten

Bereiten Sie das Dataset für die endgültige Antwort- oder Flugbahnbewertung vor.

Das Datenschema für die Bewertung der endgültigen Antwort ähnelt dem der Bewertung der Modellantwort.

Für die berechnungsbasierte Flugbahnbewertung müssen in Ihrem Datensatz die folgenden Informationen enthalten sein:

Eingabetyp Inhalt des Eingabefelds
predicted_trajectory Die Liste der Toolaufrufe, die die Kundenservicemitarbeiter zur endgültigen Antwort verwendet haben.
reference_trajectory (für trajectory_single_tool_use metric nicht erforderlich) Die voraussichtliche Toolnutzung des Kundenservicemitarbeiters, um die Anfrage zu beantworten.

Beispiele für Bewertungs-Datasets

Die folgenden Beispiele zeigen Datasets für die Flugbahnbewertung. Hinweis: reference_trajectory ist für alle Messwerte mit Ausnahme von trajectory_single_tool_use erforderlich.

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
      }
    },
  ]
]

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
      }
    },
  ]
]

eval_dataset = pd.DataFrame({
    "predicted_trajectory": predicted_trajectory,
    "reference_trajectory": reference_trajectory,
})

Bewertungs-Dataset importieren

Sie können Ihr Dataset in den folgenden Formaten importieren:

  • In Cloud Storage gespeicherte JSONL- oder CSV-Datei

  • BigQuery-Tabelle

  • Pandas DataFrame

Der Gen AI Evaluation Service bietet öffentliche Beispiel-Datasets, anhand derer Sie sehen können, wie Sie Ihre Kundenservicemitarbeiter bewerten können. Im folgenden Code wird gezeigt, wie die öffentlichen Datasets aus einem Cloud Storage-Bucket importiert werden:


# dataset name to be imported
dataset = "on-device" # Alternatives: "customer-support", "content-creation"

# copy the tools and dataset file
!gcloud storage cp gs://cloud-ai-demo-datasets/agent-eval-datasets/{dataset}/tools.py .
!gcloud storage cp gs://cloud-ai-demo-datasets/agent-eval-datasets/{dataset}/eval_dataset.json .

# load the dataset examples
import json

eval_dataset = json.loads(open('eval_dataset.json').read())

# run the tools file
%run -i tools.py

Dabei ist dataset einer der folgenden öffentlichen Datensätze:

  • "on-device" für einen On-Device-Home Assistant, der Smart-Home-Geräte steuert. Der Kundenservicemitarbeiter hilft bei Anfragen wie „Planen Sie die Klimaanlage im Schlafzimmer so, dass sie zwischen 23:00 Uhr und 8:00 Uhr eingeschaltet und sonst ausgeschaltet ist.“

  • "customer-support" für einen Kundenservicemitarbeiter. Der Kundenservicemitarbeiter hilft bei Fragen wie „Können Sie ausstehende Bestellungen stornieren und offene Supporttickets eskalieren?“

  • "content-creation" für einen Kundenservicemitarbeiter für die 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“.

Kundenservicemitarbeiter bewerten

Führen Sie eine Bewertung für den Kurs oder die endgültige Antwort aus:

Für die Bewertung von Kundenservicemitarbeitern können Sie Antwort- und Verlaufsbewertungsmesswerte kombinieren, wie im folgenden Code:

single_tool_use_metric = TrajectorySingleToolUse(tool_name='tool_name')

eval_task = EvalTask(
    dataset=EVAL_DATASET,
    metrics=[
        "rouge_l_sum",
        "bleu",
        custom_response_eval_metric,
        "trajectory_exact_match",
        "trajectory_precision",
        single_tool_use_metric
        pointwise_trajectory_eval_metric # llm-based metric
    ],
)
eval_result = eval_task.evaluate(
    runnable=RUNNABLE,
)

Messwertanpassung

Sie können einen LLM-basierten Messwert für die Kursbewertung mithilfe einer Vorlage oder von Grund auf anpassen. Sie können auch einen benutzerdefinierten berechnungsbasierten Messwert für die Flugbahnbewertung definieren.

Ergebnisse ansehen und interpretieren

Bei der Flugbahnbewertung oder der Bewertung der endgültigen Antwort werden die Bewertungsergebnisse so angezeigt:

Tabellen für Messwerte zur Bewertung von Kundenservicemitarbeitern

Die Bewertungsergebnisse enthalten die folgenden Informationen:

Messwerte für die endgültige Antwort

Ergebnisse auf Instanzebene

Spalte Beschreibung
Antwort Die vom Kundenservicemitarbeiter generierte endgültige Antwort.
latency_in_seconds Zeit, die zum Generieren der Antwort benötigt wurde.
Fehler Gibt an, ob eine gültige Antwort generiert wurde oder nicht.
Punktzahl Eine Bewertung, die für die in der Messwertspezifikation angegebene Antwort berechnet wird.
Erklärung Die Erläuterung für die in der Messwertspezifikation angegebene Bewertung.

Zusammengefasste Ergebnisse

Spalte Beschreibung
Mittel Durchschnittliche Punktzahl für alle Instanzen.
Standardabweichung Standardabweichung aller Punktzahlen.

Messwerte zur Flugbahn

Ergebnisse auf Instanzebene

Spalte Beschreibung
predicted_trajectory Abfolge von Toolaufrufen, die vom Kundenservicemitarbeiter ausgeführt werden, um die endgültige Antwort zu erhalten.
reference_trajectory Abfolge der erwarteten Toolaufrufe.
Punktzahl Eine Bewertung, die für die prognostizierte Flugbahn und die in der Messwertspezifikation angegebene Referenzflugbahn berechnet wird.
latency_in_seconds Zeit, die zum Generieren der Antwort benötigt wurde.
Fehler Gibt an, ob eine gültige Antwort generiert wurde oder nicht.

Zusammengefasste Ergebnisse

Spalte Beschreibung
Mittel Durchschnittliche Punktzahl für alle Instanzen.
Standardabweichung Standardabweichung aller Punktzahlen.

Nächste Schritte

Probieren Sie die folgenden Notebooks zur Bewertung von Kundenservicemitarbeitern aus: