העלאת דוגמאות

אחרי שיוצרים מכונה של חנות לדוגמה, אפשר להתחיל ליצור דוגמאות ולהעלות אותן למכונה. אין הגבלה על מספר הדוגמאות שאפשר לאחסן במופע של מאגר דוגמאות. הדוגמאות יהיו זמינות מיד אחרי שתעלו אותן למופע של חנות הדוגמאות.

הנה כמה תרחישים שבהם תצטרכו להעלות דוגמאות:

  • השאילתות לא רלוונטיות לדוגמאות הקיימות.

  • המודל מתקשה בחלק מההיסקים.

  • הדוגמאות הזמינות לא מכסות את כל הפונקציות, התוצאות או ההסברים שאתם מצפים להם.

אם תכתבו דוגמאות רלוונטיות בפורמט הרצוי, תוכלו להשיג את היתרונות הבאים:

  • לשפר את היכולת של ה-LLM לשים לב לדוגמאות ולהשתמש בהן, כדי להימנע משינויים לא צפויים בדפוסי התגובה שנובעים משינויים קטנים בהנחיה.

  • לצמצם את ההשפעה השלילית האפשרית של הוספת דוגמאות לשאילתות לא רלוונטיות.

  • ה-LLM פועל כמצופה בשאילתות דומות.

אם מודל ה-LLM מציג התנהגות או חשיבה רציונלית לא צפויים, אפשר להעלות תשובה מתוקנת כדי להנחות את המודל לפעול לפי הדפוס או החשיבה הרציונלית הצפויים בבקשות הבאות.

הדוגמאות בדף הזה מאפשרות לכם ליצור דוגמאות שמבוססות על פלט של LLM. לכתיבת דוגמאות על סמך הפלט של מודל LLM יש את היתרונות הבאים בהשוואה לכתיבת דוגמאות באופן ידני:

  • יצירת דוגמאות על סמך פלט צפוי של LLM דורשת פחות מאמץ ידני.

  • אם תכתבו דוגמאות שמבוססות על התנהגות לא צפויה של מודל LLM, תוכלו לתקן ישירות מקרים של כשל.

  • אתם יכולים ליצור דוגמאות על סמך תשובות ממודלים עם ביצועים טובים כדי לשפר את ההתנהגות של מודלים אחרים.

שימוש בדוגמאות לשיפור הביצועים של קריאות לפונקציות

אתם יכולים להשתמש בפרומפט עם כמה דוגמאות (few-shot) כדי לשפר את הביצועים של קריאה להפעלת פונקציות. לשם כך, אתם יכולים להדגים את הדברים הבאים: * מתי מופעלת פונקציה מסוימת.

  • איך לחלץ את הארגומנטים לשימוש בקריאה לפונקציה.

  • איך המודל מגיב על סמך התשובה שמוחזרת מהפונקציה, או מכמה פונקציות במקרה של נימוק רב-שלבי.

מידע נוסף על קריאה לפונקציה זמין במסמכי התיעוד בנושא קריאה לפונקציה.

דרישות מוקדמות

לפני שמשתמשים בדוגמאות של Python שבדף הזה, צריך להתקין ולהפעיל את Agent Platform SDK for Example Store בסביבת Python המקומית.

  1. מריצים את הפקודה הבאה כדי להתקין את Agent Platform SDK עבור Example Store.

    pip install --upgrade google-cloud-aiplatform>=1.87.0
  2. בדוגמת הקוד הבאה אפשר לראות איך מייבאים ומפעילים את ה-SDK של Example Store.

    import vertexai
    from vertexai.preview import example_stores
    
    vertexai.init(
      project="PROJECT_ID",
      location="LOCATION"
    )
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID: מזהה הפרויקט.

    • LOCATION: האזור שלכם. יש תמיכה רק ב-us-central1.

העלאת דוגמאות

אפשר להשתמש בדוגמאות הבאות כדי להעלות דוגמאות למופע של חנות לדוגמה. אפשר להעלות עד חמש דוגמאות לכל בקשה.

Python

בדוגמאות הבאות מוסבר איך לשפר את ההתנהגות של מודלים גדולים של שפה (LLM) ואת הביצועים של קריאות לפונקציות. כדי לעשות את זה, צריך ליצור דוגמאות ולהעלות אותן למופע של מאגר דוגמאות, באמצעות תשובות שהתקבלו ממודל LLM. לפני שמשתמשים בדוגמאות הבאות, חשוב לוודא שביצעתם את הפעולות הבאות:

פועלים לפי הוראות ההגדרה של Python במאמר התקנת ספריות הלקוח ומגדירים אימות באמצעות Application Default Credentials.

מידע נוסף מופיע במאמרי העזרה של Agent Platform Python API.

העלאת דוגמה על סמך תשובה צפויה

אפשר להשתמש בדוגמה הבאה כדי ליצור ולהעלות דוגמה בתרחיש שבו התשובה מהמודל הגדול של השפה היא בפורמט הצפוי. בדוגמה הזו אפשר לשלוח בקשה, ליצור דוגמה על סמך התגובה ואז להעלות את הדוגמה למופע של מאגר דוגמאות.

from vertexai.preview.example_stores import ContentsExample, StoredContentsExample

client = genai.Client(
    http_options=genai_types.HttpOptions(api_version="v1"),
    vertexai=True,
    project="PROJECT_ID",
    location="LOCATION")

user_content = genai_types.Content(
    role="user",
    parts=[genai_types.Part(text="EXAMPLE_QUERY")],
)

response = client.models.generate_content(
    model="MODEL_NAME",
    user_content,
    config=genai_types.GenerateContentConfig(
      tools=[FUNCTION_OR_FUNCTION_DECLARATION]
    )
  )

# Upload example.
example = {
  "contents_example": {
    "contents": [user_content.to_json_dict()],
    "expected_contents": [
      {"content": response.candidates[0].content.to_json_dict()},
      {"content": EXPECTED_FUNCTION_RESPONSE.to_json_dict()},
      {"content": EXPECTED_FINAL_MODEL_RESPONSE.to_json_dict()},
    ],
  },
  "search_key": user_content.parts[0].text,
}
example_store.upsert_examples(examples=[example])

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט.

  • LOCATION: האזור שלכם. יש תמיכה רק ב-us-central1.

  • EXAMPLE_QUERY: בקשת המשתמש או השאילתה אל ה-LLM או הסוכן.

  • MODEL_NAME: שם המודל. לדוגמה, gemini-2.0-flash.

  • FUNCTION_OR_FUNCTION_DECLARATION: הפונקציה או הצהרת הפונקציה לשימוש בבקשה. במאמר העזרה בנושא Function Calling ב-GenAI SDK מוסבר איך להגדיר פונקציה ככלי.

  • EXPECTED_FUNCTION_RESPONSE: התגובה הצפויה של הפונקציה (FunctionResponseאובייקט) לקריאה הצפויה של הפונקציה. לקבלת עזרה בהגדרת תגובה של פונקציה, אפשר לעיין במסמכי GenAI SDK בנושא הפעלת פונקציות.

  • EXPECTED_FINAL_MODEL_RESPONSE: התגובה הסופית הצפויה של המודל (אובייקט Content) לקריאה ולתגובה הצפויות של הפונקציה.

העלאת דוגמה כדי לתקן תשובה לא צפויה

אם ה-LLM לא יוצר את התשובה כמו שציפיתם, אתם יכולים ליצור דוגמה על סמך התשובה המתוקנת. כך מודל ה-LLM יוכל לפעול לפי ההיגיון הצפוי בבקשות הבאות.

אפשר להשתמש בדוגמה הבאה כדי להעלות דוגמה עם התגובה המתוקנת למופע של Example Store.

user_content = genai_types.Content(
    role="user",
    parts=[genai_types.Part(text="EXAMPLE_QUERY")],
)

example = {
  "contents_example": {
    "contents": [user_content.to_json_dict()],
    "expected_contents": [
      {"content": EXPECTED_FUNCTION_CALL.to_json_dict()},
      {"content": EXPECTED_FUNCTION_RESPONSE.to_json_dict()},
      {"content": EXPECTED_FINAL_MODEL_RESPONSE.to_json_dict()},
    ],
  },
  "search_key": user_content.parts[0].text,
}

example_store.upsert_examples(examples=[example])

מחליפים את מה שכתוב בשדות הבאים:

REST

כדי להעלות דוגמה למופע של חנות לדוגמה, שולחים בקשת POST באמצעות השיטה exampleStores.upsertExamples.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט.
  • LOCATION: האזור שבו רוצים ליצור את החנות לדוגמה. האזור היחיד שנתמך הוא us-central1.
  • EXAMPLE_STORE_ID: המזהה של מופע Example Store שרוצים להעלות אליו את הדוגמה.

ה-method של ה-HTTP וכתובת ה-URL:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/exampleStores/EXAMPLE_STORE_ID:upsertExamples

גוף בקשת JSON:

{
  "examples": [
      {
          "stored_contents_example": {
              "contents_example": {
                  "contents": [
                      {
                          "role": "user",
                          "parts": [
                              {
                                  "text": "Is there a store in Mountain View, CA that I can visit to try the new Pixel 8 Pro?"
                              }
                          ]
                      }
                  ],
                  "expected_contents": [
                      {
                          "content": {
                              "role": "model",
                              "parts": [
                                  {
                                      "text": ""Yes, there is a store located at 2000 N Shoreline Blvd, Mountain View, CA 94043, US."
                                  }
                              ]
                          }
                      }
                  ]
              },
              "search_key_generation_method": {
                  "last_entry": {}
              }
          }
      }
  ]
}

כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:

curl

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/exampleStores/EXAMPLE_STORE_ID:upsertExamples"

PowerShell

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/exampleStores/EXAMPLE_STORE_ID:upsertExamples" | Select-Object -Expand Content

אתם אמורים לקבל תגובת JSON שדומה לזו, שבה EXAMPLE_ID מייצג את מזהה המספר שנוצר לדוגמה.

המאמרים הבאים