Files API

‫Gemini می‌تواند انواع مختلفی از داده‌های ورودی، ازجمله نوشتار، تصویر، و صدا را به‌طور هم‌زمان پردازش کند.

این راهنما نحوه کار با فایل‌های رسانه‌ای را بااستفاده از Files API نشان می‌دهد. عملیات پایه برای فایل‌های صوتی، تصاویر، ویدیوها، اسناد، و دیگر انواع فایل پشتیبانی‌شده یکسان است.

برای راهنمایی درباره پیام‌واره‌های فایل، بخش راهنمای پیام‌واره‌های فایل را بررسی کنید.

بارگذاری فایل

می‌توانید از Files API برای بارگذاری فایل رسانه استفاده کنید. همیشه وقتی اندازه کل درخواست (شامل فایل‌ها، پیام‌واره نوشتاری، دستورالعمل‌های سیستم، و غیره) بزرگ‌تر از ۱۰۰ مگابایت است، از Files API استفاده کنید. برای فایل‌های PDF، حد مجاز ۵۰ مگابایت است.

کد زیر فایلی را بارگذاری می‌کند و سپس از آن فایل در تماسی با 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();

جاوا

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(""));

رفتن

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

دریافت فراداده برای فایل

می‌توانید با فراخوانی files.get، تأیید کنید که API فایل بارگذاری‌شده را باموفقیت ذخیره کرده است و فراداده آن را دریافت کنید.

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();

جاوا

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);

رفتن

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)
}

استراحت

# 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();

جاوا

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(""));
}

رفتن

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"

حذف فایل‌های بارگذاری‌شده

فایل‌ها پس‌از ۴۸ ساعت به‌طور خودکار حذف می‌شوند. همچنین می‌توانید فایل بارگذاری‌شده را به‌صورت دستی حذف کنید:

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();

جاوا

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);

رفتن

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)
    }
}

استراحت

curl --request "DELETE" https://generativelanguage.googleapis.com/v1beta/$name \
  -H "x-goog-api-key: $GEMINI_API_KEY"

اطلاعات استفاده

می‌توانید از «میانای برنامه‌سازی کاربردی فایل‌ها» برای بارگذاری و تعامل با فایل‌های رسانه‌ای استفاده کنید. ‫Files API به شما امکان می‌دهد تا ۲۰ گیگابایت فایل برای هر پروژه ذخیره کنید، با حداکثر اندازه ۲ گیگابایت برای هر فایل. فایل‌ها به‌مدت ۴۸ ساعت ذخیره می‌شوند.

در این مدت، می‌توانید از API برای دریافت فراداده درباره فایل‌ها استفاده کنید. اما نمی‌توانید فایل‌های بارگذاری‌شده توسط کاربر را بارگیری کنید. می‌توانید فایل‌های تولیدشده توسط مدل‌ها، مانند ویدیوها، را بااستفاده از روش files.download بارگیری کنید. ‫Files API در همه مناطقی که Gemini API دردسترس است، بدون هزینه دردسترس است.

استراتژی‌های درخواست فایل

این بخش راهنمایی و روال‌های مطلوب را برای استفاده از فایل‌های رسانه‌ای با پیام‌واره‌ها برای Gemini API ارائه می‌دهد.

امکان استفاده از انواع مختلف داده در پیام‌واره‌ها به شما انعطاف‌پذیری بیشتری درخصوص کارهایی که می‌توانید با Gemini API انجام دهید می‌دهد. برای مثال، می‌توانید عکس غذایی خوشمزه را به مدل ارسال کنید و از آن بخواهید وبلاگ کوتاهی درباره آن غذا بنویسد.

پیام‌واره پاسخ

پست وبلاگ کوتاه و جذابی براساس این تصویر بنویس. باید شرحی از وعده غذایی در عکس ارائه دهد و درباره سفر من در آماده‌سازی وعده‌های غذایی صحبت کند.


بیسکوئیت

آماده‌سازی غذا راهی عالی برای صرفه‌جویی در زمان و هزینه است و همچنین می‌تواند به شما کمک کند تا سالم‌تر غذا بخورید. این وعده غذایی نمونه‌ای عالی از یک وعده غذایی سالم و خوشمزه است که می‌توان آن را ازقبل آماده کرد.

این غذا شامل برنج قهوه‌ای، سبزیجات برشته، و مرغ تریاکی است. برنج قهوه‌ای کربوهیدراتی سالم و پیچیده است که انرژی پایداری به شما می‌دهد. سبزیجات برشته‌شده راهی عالی برای دریافت دوز روزانه ویتامین‌ها و مواد معدنی است و مرغ تریاکی گزینه‌ای خوشمزه و غنی از پروتئین است.

این غذا نیز به‌راحتی آماده می‌شود. کافی است برنج قهوه‌ای را بپزید، سبزیجات را کباب کنید، و مرغ تریاکی را بپزید. پس‌از پختن همه مواد، آن‌ها را در ظروف آماده‌سازی وعده غذایی بریزید و در یخچال نگهداری کنید. سپس می‌توانید ظرفی را بردارید و در صبح‌های شلوغ آماده شوید!

اگر دنبال غذایی سالم و خوشمزه هستید که بتوانید ازقبل آماده کنید، این غذا گزینه عالی‌ای است. این غذا سرشار از مواد مغذی و طعم است و مطمئناً شما را سیر و راضی نگه می‌دارد.

این هم از آماده‌سازی غذای سالم و خوشمزه!

اگر برای دریافت خروجی موردنظرتان از پیام‌واره‌هایی که از فایل‌های رسانه‌ای استفاده می‌کنند مشکل دارید، چند راهبرد وجود دارد که می‌تواند به شما کمک کند نتایج موردنظرتان را دریافت کنید. بخش‌های زیر رویکردهای طراحی و نکات عیب‌یابی را برای بهبود پیام‌واره‌هایی که از ورودی چندحالتی استفاده می‌کنند ارائه می‌دهند.

با دنبال کردن این روال‌های مطلوب می‌توانید پیام‌واره‌های چندحالته‌تان را بهبود دهید:

  • اصول طراحی پیام‌واره

    • در دستورالعمل‌هایتان دقیق باشید: دستورالعمل‌های واضح و مختصری بنویسید که کمترین فضا را برای تفسیر نادرست باقی بگذارد.
    • چند نمونه به پیام‌واره‌تان اضافه کنید: از نمونه‌های واقع‌گرایانه چندنمونه‌ای برای نشان دادن آنچه می‌خواهید به‌دست آورید استفاده کنید.
    • تقسیم کردن به مراحل کوچک‌تر: تکالیف پیچیده را به زیرهدف‌های قابل‌مدیریت تقسیم کنید و مدل را درطول فرایند راهنمایی کنید.
    • قالب برونداد را مشخص کنید: در پیام‌واره‌تان، درخواست کنید که برونداد در قالب موردنظرتان باشد، مثلاً Markdown،‏ JSON،‏ HTML، و غیره.
    • برای پیام‌واره‌های تک‌تصویری، تصویر را در اولویت قرار دهید: اگرچه Gemini می‌تواند ورودی‌های تصویر و نوشتار را به هر ترتیبی مدیریت کند، برای پیام‌واره‌های حاوی یک تصویر، اگر آن تصویر (یا ویدیو) قبل‌از پیام‌واره نوشتاری قرار گیرد، ممکن است عملکرد بهتری داشته باشد. بااین‌حال، برای پیام‌واره‌هایی که نیاز دارند تصاویر به‌شدت با نوشتار درهم‌آمیخته شوند تا معنا پیدا کنند، از هر ترتیبی که طبیعی‌تر است استفاده کنید.
  • عیب‌یابی پیام‌واره چندحالته

    • اگر مدل اطلاعات را از بخش مربوطه تصویر استخراج نمی‌کند: نکته‌هایی درباره جنبه‌های تصویر که می‌خواهید پیام‌واره از آن‌ها اطلاعات استخراج کند ارائه دهید.
    • اگر خروجی مدل بیش‌ازحد کلی است (به‌اندازه کافی با ورودی تصویر/ویدیو مطابقت ندارد): در ابتدای پیام‌واره، قبل‌از ارائه دستورالعمل تکلیف، از مدل بخواهید تصویر(ها) یا ویدیو را توصیف کند، یا از مدل بخواهید به آنچه در تصویر است اشاره کند.
    • برای عیب‌یابی اینکه کدام بخش ناموفق بوده است: از مدل بخواهید تصویر را توصیف کند یا استدلال خود را توضیح دهد تا درک اولیه مدل را بسنجید.
    • اگر پیام‌واره شما منجر به محتوای توهمی می‌شود: تنظیمات دما را کاهش دهید یا از مدل بخواهید توضیحات کوتاه‌تری ارائه دهد تا احتمال برون‌یابی جزئیات اضافی کاهش یابد.
    • تنظیم پارامترهای نمونه‌برداری: با تنظیمات مختلف دما و انتخاب‌های k برتر آزمایش کنید تا خلاقیت مدل را تنظیم کنید.

در دستورالعمل‌هایتان دقیق باشید

پیام‌واره‌ها زمانی بیشترین موفقیت را دارند که واضح و دقیق باشند. اگر برونداد خاصی مدنظرتان است، بهتر است آن الزام را در پیام‌واره بگنجانید تا مطمئن شوید برونداد موردنظرتان را دریافت می‌کنید.

برای این تصویر از تابلوی فرودگاه، اگر از مدل بخواهید که «این تصویر را شرح بده»، ممکن است شرح کلی‌ای تولید کند. اگر نیاز دارید که مدل زمان و شهر را از تصویر تجزیه کند، می‌توانید این درخواست را مستقیماً در پیام‌واره‌تان بگنجانید.

پیام‌واره پاسخ مدل

این تصویر را توصیف کن.

تصویر تابلوی ورود و خروج فرودگاه را نشان می‌دهد.

پیام‌واره به‌روزشده پاسخ بهبودیافته
جدول زمانی سفر

زمان و شهر را از تابلوی فرودگاه نشان‌داده‌شده در این تصویر تجزیه کن و به‌صورت فهرست ارائه بده.

  • ۱۰:۵۰ مسکو
  • ۱۱:۰۵ ادینبورگ
  • ۱۱:۰۵ لندن
  • ۱۱:۱۰ بخارست
  • ۱۱:۳۰ کی‌یف
  • ‫۱۱:۳۵ دوبلین
  • ۱۱:۴۵ میدلندز شرقی
  • ‫۱۲:۱۵ صوفیه
  • ۱۲:۳۰ لندن
  • ۱۲:۳۰ نیوکاسل
  • ‫۱۲:۴۰ سن پترزبورگ
  • ۱۲:۴۰ لندن
  • ۱۲:۴۵ منچستر
  • چند مثال اضافه کنید

    مدل Gemini می‌تواند چندین ورودی را بپذیرد و از آن‌ها به‌عنوان نمونه‌هایی برای درک خروجی موردنظر شما استفاده کند. افزودن این نمونه‌ها می‌تواند به مدل کمک کند الگوها را شناسایی کند و رابطه بین تصاویر و پاسخ‌های ارائه‌شده را در نمونه جدید اعمال کند. این روش «یادگیری با چند نمونه» نیز نامیده می‌شود.

    در مثال زیر، برونداد اولیه به‌صورت جمله نوشته شده است، و همچنین حاوی کشور (برزیل) است. فرض کنید می‌خواهید برونداد در قالب یا سبک دیگری باشد و فقط شهر را می‌خواهید، نه کشور. افزودن نمونه‌های few-shot به پیام‌واره می‌تواند مدل را هدایت کند تا به روشی که می‌خواهید پاسخ دهد.

    پیام‌واره پاسخ مدل
    جدول زمانی سفر

    شهر را به‌همراه مکان دیدنی تعیین کنید.

    این مکان دیدنی تندیس مسیح رهایی‌بخش در ریو دو ژانیرو، برزیل است.

    پیام‌واره به‌روزشده پاسخ بهبودیافته

    شهر را همراه با مکان دیدنی تعیین کنید.

    کولوسئوم

    شهر: رم، مکان دیدنی: کولوسئوم.

    شهر ممنوعه

    شهر: پکن، نشانگر مکانی: شهر ممنوعه

    شهر-ممنوعه

    شهر: ریو دو ژانیرو، جاذبه گردشگری: تندیس مسیح رهایی‌بخش

    گام‌به‌گام آن را تجزیه‌وتحلیل کنید

    برای کارهای پیچیده، مانند کارهایی که هم به درک بصری و هم به استدلال نیاز دارند، تقسیم کردن کار به مراحل کوچک‌تر و ساده‌تر می‌تواند مفید باشد. به‌جای آن، اگر مستقیماً از مدل بخواهید در پیام‌واره‌تان «گام‌به‌گام فکر کند»، می‌تواند مؤثر باشد.

    پیام‌واره پاسخ مدل

    چه زمانی دستمال توالت من تمام می‌شود؟

    به‌زودی فقط ۳ رول باقی می‌ماند.

    پیام‌واره به‌روزشده پاسخ بهبودیافته
    1. ابتدا تعداد رول‌های دستمال توالت را در این تصویر بشمار.
    2. سپس، تعیین کنید که یک فرد معمولی در روز چقدر دستمال توالت استفاده می‌کند.
    3. محاسبه کن این رول‌های دستمال توالت چقدر دوام می‌آورند.
    1. در این تصویر ۳ رول دستمال توالت وجود دارد.
    2. یک فرد معمولی روزانه حدود ۲۰ برگ دستمال توالت استفاده می‌کند.
    3. اگر هر رول حاوی ۲۰۰ برگه باشد، هر رول حدود ۱۰ روز دوام خواهد داشت. بنابراین، ۳ رول حدود یک ماه دوام خواهد داشت.

    مسائل ریاضی یا انواع دیگر مسائل کلامی گزینه‌های عالی برای درخواست از مدل هستند تا گام‌به‌گام فکر کند.

    پیام‌واره پاسخ

    جمله چهارم در این دنباله چیست؟

    -135

    پاسخ مدل نادرست است. یکی از راه‌های بهبود این است که از مدل بخواهید قبل‌از پاسخ دادن به پیام‌واره، مسئله را تجزیه کند.

    پیام‌واره پاسخ

    ابتدا فرمول را در تصویر تجزیه کنید.

    سپس براساس فرمول، به این سؤال پاسخ بده: «جمله چهارم در این دنباله چیست؟».

    برای ازهم باز کردن نتیجه کلیک کنید

    $$ b(n) = b(n-1) * (-3) $$

    $$ b(1) = 15 $$

    1. ‫n = 4 را در فرمول جایگزین کنید:

      $$ b(4) = b(4-1) * (-3) $$

      $$ b(4) = b(3) * (-3) $$

    2. مقدار b(3) را نمی‌دانیم، بنابراین n = 3 را در فرمول جایگزین می‌کنیم:

      $$ b(3) = b(3-1) * (-3) $$

      $$ b(3) = b(2) * (-3) $$

    3. مقدار b(2) را نمی‌دانیم، بنابراین n = 2 را در فرمول جایگزین می‌کنیم:

      $$ b(2) = b(2-1) * (-3) $$

      $$ b(2) = b(1) * (-3) $$

    4. می‌دانیم مقدار b(۱) برابر با ۱۵ است، بنابراین آن را در فرمول جای‌گذاری می‌کنیم:

      $$ b(2) = 15 * (-3) $$

      $$ b(2) = -45 $$

    5. اکنون که مقدار b(2) را می‌دانیم، آن را در فرمول b(3) جایگزین می‌کنیم:

      $$ b(3) = b(2) * (-3) $$

      $$ b(3) = -45 * (-3) $$

      $$ b(3) = 135 $$

    6. اکنون که مقدار b(3) را می‌دانیم، آن را در فرمول b(4) جایگزین می‌کنیم:

      $$ b(4) = b(3) * (-3) $$

      $$ b(4) = 135 * (-3) $$

      $$ b(4) = -405 $$

    بنابراین، جمله چهارم در دنباله ۴۰۵- است.

    پاسخ این مدل درست است - اکنون برای اینکه پاسخ را حتی ساده‌تر کنید، می‌توانید از مدل بخواهید گام‌به‌گام فکر کند.

    پیام‌واره به‌روزشده پاسخ بهبودیافته

    چهارمین جمله در این دنباله چیست؟ گام‌به‌گام فکر کن.

    اولین عبارت ۱۵ است.

    عبارت دوم b(1) * (-3) = 15 * (-3) = -45 است.

    عبارت سوم b(2) * (-3) = -45 * (-3) = 135 است.

    عبارت چهارم برابر است با b(3) * (-3) = 135 * (-3) = -405.

    قالب خروجی را مشخص کنید

    یک مشکل رایج این است که خروجی مدل باید در قالب خاصی باشد (مثلاً Markdown،‏ JSON،‏ HTML)، به‌ویژه اگر خروجی مدل باید توسط یک تکلیف پایین‌دستی دریافت شود. می‌توانید با دستور دادن به مدل در پیام‌واره، برونداد را در آن قالب تولید کنید. در زیر دو نمونه آورده شده است:

    پیام‌واره پاسخ مدل

    جدول این تصویر را به قالب Markdown تجزیه کن

    ```none | موضوع | وضعیت | زمان | تاریخ شروع | سررسید | | ------- | ------ | ---- | ---------- | ------ | | ریاضی | انجام‌شده | ۱٫۵ ساعت | ۲۰۲۳/۱۱/۲۹ | ۲۰۲۳/۱۲/۱ | | جغرافیا | انجام‌شده | ۳۰ دقیقه | ۲۰۲۳/۱۲/۲ | ۲۰۲۳/۱۲/۴ | | فیزیک | درحال انجام | ۲ ساعت | ۲۰۲۳/۱۲/۳ | ۲۰۲۳/۱۲/۵ | | زیست‌شناسی | شروع‌نشده | ۶ ساعت | ۲۰۱۶/۱۱/۲ | ۲۰۲۳/۱۲/۶ | ```
    پیام‌واره پاسخ مدل

    فهرستی از همه مشخصه‌های زیر ارائه دهید:

    مواد تشکیل‌دهنده، نوع غذا، گیاهی بودن یا نبودن، در قالب JSON

    ```json { "ingredients": [ "rice", "shrimp", "clams", "mussels", "peas", "tomatoes", "onions", "garlic", "olive oil", "paprika", "salt", "pepper" ], "type of cuisine": "Spanish", "vegetarian": false } ```

    برای پیام‌واره‌های تک‌تصویری، تصویرتان را در اولویت قرار دهید

    درحالی‌که Gemini می‌تواند تصویر و نوشتار را با هر ترتیبی در پیام‌واره تفسیر کند، قرار دادن یک تصویر قبل‌از پیام‌واره نوشتاری ممکن است به نتایج بهتری منجر شود. در نمونه‌های زیر، متوجه خواهید شد که تصویر قبل‌از نوشتار در هر پیام‌واره می‌آید.

    عیب‌یابی پیام‌واره چندحالته

    اگر پاسخ مفیدی دریافت نمی‌کنید، ممکن است لازم باشد پیام‌واره‌تان را عیب‌یابی کنید. در اینجا چند استراتژی وجود دارد که می‌توانید امتحان کنید.

    اگر مدل اطلاعات را از بخش مربوطه تصویر استخراج نمی‌کند

    برای دریافت پاسخی دقیق‌تر، می‌توانید مشخص کنید که پیام‌واره از کدام جنبه‌های تصویر اطلاعات استخراج کند تا پاسخ خود را براساس آن ارائه دهد.

    پیام‌واره پاسخ مدل

    این پوشک‌ها برای چند روز نوزاد کافی است؟

    این پوشک‌ها ۱۹۸ روز دوام می‌آورند و بعد تمام می‌شوند.

    پیام‌واره به‌روزشده پاسخ بهبودیافته

    این پوشک‌ها تا کی دوام می‌آورند؟

    از وزن نشان‌داده‌شده روی جعبه برای تعیین سن کودک استفاده کنید و از تعداد کل پوشک‌های موجود در جعبه استفاده کنید.

    تعداد کل را بر تعداد پوشک‌هایی که کودک در روز استفاده می‌کند تقسیم کنید.

    این جعبه حاوی ۱۹۸ پوشک است. روی جعبه نوشته شده است که پوشک‌ها برای کودکانی با وزن ۲۲ تا ۳۷ پوند است.

    کودک متوسط در این محدوده وزنی احتمالاً بین ۱ تا ۲ سال دارد.

    یک کودک ۲ ساله معمولاً روزانه ۶ پوشک مصرف می‌کند، بنابراین پوشک‌ها حدود ۳۳ روز (۱۹۸/۶) دوام خواهند داشت.

    اگر برونداد مدل بیش‌ازحد کلی است و به‌اندازه کافی با ورودی تصویر مطابقت ندارد

    برای کمک به مدل در سفارشی‌سازی پاسخ خود برای تصویر(ها)، از آن بخواهید تصویر(ها) را قبل‌از انجام وظیفه استدلال خود توصیف کند.

    پیام‌واره پاسخ مدل

    چه چیزی بین این تصاویر مشترک است؟

    هر چهار تصویر نمونه‌هایی از عکاسی منظره هستند.

    پیام‌واره به‌روزشده پاسخ بهبودیافته

    ابتدا آنچه را در هر تصویر است با جزئیات توصیف کن. این تصاویر چه وجه مشترکی دارند؟

    تصویر اول شخصی را نشان می‌دهد که درحال بستن چمدان است. تصویر دوم راهروی خالی در مرکز خریدی را نشان می‌دهد. تصویر سوم یک رول دستمال توالت را نشان می‌دهد. تصویر چهارم دریایی تاریک و طوفانی را نشان می‌دهد.

    وجه مشترک بین این تصاویر این است که همه آن‌ها نمونه‌هایی از فضاهای آستانه‌ای هستند. فضاهای آستانه‌ای مکان‌ها یا موقعیت‌هایی هستند که بین دو مکان یا موقعیت دیگر قرار دارند. این احساسات اغلب با حس عدم اطمینان یا ابهام همراه هستند.

    تصویر اول فردی را نشان می‌دهد که بین خانه و سفر است. تصویر دوم راهروی بین دو فروشگاه را نشان می‌دهد. تصویر سوم دستمال توالت است که می‌تواند نشان‌دهنده حمام باشد. حمام فضایی انتقالی بین قلمروهای خصوصی و عمومی است. اینجا جایی است که خودمان را برای ورود به دنیای بیرون یا خروج از آن آماده می‌کنیم.

    تصویر چهارم دریا را در حالت بین آرام و طوفانی نشان می‌دهد.

    فضاهای لیمینال می‌توانند هم هیجان‌انگیز و هم نگران‌کننده باشند. می‌تواند مکانی برای شروعی جدید یا مکانی برای پایان باشد. این مکان‌ها می‌توانند جایی برای تأمل یا جایی برای اقدام باشند.

    همچنین می‌توانید صریحاً از مدل بخواهید به آنچه در تصویر است ارجاع دهد.

    پیام‌واره به‌روزشده پاسخ بهبودیافته

    چه چیزی بین این تصاویر مشترک است؟ به آنچه در تصاویر پاسخ شما وجود دارد مراجعه کنید.

    همه تصاویر مربوط به سفر است. تصویر اول فردی را نشان می‌دهد که چمدانش را می‌بندد، تصویر دوم راهروی خالی در مرکز خرید را نشان می‌دهد، تصویر سوم دسته‌ای از دستمال توالت را نشان می‌دهد، و تصویر چهارم دریایی تاریک و طوفانی را نشان می‌دهد.

    این تصاویر همگی مربوط به سفر هستند زیرا همه آن‌ها چیزهایی هستند که مردم هنگام سفر به آن‌ها نیاز دارند یا از آن‌ها استفاده می‌کنند. تصویر اول فردی را نشان می‌دهد که درحال بستن چمدان است، کاری که مردم هنگام رفتن به سفر انجام می‌دهند. تصویر دوم راهروی خالی یک مرکز خرید را نشان می‌دهد، جایی که مردم اغلب برای خرید وسایل سفرشان به آنجا می‌روند. تصویر سوم یک بسته دستمال توالت را نشان می‌دهد که چیزی است که مردم اغلب هنگام سفر از آن استفاده می‌کنند. تصویر چهارم دریایی تاریک و طوفانی را نشان می‌دهد که چیزی است که مردم اغلب هنگام سفر با آن مواجه می‌شوند.

    همین نکته‌ها برای خروجی خلاقانه از تصاویر نیز کاربرد دارد. در مثال زیر با خرگوش، درخواست صریح از مدل برای گنجاندن جنبه‌هایی از تصویر می‌تواند خروجی را بهبود بخشد.

    پیام‌واره پاسخ مدل

    می‌توانی درباره این تصویر شعری بنویسی؟

    خرگوش کوچولو، خیلی نرم و قهوه‌ای،
    در مزرعه بالا و پایین می‌پرد.
    گوش‌هایت خیلی بلند، دمت خیلی کوچک،
    تو بامزه‌ترین موجود در میان همه هستی.

    علف‌های سبز و شیرین را می‌جوی،
    و وقتی مرا می‌بینی، می‌پری و می‌روی.
    اما من همیشه دوستت خواهم بود،
    خرگوش کوچولو، تا آخر آخرش.

    پیام‌واره به‌روزشده پاسخ بهبودیافته

    می‌توانی یک شعر توصیفی و دراماتیک درباره این تصویر برایم بنویسی و مکان را هم در آن بگنجانی؟

    خرگوش کوچولو روی چمن،
    گوش‌هایش بلند و تیز.
    آنجا چه می‌بینی،
    در دوردست، جایی که خیره شده‌ای؟

    آیا آبی اقیانوس است،
    که در رنگ خورشید می‌درخشد؟
    یا موج‌هایی که می‌شکنند و می‌غرند،
    ریتمی که آن را می‌پرستید؟

    خرگوش کوچولو، راستش را به من بگو،
    چه چیزی توجهت را این‌قدر جلب کرده است؟
    آیا نسیم نمکین است،
    یا صدای فریاد مرغان دریایی که لذت‌بخش است؟

    شاید به‌خاطر وسعت همه چیز است،
    دنیایی که هم بزرگ است و هم کوچک.
    جایی که رؤیاها می‌توانند پرسه بزنند،
    و ماجراجویی‌ها می‌توانند کاشته شوند.

    خرگوش کوچولو، نمی‌دانم چه خوابی می‌بینی،
    وقتی که روی چمن می‌نشینی، خیلی آرام.
    آیا مشتاق کاوش در اعماق هستید،
    یا ماندن در خشکی، جایی که می‌توانید بپرید؟

    خرگوش کوچولو، هرچه که هست،
    آن جرقه شگفتی را روشن نگه دار.
    زیرا در رؤیاها و آرزوهایتان،
    دنیایی نهفته است که منتظر آفرینش شما است.

    عیب‌یابی کردن اینکه کدام بخش از پیام‌واره ناموفق بوده است

    تشخیص اینکه پیام‌واره‌ای به‌دلیل اینکه مدل در ابتدا تصویر را درک نکرده است ناموفق بوده است یا اینکه تصویر را درک کرده است اما پس‌از آن مراحل استدلال صحیح را انجام نداده است، می‌تواند دشوار باشد. برای رفع ابهام بین این دلایل، از مدل بخواهید آنچه را در تصویر است توصیف کند.

    در مثال زیر، اگر مدل با میان‌وعده‌ای پاسخ دهد که در ترکیب با چای تعجب‌آور به‌نظر می‌رسد (مثلاً پاپ‌کورن)، می‌توانید ابتدا عیب‌یابی کنید تا مشخص شود که آیا مدل به‌درستی تشخیص داده است که تصویر حاوی چای است یا نه.

    پیام‌واره درخواست عیب‌یابی

    چه میان‌وعده‌ای را می‌توانم در ۱ دقیقه درست کنم که با این خوب باشد؟

    محتوای این تصویر را توصیف کن.

    راهبرد دیگر این است که از مدل بخواهید استدلال خود را توضیح دهد. این کار می‌تواند به شما کمک کند بخش‌هایی از استدلال را که احتمالاً دچار مشکل شده‌اند محدود کنید.

    پیام‌واره درخواست عیب‌یابی

    چه میان‌وعده‌ای را می‌توانم در ۱ دقیقه درست کنم که با این خوب باشد؟

    چه میان‌وعده‌ای می‌توانم در ۱ دقیقه درست کنم که با این خوب باشد؟ لطفاً دلیل آن را توضیح دهید.

    قدم بعدی چیست

    • بااستفاده از Google AI Studio، پیام‌واره‌های چندحالته خودتان را بنویسید.
    • برای کسب اطلاعات درباره استفاده از Gemini Files API برای بارگذاری فایل‌های رسانه‌ای و افزودن آن‌ها به پیام‌واره‌هایتان، راهنمای Vision، صوت، و پردازش سند را ببینید.
    • برای راهنمایی بیشتر درباره طراحی پیام‌واره، مثل تنظیم پارامترهای نمونه‌گیری، به صفحه راهبردهای پیام‌واره مراجعه کنید.