Agenten mit dem GenAI-Client im Vertex AI SDK bewerten

Mit dem Gen AI Evaluation Service können Sie die Fähigkeit des Agents bewerten, Aufgaben und Ziele für einen bestimmten Anwendungsfall zu erfüllen.

Auf dieser Seite erfahren Sie, wie Sie einen einfachen Agenten erstellen und bereitstellen und den Gen AI Evaluation Service verwenden, um den Agenten zu bewerten:

Hinweise

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.

    In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

    Verify that billing is enabled for your Google Cloud project.

    In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

    Verify that billing is enabled for your Google Cloud project.

  2. Installieren Sie das Vertex AI SDK für Python:

    %pip install google-cloud-aiplatform[adk,agent_engines]
    %pip install --upgrade --force-reinstall -q google-cloud-aiplatform[evaluation]
    
  3. Anmeldedaten einrichten Wenn Sie diese Anleitung in Colaboratory ausführen, führen Sie Folgendes aus:

    from google.colab import auth
    auth.authenticate_user()
    

    Informationen zu anderen Umgebungen finden Sie unter Bei Vertex AI authentifizieren.

  4. GenAI-Client im Vertex AI SDK initialisieren:

    import vertexai
    from vertexai import Client
    from google.genai import types as genai_types
    
    GCS_DEST = "gs://BUCKET_NAME/output-path"
    vertexai.init(
        project=PROJECT_ID,
        location=LOCATION,
    )
    
    client = Client(
        project=PROJECT_ID,
        location=LOCATION,
        http_options=genai_types.HttpOptions(api_version="v1beta1"),
      )
    

    Ersetzen Sie Folgendes:

    • BUCKET_NAME: Name des Cloud Storage-Bucket. Weitere Informationen zum Erstellen von Buckets finden Sie unter Bucket erstellen.

    • PROJECT_ID: Ihre Projekt-ID.

    • LOCATION: Ihre ausgewählte Region.

  5. Agent entwickeln

    Entwickeln Sie einen ADK-Agenten (Agent Development Kit), indem Sie das Modell, die Anleitung und die Tools definieren. Weitere Informationen zum Entwickeln eines Agents finden Sie unter Agent Development Kit-Agent entwickeln.

    from google.adk import Agent
    
    # Define Agent Tools
    def search_products(query: str):
        """Searches for products based on a query."""
        # Mock response for demonstration
        if "headphones" in query.lower():
            return {"products": [{"name": "Wireless Headphones", "id": "B08H8H8H8H"}]}
        else:
            return {"products": []}
    
    def get_product_details(product_id: str):
        """Gets the details for a given product ID."""
        if product_id == "B08H8H8H8H":
            return {"details": "Noise-cancelling, 20-hour battery life."}
        else:
            return {"error": "Product not found."}
    
    def add_to_cart(product_id: str, quantity: int):
        """Adds a specified quantity of a product to the cart."""
        return {"status": f"Added {quantity} of {product_id} to cart."}
    
    # Define Agent
    my_agent = Agent(
        model="gemini-2.5-flash",
        name='ecommerce_agent',
        instruction='You are an ecommerce expert',
        tools=[search_products, get_product_details, add_to_cart],
    )
    

    Agent bereitstellen

    Stellen Sie Ihren Agenten in der Vertex AI Agent Engine-Laufzeit bereit. Das kann bis zu 10 Minuten dauern. Rufen Sie den Ressourcennamen des bereitgestellten Agenten ab.

    def deploy_adk_agent(root_agent):
      """Deploy agent to agent engine.
      Args:
        root_agent: The ADK agent to deploy.
      """
      app = vertexai.agent_engines.AdkApp(
          agent=root_agent,
      )
      remote_app = client.agent_engines.create(
          agent=app,
          config = {
              "staging_bucket": gs://BUCKET_NAME,
              "requirements": ['google-cloud-aiplatform[adk,agent_engines]'],
              "env_vars": {"GOOGLE_CLOUD_AGENT_ENGINE_ENABLE_TELEMETRY": "true"}
          }
      )
      return remote_app
    
    agent_engine = deploy_adk_agent(my_agent)
    agent_engine_resource_name = agent_engine.api_resource.name
    

    Eine Liste der Agents, die in Vertex AI Agent Engine bereitgestellt werden, finden Sie unter Bereitgestellte Agents verwalten.

    Antworten generieren

    1. Modellantworten für Ihr Dataset mit run_inference() generieren:

      Bereiten Sie Ihr Dataset als Pandas DataFrame vor. Die Prompts sollten spezifisch für Ihren Agent sein. Für Traces sind Sitzungseingaben erforderlich. Weitere Informationen finden Sie unter Sitzung: Einzelne Unterhaltungen verfolgen.

      import pandas as pd
      from vertexai import types
      
      session_inputs = types.evals.SessionInput(
          user_id="user_123",
          state={},
      )
      agent_prompts = [
          "Search for 'noise-cancelling headphones'.",
          "Show me the details for product 'B08H8H8H8H'.",
          "Add one pair of 'B08H8H8H8H' to my shopping cart.",
          "Find 'wireless earbuds' and then add the first result to my cart.",
          "I need a new laptop for work, can you find one with at least 16GB of RAM?",
      ]
      agent_dataset = pd.DataFrame({
          "prompt": agent_prompts,
          "session_inputs": [session_inputs] * len(agent_prompts),
      })
      
    2. Modellantworten mit run_inference() generieren:

      agent_dataset_with_inference = client.evals.run_inference(
          agent=agent_engine_resource_name,
          src=agent_dataset,
      )
      
    3. Visualisieren Sie Ihre Inferenz-Ergebnisse, indem Sie .show() für das EvaluationDataset-Objekt aufrufen, um die Ausgaben des Modells zusammen mit Ihren ursprünglichen Prompts und Referenzen zu prüfen:

      agent_dataset_with_inference.show()
      

      Die folgende Abbildung zeigt das Evaluierungs-Dataset mit Prompts und den entsprechenden generierten intermediate_events und responses:

      Ergebnisse der Agent-Bewertung

    KI‑Agentenbewertung ausführen

    Führen Sie create_evaluation_run() aus, um die Agent-Antworten zu bewerten.

    1. Rufen Sie agent_info mit der integrierten Hilfsfunktion ab:

      agent_info = types.evals.AgentInfo.load_from_agent(
          my_agent,
          agent_engine_resource_name
      )
      
    2. Bewerten Sie die Antworten des Modells anhand von agentspezifischen adaptiven Messwerten auf Grundlage von Bewertungsschemas (FINAL_RESPONSE_QUALITY, TOOL_USE_QUALITY und HALLUCINATION):

      evaluation_run = client.evals.create_evaluation_run(
          dataset=agent_dataset_with_inference,
          agent_info=agent_info,
          metrics=[
              types.RubricMetric.FINAL_RESPONSE_QUALITY,
              types.RubricMetric.TOOL_USE_QUALITY,
              types.RubricMetric.HALLUCINATION,
              types.RubricMetric.SAFETY,
          ],
          dest=GCS_DEST,
      )
      

    Ergebnisse der Agent-Bewertung ansehen

    Sie können die Bewertungsergebnisse mit dem Vertex AI SDK ansehen.

    Rufen Sie den Bewertungsdurchlauf ab und visualisieren Sie die Bewertungsergebnisse, indem Sie .show() aufrufen, um zusammenfassende Messwerte und detaillierte Ergebnisse anzuzeigen:

    evaluation_run = client.evals.get_evaluation_run(
        name=evaluation_run.name,
        include_evaluation_items=True
    )
    
    evaluation_run.show()
    

    Das folgende Bild zeigt einen Bewertungsbericht mit zusammenfassenden Messwerten, Informationen zum Agenten und detaillierten Ergebnissen für jedes Prompt-Antwort-Paar. Die detaillierten Ergebnisse enthalten auch Traces, die die Interaktionen des Agents zeigen. Weitere Informationen zu Traces finden Sie unter Agent-Traces.

    Ergebnisse der Agent-Bewertung

    Nächste Schritte

    Probieren Sie die folgenden Notebooks aus: