Gemini יכול לעבד סוגים שונים של נתוני קלט, כולל טקסט, תמונות ואודיו, בו-זמנית.
במדריך הזה מוסבר איך לעבוד עם קובצי מדיה באמצעות Files API. הפעולות הבסיסיות זהות לקובצי אודיו, תמונות, סרטונים, מסמכים ולסוגי קבצים נתמכים אחרים.
להנחיות לגבי כתיבת פרומפטים לקבצים, עיין בקטע מדריך לכתיבת פרומפטים לקבצים.
העלאת קובץ
אפשר להשתמש ב-Files API כדי להעלות קובץ מדיה. תמיד צריך להשתמש ב-Files API כשגודל הבקשה הכולל (כולל הקבצים, פרומפט טקסטואלי, הוראות המערכת וכו') גדול מ-100 MB. לקובצי PDF, המגבלה היא 50 MB.
בדוגמת הקוד הבאה, קובץ מועלה ואז נעשה בו שימוש בקריאה ל-interactions.create.
Python
from google import genai
client = genai.Client()
myfile = client.files.upload(file="path/to/sample.mp3")
interaction = client.interactions.create(
model="gemini-3.7-flash",
input=[
{"type": "text", "text": "Describe this audio clip"},
{"type": "audio", "uri": myfile.uri, "mime_type": myfile.mime_type}
]
)
print(interaction.output_text)
JavaScript
import { GoogleGenAI } from "@google/genai";
const client = new GoogleGenAI({});
async function main() {
const myfile = await client.files.upload({
file: "path/to/sample.mp3",
config: { mime_type: "audio/mpeg" },
});
const interaction = await client.interactions.create({
model: "gemini-3.7-flash",
input: [
{ type: "text", text: "Describe this audio clip" },
{ type: "audio", uri: myfile.uri, mime_type: myfile.mimeType }
]
});
console.log(interaction.output_text);
}
await main();
Java
import com.google.genai.Client;
import com.google.genai.types.File;
import com.google.genai.types.UploadFileConfig;
Client client = new Client();
File file = client.files.upload(
new java.io.File("path/to/sample.txt"),
UploadFileConfig.builder().mimeType("text/plain").build()
);
System.out.println("Uploaded file URI: " + file.uri().orElse(""));
Go
file, err := client.Files.UploadFromPath(ctx, "path/to/sample.mp3", nil)
if err != nil {
log.Fatal(err)
}
defer client.Files.Delete(ctx, file.Name)
interaction, err := client.Interactions.Create(ctx, "gemini-3.7-flash", &genai.InteractionRequest{
Input: []interface{}{
genai.NewPartFromFile(*file),
genai.NewPartFromText("Describe this audio clip"),
},
}, nil)
if err != nil {
log.Fatal(err)
}
// Print the model's text response
for _, step := range interaction.Steps {
if step.Type == "model_output" {
for _, part := range step.Content {
if part.Type == "text" {
fmt.Println(part.Text)
}
}
}
}
REST
AUDIO_PATH="path/to/sample.mp3"
MIME_TYPE=$(file -b --mime-type "${AUDIO_PATH}")
NUM_BYTES=$(wc -c < "${AUDIO_PATH}")
DISPLAY_NAME=AUDIO
tmp_header_file=upload-header.tmp
# Initial resumable request defining metadata.
# The upload url is in the response headers dump them to a file.
curl "${BASE_URL}/upload/v1beta/files" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-D "${tmp_header_file}" \
-H "X-Goog-Upload-Protocol: resumable" \
-H "X-Goog-Upload-Command: start" \
-H "X-Goog-Upload-Header-Content-Length: ${NUM_BYTES}" \
-H "X-Goog-Upload-Header-Content-Type: ${MIME_TYPE}" \
-H "Content-Type: application/json" \
-d "{'file': {'display_name': '${DISPLAY_NAME}'}}" 2> /dev/null
upload_url=$(grep -i "x-goog-upload-url: " "${tmp_header_file}" | cut -d" " -f2 | tr -d "\r")
rm "${tmp_header_file}"
# Upload the actual bytes.
curl "${upload_url}" \
-H "Content-Length: ${NUM_BYTES}" \
-H "X-Goog-Upload-Offset: 0" \
-H "X-Goog-Upload-Command: upload, finalize" \
--data-binary "@${AUDIO_PATH}" 2> /dev/null > file_info.json
file_uri=$(jq ".file.uri" file_info.json)
echo file_uri=$file_uri
# Now create an interaction using the Interactions API
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "gemini-3.7-flash",
"input": [
{"type": "text", "text": "Describe this audio clip"},
{"type": "audio", "uri": '$file_uri', "mime_type": "'${MIME_TYPE}'"}
]
}' 2> /dev/null > response.json
cat response.json
echo
jq ".outputs[] | select(.type == \"text\") | .text" response.json
אחזור מטא-נתונים של קובץ
כדי לוודא שה-API שמר בהצלחה את הקובץ שהועלה ולקבל את המטא-נתונים שלו, אפשר לקרוא ל-files.get.
Python
from google import genai
client = genai.Client()
myfile = client.files.upload(file='path/to/sample.mp3')
file_name = myfile.name
myfile = client.files.get(name=file_name)
print(myfile)
JavaScript
import {
GoogleGenAI,
} from "@google/genai";
const client = new GoogleGenAI({});
async function main() {
const myfile = await client.files.upload({
file: "path/to/sample.mp3",
config: { mime_type: "audio/mpeg" },
});
const fileName = myfile.name;
const fetchedFile = await client.files.get({ name: fileName });
console.log(fetchedFile);
}
await main();
Java
import com.google.genai.Client;
import com.google.genai.types.File;
import com.google.genai.types.UploadFileConfig;
Client client = new Client();
File file = client.files.upload(
new java.io.File("path/to/sample.txt"),
UploadFileConfig.builder().mimeType("text/plain").build()
);
System.out.println("Uploaded file URI: " + file.uri().orElse(""));
Go
file, err := client.Files.UploadFromPath(ctx, "path/to/sample.mp3", nil)
if err != nil {
log.Fatal(err)
}
gotFile, err := client.Files.Get(ctx, file.Name)
if err != nil {
log.Fatal(err)
}
fmt.Println("Got file:", gotFile.Name)
REST
# file_info.json was created in the upload example
name=$(jq -r ".file.name" file_info.json)
# Get the file of interest to check state
curl https://generativelanguage.googleapis.com/v1beta/$name \
-H "x-goog-api-key: $GEMINI_API_KEY" > file_info.json
# Print some information about the file you got
name=$(jq -r ".name" file_info.json)
echo name=$name
file_uri=$(jq -r ".uri" file_info.json)
echo file_uri=$file_uri
הצגת רשימת הקבצים שהועלו
הקוד הבא מקבל רשימה של כל הקבצים שהועלו:
Python
from google import genai
client = genai.Client()
print('My files:')
for f in client.files.list():
print(' ', f.name)
JavaScript
import {
GoogleGenAI,
} from "@google/genai";
const client = new GoogleGenAI({});
async function main() {
const listResponse = await client.files.list({ config: { pageSize: 10 } });
for await (const file of listResponse) {
console.log(file.name);
}
}
await main();
Java
import com.google.genai.Client;
import com.google.genai.types.File;
import com.google.genai.types.UploadFileConfig;
Client client = new Client();
File file = client.files.upload(
new java.io.File("path/to/sample.txt"),
UploadFileConfig.builder().mimeType("text/plain").build()
);
System.out.println("Uploaded file URI: " + file.uri().orElse(""));
Go
for file, err := range client.Files.All(ctx) {
if err != nil {
log.Fatal(err)
}
fmt.Println(file.Name)
}
REST
echo "My files: "
curl "https://generativelanguage.googleapis.com/v1beta/files" \
-H "x-goog-api-key: $GEMINI_API_KEY"
מחיקת קבצים שהועלו
הקבצים נמחקים אוטומטית אחרי 48 שעות. אפשר גם למחוק קובץ שהועלה באופן ידני:
Python
from google import genai
client = genai.Client()
myfile = client.files.upload(file='path/to/sample.mp3')
client.files.delete(name=myfile.name)
JavaScript
import {
GoogleGenAI,
} from "@google/genai";
const client = new GoogleGenAI({});
async function main() {
const myfile = await client.files.upload({
file: "path/to/sample.mp3",
config: { mime_type: "audio/mpeg" },
});
const fileName = myfile.name;
await client.files.delete({ name: fileName });
}
await main();
Java
import com.google.genai.Client;
import com.google.genai.types.File;
import com.google.genai.types.UploadFileConfig;
Client client = new Client();
File file = client.files.upload(
new java.io.File("path/to/sample.txt"),
UploadFileConfig.builder().mimeType("text/plain").build()
);
System.out.println("Uploaded file URI: " + file.uri().orElse(""));
Go
file, err := client.Files.UploadFromPath(ctx, "path/to/sample.mp3", nil)
if err != nil {
log.Fatal(err)
}
client.Files.Delete(ctx, file.Name)
REST
curl --request "DELETE" https://generativelanguage.googleapis.com/v1beta/$name \
-H "x-goog-api-key: $GEMINI_API_KEY"
נתוני השימוש
אפשר להשתמש ב-Files API כדי להעלות קובצי מדיה ולבצע פעולות שונות בקבצים האלה. באמצעות Files API אפשר לאחסן עד 20 GB של קבצים לכל פרויקט, עם גודל מקסימלי של 2 GB לכל קובץ. הקבצים מאוחסנים למשך 48 שעות.
במהלך הזמן הזה, אפשר להשתמש ב-API כדי לקבל מטא-נתונים על הקבצים. עם זאת, אי אפשר להוריד קבצים שהמשתמשים העלו. אפשר להוריד קבצים שנוצרו על ידי מודלים, כמו סרטונים, באמצעות ה-method files.download. Files API זמין בחינם בכל האזורים שבהם Gemini API זמין.
שיטות להצגת הנחיות בקובץ
בקטע הזה מפורטות הנחיות ושיטות מומלצות לשימוש בקובצי מדיה בהנחיות ל-Gemini API.
היכולת להשתמש בסוגים שונים של נתונים בפרומפטים מאפשרת לכם גמישות רבה יותר מבחינת המשימות שאתם יכולים לבצע באמצעות Gemini API. לדוגמה, אתם יכולים לשלוח למודל תמונה של ארוחה טעימה ולבקש ממנו לכתוב פוסט קצר בבלוג על הארוחה.
| פרומפט | תשובה |
|
תכתוב פוסט קצר ומעניין לבלוג על סמך התמונה הזו. הוא צריך לכלול תיאור של הארוחה בתמונה ולספר על התהליך שלי בהכנת ארוחות מראש.
|
הכנת ארוחות מראש היא דרך מצוינת לחסוך זמן וכסף, והיא גם יכולה לעזור לכם לאכול בריא יותר. הארוחה הזו היא דוגמה מצוינת לארוחה בריאה וטעימה שאפשר להכין מראש. ארוחה שכוללת אורז מלא, ירקות צלויים ועוף טריאקי. האורז החום הוא פחמימה בריאה ומורכבת שתספק לכם אנרגיה לאורך זמן. הירקות הצלויים הם דרך מצוינת לקבל את המינון היומי של ויטמינים ומינרלים, והעוף טריאקי הוא אפשרות טעימה ועשירה בחלבון. גם המנה הזו פשוטה להכנה. פשוט מבשלים את האורז המלא, צולים את הירקות ומבשלים את עוף טריאקי. אחרי שהכול מבושל, מחלקים את האוכל לקופסאות של הכנת ארוחות ושומרים במקרר. אז תוכלו לקחת קופסה ולצאת לדרך בבקרים העמוסים! אם אתם מחפשים ארוחה בריאה וטעימה שאפשר להכין מראש, זו אופציה מצוינת. הוא מלא ברכיבים מזינים ובטעם, ואין ספק שהוא ישאיר אתכם שבעים ומרוצים. שיהיה לכם תיאבון בריא וטעים! |
אם אתם מתקשים לקבל את הפלט הרצוי מהנחיות שמשתמשות בקובצי מדיה, יש כמה אסטרטגיות שיכולות לעזור לכם לקבל את התוצאות הרצויות. בקטעים הבאים מפורטות גישות עיצוב וטיפים לפתרון בעיות שיעזרו לכם לשפר הנחיות שמשתמשות בקלט מולטי-מודאלי.
כדי לשפר את ההנחיות המולטימודאליות, כדאי לפעול לפי השיטות המומלצות הבאות:
-
עקרונות בסיסיים לעיצוב פרומפטים
- הוראות ספציפיות: חשוב לנסח הוראות ברורות ותמציתיות, שלא משאירות מקום לפרשנות מוטעית.
- להוסיף כמה דוגמאות להנחיה: כדאי להשתמש בדוגמאות ריאליסטיות כדי להמחיש את מה שרוצים להשיג.
- פירוט של התהליך: חלוקת משימות מורכבות למשימות משנה קלות לניהול, והנחיית המודל בתהליך.
- מציינים את פורמט הפלט: בהנחיה, מבקשים שהפלט יהיה בפורמט הרצוי, כמו Markdown, JSON, HTML ועוד.
- בפרומפטים עם תמונה אחת, כדאי להוסיף את התמונה לפני הטקסט: Gemini יכול לעבד קלט של תמונה וטקסט בכל סדר, אבל בפרומפטים עם תמונה אחת, יכול להיות שהביצועים יהיו טובים יותר אם התמונה (או הסרטון) תופיע לפני הפרומפט הטקסטואלי. עם זאת, בהנחיות שבהן צריך לשלב תמונות עם טקסטים בצורה הדוקה כדי שההנחיה תהיה הגיונית, כדאי להשתמש בסדר הכי טבעי.
-
פתרון בעיות בהנחיה מולטימודאלית
- אם המודל לא שואב מידע מהחלק הרלוונטי בתמונה: כדאי להוסיף רמזים לגבי ההיבטים של התמונה שמהם רוצים שההנחיה תשלוף מידע.
- אם התוצאה של המודל גנרית מדי (לא מותאמת מספיק לקלט של התמונה או הסרטון): בתחילת ההנחיה, כדאי לבקש מהמודל לתאר את התמונות או הסרטון לפני שמספקים את הוראת המשימה, או לבקש מהמודל להתייחס למה שמופיע בתמונה.
- כדי לפתור בעיות בחלק מסוים: מבקשים מהמודל לתאר את התמונה או להסביר את ההיגיון שלו, כדי להעריך את ההבנה הראשונית של המודל.
- אם הפרומפט שלכם מוביל לתוכן הזוי: נסו להפחית את הגדרת רמת האקראיות או לבקש מהמודל תיאורים קצרים יותר, כדי שהסיכוי שהוא יסיק פרטים נוספים יהיה נמוך יותר.
- כוונון הפרמטרים של הדגימה: כדאי להתנסות בהגדרות שונות של רמת האקראיות ובבחירות שונות של Top-K כדי לשנות את רמת הקריאייטיביות של המודל.
הוראות ספציפיות
ההנחיות הכי מוצלחות הן ברורות ומפורטות. אם יש לכם פלט ספציפי בראש, עדיף לכלול את הדרישה הזו בפרומפט כדי לוודא שתקבלו את הפלט הרצוי.
למשל, אם תבקשו מהמודל רק "לתאר את התמונה הזו" של לוח מידע בשדה תעופה, הוא עשוי ליצור תיאור כללי. אם אתם רוצים שהמודל ינתח את השעה והעיר מהתמונה, אתם יכולים לכלול את הבקשה הזו ישירות בהנחיה.
| פרומפט | תשובה מהמודל |
|---|---|
מה מופיע בתמונה? |
תמונה של לוח טיסות נכנסות ויוצאות בשדה תעופה. |
| פרומפט מעודכן | תשובה משופרת |
|---|---|
![]() Parse the time and city from the airport board shown in this image into a list. |
הוספת כמה דוגמאות
מודל Gemini יכול לקבל כמה קלטים ולשמש כדוגמאות כדי להבין את הפלט שאתם רוצים. הוספת הדוגמאות האלה יכולה לעזור למודל לזהות את הדפוסים ולהחיל את הקשר בין התמונות והתגובות שצוינו על הדוגמה החדשה. השיטה הזו נקראת גם למידה עם מעט דוגמאות.
בדוגמה הבאה, הפלט הראשוני כתוב בצורת משפט, והוא גם מכיל את שם המדינה (ברזיל). נניח שאתם רוצים שהפלט יהיה בפורמט או בסגנון שונים, ושהוא יכלול רק את העיר ולא את המדינה. הוספה של דוגמאות להנחיה יכולה לעזור למודל להשיב בצורה הרצויה.
| פרומפט | תשובה מהמודל |
|---|---|
![]() מזהים את העיר שבה נמצא ציון הדרך. |
האתר המפורסם הוא פסל ישו הגואל בריו דה ז'ניירו, ברזיל. |
| פרומפט מעודכן | תשובה משופרת |
|---|---|
|
מזהים את העיר שבה נמצא ציון הדרך.
|
העיר: רומא, נקודת ציון: הקולוסיאום. |
|
city: Beijing, landmark: Forbidden City |
|
city: Rio de Janeiro, landmark: Christ the Redeemer statue |
תסביר לי את זה שלב אחרי שלב
במשימות מורכבות שדורשות גם הבנה חזותית וגם חשיבה רציונלית, כדאי לחלק את המשימה לשלבים קטנים ופשוטים יותר. אפשרות נוספת היא לבקש מהמודל ישירות בבקשה לכתוב את התשובה 'שלב אחר שלב'.
| פרומפט | תשובה מהמודל |
|---|---|
מתי ייגמר לי נייר הטואלט? |
בקרוב יישארו לכם רק 3 סרטים. |
| פרומפט מעודכן | תשובה משופרת |
|---|---|
|
|
בעיות מתמטיות או סוגים אחרים של בעיות מילוליות הן דוגמאות מצוינות לשאלות שבהן כדאי לבקש מהמודל לחשוב שלב אחרי שלב.
| פרומפט | תשובה |
|---|---|
מהו האיבר הרביעי בסדרה? |
-135 |
התשובה מהמודל שגויה. כדי לשפר את התוצאה, אפשר לבקש מהמודל לנתח את הבעיה לפני שהוא עונה על ההנחיה.
| פרומפט | תשובה |
|---|---|
קודם מנתחים את הנוסחה שבתמונה. לאחר מכן, על סמך הנוסחה, ענה על השאלה 'מה האיבר הרביעי בסדרה?'. |
כדי להרחיב את התוצאה, לוחצים עליה$$ b(n) = b(n-1) * (-3) $$ $$ b(1) = 15 $$
לכן, האיבר הרביעי בסדרה הוא -405. |
התשובה של המודל נכונה. כדי שהתשובה תהיה תמציתית יותר, אפשר לבקש מהמודל לחשוב שלב אחר שלב.
| פרומפט מעודכן | תשובה משופרת |
|---|---|
מהו האיבר הרביעי בסדרה? תחשוב שלב אחרי שלב. |
האיבר הראשון הוא 15. האיבר השני הוא b(1) * (-3) = 15 * (-3) = -45. האיבר השלישי הוא b(2) * (-3) = -45 * (-3) = 135. האיבר הרביעי הוא b(3) * (-3) = 135 * (-3) = -405. |
ציון פורמט הפלט
בעיה נפוצה היא הצורך שהפלט של המודל יהיה בפורמט מסוים (למשל, Markdown, JSON, HTML), במיוחד אם הפלט של המודל צריך להיות מוזן למשימה במורד הזרם. אתם יכולים לנסות ליצור פלט בפורמט הזה על ידי מתן הנחיה למודל לעשות זאת בהנחיה. הנה שתי דוגמאות:
| פרומפט | תשובה מהמודל |
|---|---|
תנתח את הטבלה בתמונה הזו לפורמט Markdown |
```none | Subject | Status | Time | Start date | Due on | | ------- | ------ | ---- | ---------- | ------ | | Math | Done | 1.5 hrs | 11/29/2023 | 12/1/2023 | | Geography | Done | 30 min | 12/2/2023 | 12/4/2023 | | Physics | In progress | 2 hrs | 12/3/2023 | 12/5/2023 | | Biology | Not started | 6 hrs | 11/2/2016 | 12/6/2023 | ``` |
| פרומפט | תשובה מהמודל |
|---|---|
צריך לציין את כל המאפיינים הבאים: רכיבים, סוג המטבח, צמחוני או לא, בפורמט JSON |
```json { "ingredients": [ "rice", "shrimp", "clams", "mussels", "peas", "tomatoes", "onions", "garlic", "olive oil", "paprika", "salt", "pepper" ], "type of cuisine": "Spanish", "vegetarian": false } ``` |
כשמנסחים פרומפטים עם תמונה אחת, כדאי להוסיף את התמונה בהתחלה
Gemini יכול לפרש תמונה וטקסט בכל סדר בפרומפט, אבל יכול להיות שמיקום של תמונה אחת לפני פרומפט טקסטואלי יוביל לתוצאות טובות יותר. בדוגמאות הבאות, אפשר לראות שהתמונה מופיעה לפני הטקסט בכל הנחיה.
פתרון בעיות בהנחיות מולטי-מודאליות
אם לא קיבלתם תשובה מועילה, יכול להיות שתצטרכו לפתור בעיות בהנחיה. הנה כמה אסטרטגיות שאפשר לנסות.
אם המודל לא שואב מידע מהחלק הרלוונטי בתמונה
כדי לקבל תשובה ספציפית יותר, אפשר לציין אילו היבטים של התמונה רוצים שההנחיה תתייחס אליהם כדי להשיב.
| פרומפט | תשובה מהמודל |
|---|---|
כמה ימים יספיקו חיתולים לתינוק? |
החיתולים יספיקו ל-198 ימים לפני שיגמרו. |
| פרומפט מעודכן | תשובה משופרת |
|---|---|
כמה זמן יספיקו החיתולים האלה עד שאצטרך לקנות חדשים? משתמשים במשקל שמופיע על האריזה כדי לקבוע את גיל הילד או הילדה, ומשתמשים במספר הכולל של החיתולים באריזה. מחלקים את המספר הכולל במספר החיתולים שהילד או הילדה משתמשים בהם ביום. |
הקופסה מכילה 198 חיתולים. על הקופסה מצוין שהחיתולים מיועדים לילדים במשקל 10-17 ק"ג. הגיל הממוצע של ילדים בטווח המשקל הזה הוא בדרך כלל בין שנה לשנתיים. ילד בן שנתיים משתמש בדרך כלל ב-6 חיתולים ביום, ולכן החיתולים יספיקו לכ-33 ימים (198/6). |
אם הפלט של המודל גנרי מדי ולא מותאם מספיק לקלט של התמונה
כדי לעזור למודל להתאים את התשובה שלו לתמונות, כדאי לבקש ממנו לתאר את התמונות לפני שהוא מבצע את משימת החשיבה הרציונלית.
| פרומפט | תשובה מהמודל |
|---|---|
מה המשותף לתמונות האלה? |
כל ארבע התמונות הן דוגמאות לצילום נוף. |
| פרומפט מעודכן | תשובה משופרת |
|---|---|
קודם כל, תתאר בפירוט את מה שרואים בכל תמונה. מה המשותף לתמונות האלה? |
בתמונה הראשונה רואים אדם אורז מזוודה. בתמונה השנייה מוצג מסדרון ריק בקניון. בתמונה השלישית מוצג גליל נייר טואלט. בתמונה הרביעית מוצג ים סוער וכהה. המשותף לכל התמונות האלה הוא שהן דוגמאות למרחבים לימינליים. מרחבים לימינליים הם מקומות או מצבים שנמצאים בין שני מקומות או מצבים אחרים. לרוב הן מתאפיינות בתחושת חוסר ודאות או דו-משמעות. התמונה הראשונה מראה את האדם כשהוא בבית וכשהוא בטיול. התמונה השנייה מראה את המסדרון בין שתי חנויות. התמונה השלישית היא של נייר טואלט, שיכול לייצג חדר אמבטיה. חדר אמבטיה הוא מרחב מעבר בין תחום פרטי לתחום ציבורי. זה מקום שבו אנחנו מתכוננים להיכנס לעולם החיצוני או לצאת ממנו. בתמונה הרביעית מוצג הים, פעם רגוע ופעם סוער. מרחבים לימינליים יכולים להיות מרגשים ומטרידים בו-זמנית. הם יכולים להיות מקום של התחלות חדשות או מקום של סיומים. הם יכולים להיות מקום למחשבה או מקום לפעולה. |
אפשר גם לנסות לבקש מהמודל להתייחס למה שרואים בתמונה.
| פרומפט מעודכן | תשובה משופרת |
|---|---|
מה המשותף לתמונות האלה? להתייחס למה שרואים בתמונות בתשובה. |
כל התמונות קשורות לנסיעות. בתמונה הראשונה רואים אדם אורז מזוודה, בתמונה השנייה רואים מסדרון ריק בקניון, בתמונה השלישית רואים ערימה של נייר טואלט ובתמונה הרביעית רואים ים סוער וחשוך. כל התמונות האלה קשורות לנסיעות כי הן מציגות דברים שאנשים צריכים או משתמשים בהם כשהם נוסעים. התמונה הראשונה מציגה אדם אורז מזוודה, שזה משהו שאנשים עושים כשהם נוסעים לטיול. בתמונה השנייה מוצג מסדרון ריק בקניון, שהוא מקום שאנשים בדרך כלל הולכים אליו כדי לקנות דברים לנסיעות שלהם. בתמונה השלישית מוצגת ערימה של נייר טואלט, שזה משהו שאנשים משתמשים בו לעיתים קרובות כשהם נוסעים. בתמונה הרביעית מוצג ים סוער וחשוך, שזה משהו שאנשים נתקלים בו לעיתים קרובות כשהם נוסעים. |
אותם טיפים רלוונטיים גם ליצירת קריאייטיב מתמונות. בדוגמה הבאה עם הארנב, בקשה מפורשת מהמודל לכלול היבטים מהתמונה יכולה לשפר את הפלט.
| פרומפט | תשובה מהמודל |
|---|---|
תכתוב שיר על התמונה הזו? |
ארנב קטן, רך וחום, אתה מכרסם את העשב, כל כך ירוק ומתוק, |
| פרומפט מעודכן | תשובה משופרת |
|---|---|
תכתוב לי שיר תיאורי ודרמטי על התמונה הזו, ותציין את המיקום. |
ארנב קטן על הדשא הירוק, Is it the ocean blue, ארנב קטן, תגיד לי את האמת, אולי זה הגודל של הכל, ארנב קטן, מעניין על מה אתה חולם, לא משנה מה זה, ארנב קטן, |
פתרון בעיות שקשורות לחלקים בפרומפט שנכשלו
יכול להיות שקשה לדעת אם הפרומפט נכשל כי המודל לא הבין את התמונה מלכתחילה, או שהוא הבין את התמונה אבל לא ביצע את שלבי החשיבה הרציונלית הנכונים לאחר מכן. כדי להבחין בין הסיבות האלה, אפשר לבקש מהמודל לתאר את מה שמופיע בתמונה.
בדוגמה הבאה, אם המודל מציע חטיף שנראה מפתיע כשמשלבים אותו עם תה (למשל, פופקורן), אפשר קודם לפתור את הבעיה כדי לקבוע אם המודל זיהה נכון שהתמונה מכילה תה.
| פרומפט | פרומפט לפתרון בעיות |
|---|---|
איזה נשנוש אפשר להכין בדקה שיתאים לזה? |
מה רואים בתמונה? |
אסטרטגיה נוספת היא לבקש מהמודל להסביר את ההיגיון שלו. כך תוכלו לצמצם את החלק בחשיבה הרציונלית שהתקלקל, אם יש כזה.
| פרומפט | פרומפט לפתרון בעיות |
|---|---|
איזה נשנוש אפשר להכין בדקה שיתאים לזה? |
איזה נשנוש אפשר להכין בדקה שיתאים לזה? תסביר למה. |
המאמרים הבאים
- אתם יכולים לנסות לכתוב הנחיות מולטימודאליות משלכם באמצעות Google AI Studio.
- מידע על שימוש ב-Gemini Files API להעלאת קובצי מדיה ולצירוף שלהם להנחיות זמין במדריכים בנושא Vision, Audio ועיבוד מסמכים.
- הנחיות נוספות לעיצוב הנחיות, כמו כוונון פרמטרים של דגימה, זמינות בדף אסטרטגיות להנחיות.
