אחרי שיוצרים מכונה של חנות לדוגמה, אפשר להתחיל לכתוב ולהעלות אליה דוגמאות. אין הגבלה על מספר הדוגמאות שאפשר לאחסן במכונה של חנות לדוגמה. הדוגמאות זמינות מיד אחרי שמעלים אותן למכונה של חנות לדוגמה.
הנה כמה תרחישים שבהם תצטרכו להעלות דוגמאות:
השאילתות לא רלוונטיות לדוגמאות הקיימות.
למודל יש קושי מסוים בהסקה.
הדוגמאות הזמינות לא מכסות את כל הפונקציות, התוצאות או ההסברים שאתם מצפים להם.
אם תכתבו דוגמאות רלוונטיות בפורמט הרצוי, תוכלו להשיג את היתרונות הבאים:
לשפר את היכולת של ה-LLM לשים לב לדוגמאות ולהשתמש בהן, ולהימנע משינויים לא צפויים בדפוסי התגובה שנובעים משינויים קטנים בהנחיה.
מצמצמים את ההשפעה השלילית האפשרית של הוספת דוגמאות לשאילתות לא רלוונטיות.
ה-LLM פועל כמצופה בשאילתות דומות.
אם מודל ה-LLM מציג התנהגות או חשיבה רציונלית לא צפויים, אפשר להעלות תשובה מתוקנת כדי להנחות את המודל לפעול לפי הדפוס או החשיבה הרציונלית הצפויים בבקשות הבאות.
הדוגמאות בדף הזה מאפשרות לכם ליצור דוגמאות שמבוססות על פלט של LLM. לכתיבת דוגמאות על סמך הפלט של מודל LLM יש את היתרונות הבאים בהשוואה לכתיבת דוגמאות באופן ידני:
יצירת דוגמאות על סמך פלט צפוי של LLM דורשת פחות מאמץ ידני.
אם תכתבו דוגמאות שמבוססות על התנהגות לא צפויה של מודל LLM, תוכלו לתקן ישירות מקרים של כשל.
אתם יכולים ליצור דוגמאות על סמך תשובות ממודלים עם ביצועים טובים כדי לשפר את ההתנהגות של מודלים אחרים. לדוגמה, אם Gemini 1.5 Pro מספק תשובות טובות יותר מ-Gemini 1.5 Flash אבל עם זמן אחזור גבוה יותר, אתם יכולים ליצור דוגמאות באמצעות התשובות האלה כדי להשיג ביצועים דומים עם זמני אחזור נמוכים יותר באמצעות Gemini 1.5 Flash.
שימוש בדוגמאות לשיפור הביצועים של קריאות לפונקציות
אתם יכולים להשתמש בדוגמאות של few-shot כדי לשפר את הביצועים של קריאות לפונקציות. לשם כך, אתם צריכים להדגים את הדברים הבאים: * מתי מופעלת פונקציה מסוימת.
איך לחלץ את הארגומנטים לשימוש בקריאה לפונקציה.
איך המודל מגיב על סמך התשובה שמוחזרת מהפונקציה, או מכמה פונקציות במקרה של נימוק רב-שלבי.
מידע נוסף על קריאה לפונקציה זמין במסמכי התיעוד בנושא קריאה לפונקציה.
דרישות מוקדמות
לפני שמשתמשים בדוגמאות של Python שבדף הזה, צריך להתקין ולהפעיל את Agent Platform SDK for Example Store בסביבת Python המקומית.
מריצים את הפקודה הבאה כדי להתקין את Agent Platform SDK עבור Example Store.
pip install --upgrade google-cloud-aiplatform>=1.87.0בדוגמת הקוד הבאה אפשר לראות איך מייבאים ומפעילים את ה-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.
מידע נוסף מופיע במאמרי העזרה של ה-API בשפת Python של Agent Platform.
העלאת דוגמה על סמך תשובה צפויה
אפשר להשתמש בדוגמה הבאה כדי ליצור ולהעלות דוגמה בתרחיש שבו התשובה מהמודל הגדול של השפה היא בפורמט הצפוי. בדוגמה הזו אפשר לשלוח בקשה, ליצור דוגמה על סמך התגובה ואז להעלות את הדוגמה למופע של מאגר דוגמאות.
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: הפונקציה או הצהרת הפונקציה שבהן רוצים להשתמש בבקשה. במסמכי התיעוד של GenAI SDK בנושא Function Calling יש הוראות להגדרת פונקציה ככלי.
EXPECTED_FUNCTION_RESPONSE: התשובה הצפויה של הפונקציה (
FunctionResponseאובייקט) לקריאה הצפויה לפונקציה. במאמר קריאה לפונקציה במסמכי ה-SDK של AI גנרטיבי יש הסבר על הגדרת תשובה של פונקציה.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])
מחליפים את מה שכתוב בשדות הבאים:
EXAMPLE_QUERY: בקשת המשתמש או השאילתה אל ה-LLM או הסוכן.
EXPECTED_FUNCTION_CALL: קריאת הפונקציה הצפויה (
FunctionCallאובייקט) לשאילתת המשתמש שסופקה. הסבר על הגדרת קריאה לפונקציה זמין בתיעוד של GenAI SDK בנושא קריאה לפונקציה.EXPECTED_FUNCTION_RESPONSE: התשובה הצפויה של הפונקציה (
FunctionResponseאובייקט) לקריאה הצפויה לפונקציה. במאמר קריאה לפונקציה במסמכי ה-SDK של AI גנרטיבי יש הסבר על הגדרת תשובה של פונקציה.EXPECTED_FINAL_MODEL_RESPONSE: התגובה הסופית הצפויה של המודל (אובייקט
Content) לקריאה ולתגובה הצפויות של הפונקציה.
REST
כדי להעלות דוגמה למופע של חנות לדוגמה, שולחים בקשת POST באמצעות ה-method 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 מייצג את מזהה המספר שנוצר לדוגמה.