Gemini יכול לעבד סוגים שונים של נתוני קלט, כולל טקסט, תמונות ואודיו, בו-זמנית.
במדריך הזה מוסבר איך לעבוד עם קובצי מדיה באמצעות Files API. הפעולות הבסיסיות זהות לקובצי אודיו, תמונות, סרטונים, מסמכים וסוגי קבצים נתמכים אחרים.
בקטע המדריך לכתיבת פרומפטים עם קבצים מוסבר איך לתת הנחיות עם קבצים.
העלאת קובץ
אתם יכולים להשתמש ב-Files API כדי להעלות קובץ מדיה. תמיד צריך להשתמש ב-Files API כשהגודל הכולל של הבקשה (כולל הקבצים, פרומפט טקסטואלי, הוראות המערכת וכו') גדול מ-100MB. לקובצי PDF, המגבלה היא 50MB.
הקוד הבא מעלה קובץ ואז משתמש בקובץ בקריאה ל-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.8-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.8-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.gaos.models.interactions.AudioContent;
import com.google.genai.gaos.models.interactions.AudioContentMimeType;
import com.google.genai.gaos.models.interactions.Content;
import com.google.genai.gaos.models.interactions.CreateModelInteraction;
import com.google.genai.gaos.models.interactions.Interaction;
import com.google.genai.gaos.models.interactions.InteractionsInput;
import com.google.genai.gaos.models.interactions.Model;
import com.google.genai.gaos.models.interactions.TextContent;
import com.google.genai.gaos.models.operations.CreateInteractionRequestBody;
import com.google.genai.types.File;
import com.google.genai.types.UploadFileConfig;
import java.util.Arrays;
import java.util.List;
Client client = new Client();
File myFile =
client.files.upload(
new java.io.File("path/to/sample.mp3"),
UploadFileConfig.builder().mimeType("audio/mp3").build());
Content textContent = TextContent.builder().text("Describe this audio clip").build();
Content audioContent =
AudioContent.builder()
.uri(myFile.uri().orElse(""))
.mimeType(AudioContentMimeType.of(myFile.mimeType().orElse("audio/mp3")))
.build();
List<Content> contents = Arrays.asList(textContent, audioContent);
CreateModelInteraction params =
CreateModelInteraction.builder()
.model(Model.of("gemini-3.8-flash"))
.input(InteractionsInput.ofContent(contents))
.build();
Interaction interaction =
client.interactions.create(CreateInteractionRequestBody.of(params)).interaction().get();
System.out.println(interaction.outputText().orElse(""));
Go
package main
import (
"context"
"fmt"
"log"
"google.golang.org/genai"
"google.golang.org/genai/interactions/models/interactions"
"google.golang.org/genai/interactions/models/operations"
)
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
myFile, err := client.Files.UploadFromPath(ctx, "path/to/sample.mp3", &genai.UploadFileConfig{
MIMEType: "audio/mp3",
})
if err != nil {
log.Fatal(err)
}
res, err := client.Interactions.Create(ctx, operations.CreateInteractionRequest{
Body: operations.NewCreateInteractionRequestBody(interactions.CreateModelInteraction{
Model: interactions.Model("gemini-3.8-flash"),
Input: interactions.NewInteractionsInput([]interactions.Content{
interactions.NewContent(interactions.TextContent{
Text: "Describe this audio clip",
}),
interactions.NewContent(interactions.AudioContent{
URI: genai.Ptr(myFile.URI),
MimeType: interactions.AudioContentMimeType(myFile.MIMEType).ToPointer(),
}),
}),
}),
})
if err != nil {
log.Fatal(err)
}
if res.Interaction.OutputText != nil {
fmt.Println(*res.Interaction.OutputText)
}
}
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.8-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 myFile =
client.files.upload(
new java.io.File("path/to/sample.mp3"),
UploadFileConfig.builder().mimeType("audio/mp3").build());
String fileName = myFile.name().orElse("");
File fileMetadata = client.files.get(fileName, null);
System.out.println(fileMetadata);
Go
package main
import (
"context"
"fmt"
"log"
"google.golang.org/genai"
)
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
myFile, err := client.Files.UploadFromPath(ctx, "path/to/sample.mp3", &genai.UploadFileConfig{
MIMEType: "audio/mp3",
})
if err != nil {
log.Fatal(err)
}
fileMetadata, err := client.Files.Get(ctx, myFile.Name, nil)
if err != nil {
log.Fatal(err)
}
fmt.Println(fileMetadata)
}
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;
Client client = new Client();
System.out.println("My files:");
for (File f : client.files.list(null)) {
System.out.println(" " + f.name().orElse(""));
}
Go
package main
import (
"context"
"fmt"
"log"
"google.golang.org/genai"
)
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
fmt.Println("My files:")
for f, err := range client.Files.All(ctx) {
if err != nil {
log.Fatal(err)
}
fmt.Println(" ", f.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 myFile =
client.files.upload(
new java.io.File("path/to/sample.mp3"),
UploadFileConfig.builder().mimeType("audio/mp3").build());
client.files.delete(myFile.name().orElse(""), null);
Go
package main
import (
"context"
"log"
"google.golang.org/genai"
)
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
myFile, err := client.Files.UploadFromPath(ctx, "path/to/sample.mp3", &genai.UploadFileConfig{
MIMEType: "audio/mp3",
})
if err != nil {
log.Fatal(err)
}
if _, err := client.Files.Delete(ctx, myFile.Name, nil); err != nil {
log.Fatal(err)
}
}
REST
curl --request "DELETE" https://generativelanguage.googleapis.com/v1beta/$name \
-H "x-goog-api-key: $GEMINI_API_KEY"
נתוני השימוש
אתם יכולים להשתמש ב-Files API כדי להעלות קובצי מדיה ולעבוד איתם. Files API מאפשר לאחסן עד 20GB של קבצים בכל פרויקט, וגודל הקובץ המקסימלי הוא 2GB. הקבצים נשמרים למשך 48 שעות.
במהלך התקופה הזו, אתם יכולים להשתמש ב-API כדי לקבל מטא-נתונים על הקבצים. עם זאת, אי אפשר להוריד קבצים שהמשתמשים העלו. אתם יכולים להוריד קבצים שנוצרו על ידי מודלים, כמו סרטונים, באמצעות השיטה 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 יכול לקבל כמה קלטים, ולהשתמש בהם כדוגמאות כדי להבין את הפלט שאתם רוצים. הוספת הדוגמאות האלה יכולה לעזור למודל לזהות את הדפוסים ולהחיל את הקשר בין התמונות והתשובות שניתנו על הדוגמה החדשה. השיטה הזו נקראת גם "למידה עם מעט דוגמאות" (few-shot).
בדוגמה הבאה, הפלט הראשוני כתוב בצורת משפט, וכולל גם את המדינה (ברזיל). נניח שאתם רוצים שהפלט יהיה בפורמט או בסגנון אחר, ורק את העיר, בלי המדינה. הוספת דוגמאות להנחיה יכולה לכוון את המודל להשיב באופן הרצוי.
| הנחיה | תשובה מהמודל |
|---|---|
![]() מזהים את העיר שבה נמצאת נקודת הציון. |
האתר הוא פסל ישו הגואל בריו דה ז'ניירו, ברזיל. |
| הנחיה מעודכנת | תשובה משופרת |
|---|---|
|
מזהים את העיר שבה נמצאת נקודת הציון.
|
עיר: רומא, ציון דרך: הקולוסיאום. |
|
עיר: בייג'ינג, ציון דרך: העיר האסורה |
|
עיר: ריו דה ז'ניירו, אתר: פסל ישו הגואל |
הסבר מפורט שלב אחר שלב
במשימות מורכבות, כמו כאלה שדורשות גם הבנה חזותית וגם הסקת מסקנות, כדאי לפצל את המשימה לשלבים קטנים ופשוטים יותר. לחלופין, אפשר גם לבקש מהמודל ישירות "לחשוב צעד אחר צעד" בהנחיה.
| פרומפט | תשובה מהמודל |
|---|---|
מתי ייגמר לי נייר הטואלט? |
בקרוב יישארו לכם רק 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). |
אם הפלט מהמודל כללי מדי ולא מותאם מספיק לתמונה שהוזנה
כדי לעזור למודל להתאים את התשובה שלו לתמונות, נסו לבקש ממנו לתאר את התמונות לפני שהוא מבצע את משימת החשיבה.
| פרומפט | תשובה מהמודל |
|---|---|
מה משותף לתמונות האלה? |
כל ארבע התמונות הן דוגמאות לצילום נוף. |
| הנחיה מעודכנת | תשובה משופרת |
|---|---|
קודם, תאר בפירוט מה רואים בכל תמונה. מה משותף לתמונות האלה? |
בתמונה הראשונה רואים אדם שאורז מזוודה. בתמונה השנייה רואים מסדרון ריק בקניון. בתמונה השלישית מוצג גליל של נייר טואלט. בתמונה הרביעית רואים ים חשוך וסוער. המשותף לתמונות האלה הוא שכולן דוגמאות למרחבים לימינליים. מרחבים לימינליים הם מקומות או מצבים שנמצאים בין שני מקומות או מצבים אחרים. לרוב, הן מאופיינות בתחושה של חוסר ודאות או עמימות. בתמונה הראשונה רואים את האדם בבית ובטיול. בתמונה השנייה רואים את המסדרון בין שתי החנויות. בתמונה השלישית רואים נייר טואלט, שיכול לייצג חדר שירותים. חדר הרחצה הוא מרחב מעבר בין התחום הפרטי לציבורי. זה מקום שבו אנחנו מתכוננים להיכנס לעולם שבחוץ או לצאת ממנו. בתמונה הרביעית רואים את הים במצב ביניים בין רגוע לסוער. מרחבים לימינליים יכולים להיות גם מרגשים וגם מטרידים. הם יכולים להיות מקום של התחלה חדשה או מקום של סוף. הם יכולים להיות מקום של הרהור או מקום של פעולה. |
אתם יכולים גם לנסות לבקש מהמודל באופן מפורש להתייחס למה שמופיע בתמונה.
| הנחיה מעודכנת | תשובה משופרת |
|---|---|
מה משותף לתמונות האלה? התייחסו למה שמופיע בתמונות בתשובה שלכם. |
כל התמונות קשורות לנסיעות. בתמונה הראשונה רואים אדם אורז מזוודה, בתמונה השנייה רואים מסדרון ריק בקניון, בתמונה השלישית רואים ערימה של נייר טואלט ובתמונה הרביעית רואים ים חשוך וסוער. כל התמונות האלה קשורות לנסיעות כי הן מציגות דברים שאנשים צריכים או משתמשים בהם כשהם נוסעים. בתמונה הראשונה רואים אדם שאורז מזוודה, וזה משהו שאנשים עושים כשהם יוצאים לטיול. בתמונה השנייה מוצג מסדרון ריק בקניון, מקום שאנשים מגיעים אליו לעיתים קרובות כדי לקנות דברים לנסיעות שלהם. בתמונה השלישית רואים ערימה של נייר טואלט, פריט שאנשים משתמשים בו לעיתים קרובות כשהם בנסיעות. בתמונה הרביעית רואים ים סוער וקודר, שזה משהו שאנשים נתקלים בו לפעמים כשהם מטיילים. |
הטיפים האלה רלוונטיים גם ליצירת תמונות. בדוגמה הבאה עם הארנב, בקשה מפורשת מהמודל לכלול היבטים מהתמונה יכולה לשפר את הפלט.
| פרומפט | תשובה מהמודל |
|---|---|
אתה יכול לכתוב לי שיר על התמונה הזו? |
ארנב קטן, רך וחום, אתה מנשנש את הדשא, כל כך ירוק ומתוק, |
| הנחיה מעודכנת | תשובה משופרת |
|---|---|
אתה יכול לכתוב לי שיר תיאורי ודרמטי על התמונה הזו ולכלול את המיקום? |
ארנב קטן על הדשא, האם זה כחול האוקיינוס, ארנבון קטן, ספר לי, אולי זה בגלל המרחבים העצומים, ארנבון קטן, מעניין על מה אתה חולם, לא משנה מה זה יהיה, ארנבון קטן, |
פתרון בעיות: איזה חלק בהנחיה נכשל
לפעמים קשה לדעת אם הנחיה נכשלה כי המודל לא הבין את התמונה מלכתחילה, או שהוא הבין את התמונה אבל לא ביצע את שלבי החשיבה הנכונים לאחר מכן. כדי להבין מה הסיבה, בקשו מהמודל לתאר מה יש בתמונה.
בדוגמה הבאה, אם המודל מגיב עם חטיף שנראה מפתיע בשילוב עם תה (למשל, פופקורן), קודם אפשר לפתור את הבעיה כדי לקבוע אם המודל זיהה נכון שהתמונה מכילה תה.
| פרומפט | הנחיה לפתרון בעיות |
|---|---|
איזה חטיף אפשר להכין בדקה אחת שיתאים לזה? |
תארו מה מופיע בתמונה. |
אסטרטגיה נוספת היא לבקש מהמודל להסביר את הנימוקים שלו. כך תוכלו לזהות איזה חלק בתהליך החשיבה לא עבד, אם בכלל.
| פרומפט | הנחיה לפתרון בעיות |
|---|---|
איזה חטיף אפשר להכין בדקה אחת שיתאים לזה? |
איזה חטיף אפשר להכין בדקה אחת שיתאים לזה? נשמח לשמוע למה. |
המאמרים הבאים
- נסו לכתוב הנחיות מולטי-מודאליות משלכם באמצעות Google AI Studio.
- כדי לקבל מידע על השימוש ב-Gemini Files API להעלאת קובצי מדיה והכללה שלהם בהנחיות, עיינו במדריכים בנושא Vision, אודיו ועיבוד מסמכים.
- במאמר אסטרטגיות להנחיות מוסבר איך לעצב הנחיות, למשל איך לשנות את פרמטרי הדגימה.
