אתם יכולים להשתמש בשמירת הקשר במטמון במודלים של Gemini שעברו התאמה אישית כדי לשפר את הביצועים ולהפחית את העלויות של פרומפטים שכוללים כמויות גדולות של הקשר. כששומרים במטמון הקשרים שמשתמשים בהם לעיתים קרובות, לא צריך לשלוח מחדש כמויות גדולות של נתונים עם כל בקשה למודל המותאם.
פעולות הניהול (Read, Update, Delete) של מטמון ההקשר עבור מודלים של Gemini שעברו התאמה נשארות עקביות עם מודלים בסיסיים. רק יצירת תוכן במטמון והסקת מסקנות דורשות התאמה ספציפית, שמפורטת בקטעים הבאים.
דרישות מוקדמות
התאמה עדינה של מודל Gemini: אתם צריכים מודל Gemini שעבר התאמה עדינה ופריסה, שמבוסס על מודל בסיסי נתמך (ראו סקירה כללית על שמירת נתוני הקשר במטמון). פרטים על כוונון עדין של מודל Gemini מופיעים במאמר כוונון עדין של מודל Gemini. כדי לקבל את נקודת הקצה של המודל המכוונן שנפרס, אפשר לעיין במאמר בנושא פריסת מודל שעבר כוונון.
חשוב לוודא שיש לכם את הפרטים הבאים:
- המזהה והגרסה של מודל Gemini שעבר התאמה
- שם המשאב של נקודת הקצה של המודל שעבר כוונון עדין ונפרס
גרסאות נתמכות
מודלים של Gemini שעברו כוונון עדין תומכים בשמירה במטמון באופן מרומז בגרסאות הבאות:
- Gemini 3.1 Pro
- Gemini 3.1 Flash-Lite
- Gemini 3 Pro
- Gemini 3 Flash
- Gemini 2.5 Pro
- Gemini 2.5 Flash
- Gemini 2.5 Flash-Lite
שמירת מטמון מפורשת נתמכת בגרסאות הבאות:
- Gemini 3.1 Pro
- Gemini 3.1 Flash-Lite
- Gemini 3 Pro
- Gemini 3 Flash
- Gemini 2.5 Pro
- Gemini 2.5 Flash
- Gemini 2.5 Flash-Lite
יצירת מטמון הקשר למודל שעבר כוונון
התהליך ליצירת מטמון הקשר למודל שעבר כוונון דומה ברובו לשלבים שמתוארים במאמר בנושא יצירת מטמון הקשר. התהליך הכללי מפורט במסמכי התיעוד שמקושרים כאן. המדריך הזה מתמקד בהבדלים בתהליך של יצירת מטמון הקשר למודלים של Gemini שעברו כוונון עדין.
במקום להשתמש במודל הבסיסי בפורמט projects/{PROJECT}/locations/{LOCATION}/publishers/google/models/{MODEL}, צריך להשתמש במודל שעבר כוונון עדין בפורמט projects/{PROJECT}/locations/{LOCATION}/models/{MODEL}@{VERSION}.
בדוגמאות הבאות מוסבר איך ליצור מטמון הקשר עם מודל Gemini שעבר התאמה.
REST
אתם יכולים להשתמש ב-REST כדי ליצור מטמון הקשר באמצעות Agent Platform API. לשם כך, שולחים בקשת POST לנקודת הקצה של מודל ההפצה. בדוגמה הבאה מוצג אופן היצירה של מטמון הקשר באמצעות קובץ שמאוחסן בקטגוריה של Cloud Storage.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: [מזהה הפרויקט](/resource-manager/docs/creating-managing-projects#identifiers). .
- LOCATION: האזור שבו הבקשה תעובד ושבו התוכן ששמור במטמון מאוחסן. רשימת האזורים הנתמכים מופיעה במאמר אזורים זמינים.
- MODEL_ID: מזהה מודל Gemini שעבר כוונון עדין.
- MODEL_VERSION: גרסת מודל Gemini שעברה כוונון עדין.
- CACHE_DISPLAY_NAME: שם תצוגה בעל משמעות שיעזור לכם לתאר ולזהות כל מטמון הקשר.
- MIME_TYPE: סוג ה-MIME של התוכן שרוצים לשמור במטמון.
- CONTENT_TO_CACHE_URI: ה-URI של Cloud Storage של התוכן שרוצים לשמור במטמון.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/cachedContents
גוף בקשת JSON:
{
"model": "projects/PROJECT_ID/locations/LOCATION/models/MODEL_ID@MODEL_VERSION",
"displayName": "CACHE_DISPLAY_NAME",
"contents": [{
"role": "user",
"parts": [{
"fileData": {
"mimeType": "MIME_TYPE",
"fileUri": "CONTENT_TO_CACHE_URI"
}
}]
}]
}
כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
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/v1/projects/PROJECT_ID/locations/LOCATION/cachedContents"
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/v1/projects/PROJECT_ID/locations/LOCATION/cachedContents" | Select-Object -Expand Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
דוגמה לפקודת curl
LOCATION="us-central1"
MODEL_ID="model-id"
PROJECT_ID="test-project"
MODEL_VERSION=1
MIME_TYPE="video/mp4"
CACHED_CONTENT_URI="gs://path-to-bucket/video-file-name.mp4"
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/cachedContents -d \
'{
"model":"projects/${PROJECT_ID}/locations/${LOCATION}/models/${MODEL_ID}@${MODEL_VERSION}",
"contents": [
{
"role": "user",
"parts": [
{
"fileData": {
"mimeType": "${MIME_TYPE}",
"fileUri": "${CACHED_CONTENT_URI}"
}
}
]
}
]
}'
שימוש במטמון הקשר למודל שעבר כוונון עדין
ההליך לשימוש במטמון הקשר עבור מודל שעבר כוונון דומה ברובו לשלבים שמתוארים במאמר שימוש במטמון הקשר. התהליך הכללי מפורט במסמכים המקושרים. המדריך הזה מתמקד בהבדל בין שימוש במטמון הקשר לבין שימוש במודלים של Gemini שעברו כוונון עדין.
במקום לשלוח את הבקשה לנקודת הקצה של מודל הבסיס בפורמט projects/{PROJECT}/locations/{LOCATION}/publishers/google/models/{MODEL}, צריך לשלוח אותה לנקודת הקצה של המודל המותאם שפרסתם בפורמט projects/{PROJECT}/locations/{LOCATION}/endpoints/{ENDPOINT_ID}.
בדוגמת הקוד הבאה אפשר לראות איך משתמשים במטמון הקשר עם מודל Gemini שעבר התאמה.
כשמשתמשים במטמון הקשר, אי אפשר לציין את המאפיינים הבאים:
GenerativeModel.system_instructionsGenerativeModel.tool_configGenerativeModel.tools
REST
אפשר להשתמש ב-REST כדי לציין מטמון הקשר עם הנחיה באמצעות Agent Platform API לשליחת בקשת POST לנקודת הקצה של מודל בעל התוכן הדיגיטלי.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: [מזהה הפרויקט](/resource-manager/docs/creating-managing-projects#identifiers). .
- LOCATION: האזור שבו הבקשה ליצירת מטמון ההקשר עובדה.
- ENDPOINT_ID: נקודת הקצה שבה המודל שעבר התאמה עדינה נפרס.
- PROMPT_TEXT: הנחיית הטקסט לשליחה למודל.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID:generateContent
גוף בקשת JSON:
{
"cachedContent": "projects/PROJECT_NUMBER/locations/LOCATION/cachedContents/CACHE_ID",
"contents": [
{"role":"user","parts":[{"text":"PROMPT_TEXT"}]}
],
"generationConfig": {
"maxOutputTokens": 8192,
"temperature": 1,
"topP": 0.95,
},
"safetySettings": [
{
"category": "HARM_CATEGORY_HATE_SPEECH",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_DANGEROUS_CONTENT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_HARASSMENT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
}
],
}
כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
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/v1/projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID:generateContent"
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/v1/projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID:generateContent" | Select-Object -Expand Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
דוגמה לפקודת curl
LOCATION="us-central1"
PROJECT_ID="test-project"
ENDPOINT_ID=987654321
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/endpoints/${ENDPOINT_ID}:generateContent" -d \
'{
"cachedContent": "projects/${PROJECT_NUMBER}/locations/${LOCATION}/cachedContents/${CACHE_ID}",
"contents": [
{"role":"user","parts":[{"text":"What are the benefits of exercise?"}]}
],
"generationConfig": {
"maxOutputTokens": 8192,
"temperature": 1,
"topP": 0.95,
},
"safetySettings": [
{
"category": "HARM_CATEGORY_HATE_SPEECH",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_DANGEROUS_CONTENT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_HARASSMENT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
}
],
}'