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

استراحت

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، تأیید کنید که میانای برنامه‌سازی کاربردی فایل بارگذاری‌شده را باموفقیت ذخیره کرده است و فراداده آن را دریافت کنید.

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

استراحت

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 برای بارگذاری و تعامل با فایل‌های رسانه‌ای استفاده کنید. با Files API می‌توانید تا ۲۰ گیگابایت فایل برای هر پروژه ذخیره کنید و حداکثر اندازه هر فایل ۲ گیگابایت است. فایل‌ها به‌مدت ۴۸ ساعت ذخیره می‌شوند.

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

استراتژی‌های پیام‌واره فایل

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

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

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

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


بیسکوئیت

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

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

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

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

به افتخار آماده‌سازی غذاهای سالم و خوشمزه!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    کولوسئوم

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

    شهر ممنوعه

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

    شهر ممنوعه

    city: Rio de Janeiro, landmark: Christ the Redeemer statue

    تفکیک گام‌به‌گام موضوع

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

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

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

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

    پیام‌واره به‌روزشده پاسخ بهبودیافته
    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(1) برابر با ۱۵ است، بنابراین آن را در فرمول جایگزین می‌کنیم:

      $$ 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، صدا، و پردازش سند مراجعه کنید.
    • برای راهنمایی بیشتر درباره طراحی پیام‌واره، مثل تنظیم پارامترهای نمونه‌گیری، به صفحه راهبردهای پیام‌واره مراجعه کنید.