واجهة برمجة تطبيقات الملفات

يمكن لـ Gemini معالجة أنواع مختلفة من بيانات الإدخال، بما في ذلك النصوص والصور والصوت، في الوقت نفسه.

يوضّح لك هذا الدليل كيفية التعامل مع ملفات الوسائط باستخدام Files API. العمليات الأساسية هي نفسها لملفات الصوت والصور ومقاطع الفيديو والمستندات وأنواع الملفات الأخرى المدعومة.

للحصول على إرشادات حول الطلبات المتعلقة بالملفات، يُرجى الاطّلاع على قسم دليل الطلبات المتعلقة بالملفات.

تحميل ملف

يمكنك استخدام Files API لتحميل ملف وسائط. استخدِم دائمًا Files API عندما يتجاوز إجمالي حجم الطلب (بما في ذلك الملفات والطلب النصّي وتعليمات النظام وما إلى ذلك) 100 ميغابايت. بالنسبة إلى ملفات PDF، الحدّ الأقصى هو 50 ميغابايت.

يحمّل الرمز التالي ملفًا ثم يستخدمه في طلب إلى 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(""));

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

الحصول على البيانات الوصفية لملف

يمكنك التأكّد من أنّ واجهة برمجة التطبيقات خزّنت الملف الذي تم تحميله بنجاح والحصول على بياناته الوصفية من خلال طلب 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);

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

جافا

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

جافا

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 تخزين ما يصل إلى 20 غيغابايت من الملفات لكل مشروع، على ألا يتجاوز حجم الملف الواحد 2 غيغابايت. يتم تخزين الملفات لمدة 48 ساعة.

خلال هذه الفترة، يمكنك استخدام واجهة برمجة التطبيقات للحصول على بيانات وصفية حول الملفات. ومع ذلك، لا يمكنك تنزيل الملفات التي حمّلها المستخدمون. يمكنك تنزيل الملفات التي تنشئها النماذج، مثل الفيديوهات، باستخدام طريقة files.download. تتوفّر Files API بدون أي تكلفة في جميع المناطق التي تتوفّر فيها Gemini API.

استراتيجيات طلب الملفات

يقدّم هذا القسم إرشادات وأفضل الممارسات لاستخدام ملفات الوسائط مع الطلبات في Gemini API.

يتيح لك استخدام أنواع مختلفة من البيانات في طلباتك مرونة أكبر في ما يتعلّق بالمهام التي يمكنك إنجازها باستخدام Gemini API. على سبيل المثال، يمكنك إرسال صورة لوجبة لذيذة إلى النموذج والطلب منه كتابة مدونة قصيرة عن الوجبة.

الطلب الردّ

اكتب منشور مدوّنة قصيرًا وجذّابًا استنادًا إلى هذه الصورة. يجب أن يتضمّن وصفًا للوجبة في الصورة وأن يتناول رحلتي في تحضير الوجبات.


بسكويت

يُعدّ تحضير الوجبات مسبقًا طريقة رائعة لتوفير الوقت والمال، ويمكن أن يساعدك أيضًا في تناول طعام صحي. هذه الوجبة هي مثال رائع على وجبة صحية ولذيذة يمكن تحضيرها مسبقًا.

تتكوّن هذه الوجبة من الأرز البني والخضروات المشوية ودجاج الترياكي. الأرز البني هو كربوهيدرات صحية ومعقدة تمنحك طاقة مستدامة. تُعدّ الخضروات المشوية طريقة رائعة للحصول على جرعتك اليومية من الفيتامينات والمعادن، كما أنّ دجاج الترياكي هو خيار لذيذ وغني بالبروتين.

هذه الوجبة سهلة التحضير أيضًا. ما عليك سوى طهي الأرز الأسمر وشوي الخضروات وطهي دجاج الترياكي. بعد طهي كل شيء، قسّمه إلى حاويات تحضير الوجبات وخزّنها في الثلاجة. يمكنك بعد ذلك أخذ وعاء والانطلاق في الصباحات المزدحمة.

إذا كنت تبحث عن وجبة صحية ولذيذة يمكن تحضيرها مسبقًا، فهذه الوجبة هي خيار رائع. فهي غنية بالعناصر الغذائية والمذاق الرائع، ومن المؤكّد أنّها ستمنحك شعورًا بالشبع والرضا.

نتمنّى لك وجبات صحية ولذيذة!

إذا كنت تواجه مشكلة في الحصول على النتيجة التي تريدها من الطلبات التي تستخدم ملفات الوسائط، إليك بعض الاستراتيجيات التي يمكن أن تساعدك في الحصول على النتائج التي تريدها. تقدّم الأقسام التالية أساليب تصميم ونصائح لتحديد المشاكل وحلّها من أجل تحسين الطلبات التي تستخدم إدخالاً متعدد الوسائط.

يمكنك تحسين طلباتك المتعددة الوسائط من خلال اتّباع أفضل الممارسات التالية:

  • أساسيات تصميم الطلبات

    • تقديم تعليمات محدّدة: من المهم صياغة تعليمات واضحة وموجزة لا تترك مجالاً لسوء الفهم.
    • أضِف بعض الأمثلة إلى طلبك: استخدِم أمثلة واقعية للتلقين ببضعة أمثلة لتوضيح ما تريد تحقيقه.
    • تقسيم الطلب خطوة بخطوة: قسِّم المهام المعقّدة إلى أهداف فرعية يسهل تنفيذها، ووجِّه النموذج خلال العملية.
    • تحديد تنسيق الإخراج: في طلبك، اطلب أن يكون الإخراج بالتنسيق الذي تريده، مثل Markdown وJSON وHTML وغير ذلك.
    • إدراج الصورة أولاً في الطلبات التي تتضمّن صورة واحدة: على الرغم من أنّ Gemini يمكنه معالجة مدخلات الصور والنصوص بأي ترتيب، إلا أنّه قد يحقّق أداءً أفضل في الطلبات التي تتضمّن صورة واحدة إذا تم وضع هذه الصورة (أو الفيديو) قبل الطلب النصي. ومع ذلك، بالنسبة إلى الطلبات التي تتطلّب أن تكون الصور متداخلة بشكل كبير مع النصوص لكي تكون مفهومة، استخدِم الترتيب الأكثر طبيعية.
  • تحديد المشاكل وحلّها في الطلب المتعدد الوسائط

    • إذا لم يستخرج النموذج المعلومات من الجزء ذي الصلة من الصورة: يمكنك تقديم تلميحات حول جوانب الصورة التي تريد أن يستخرج الطلب المعلومات منها.
    • إذا كانت مخرجات النموذج عامة جدًا (غير مخصّصة بما يكفي لإدخال الصورة/الفيديو): في بداية الطلب، حاوِل أن تطلب من النموذج وصف الصور أو الفيديو قبل تقديم تعليمات المهمة، أو حاوِل أن تطلب من النموذج الإشارة إلى ما في الصورة.
    • لتحديد الجزء الذي فشل في النموذج وحلّ المشكلة: اطلب من النموذج وصف الصورة أو شرح منطقه، لتقييم فهمه الأولي.
    • إذا أدّى طلبك إلى إنشاء محتوى من نسج الخيال: حاوِل خفض درجة الحرارة أو اطلب من النموذج تقديم أوصاف أقصر لتقليل احتمالية استنباط تفاصيل إضافية.
    • ضبط مَعلَمات اختيار العيّنات: جرِّب إعدادات مختلفة لدرجة العشوائية وخيارات k الأعلى لضبط مستوى إبداع النموذج.

كن محدّدًا في تعليماتك

تكون الطلبات أكثر فعالية عندما تكون واضحة ومفصّلة. إذا كان لديك ناتج محدّد في ذهنك، من الأفضل تضمين هذا الشرط في الطلب لضمان الحصول على الناتج المطلوب.

بالنسبة إلى هذه الصورة التي تعرض لوحة في مطار، قد يؤدي طلب "وصف هذه الصورة" من النموذج إلى إنشاء وصف عام. إذا كنت بحاجة إلى أن يحلل النموذج الوقت والمدينة من الصورة، يمكنك تضمين هذا الطلب مباشرةً في طلبك.

الطلب ردّ النموذج

صِف هذه الصورة.

تعرض الصورة لوحة مواعيد الوصول والمغادرة في المطار.

طلب معدَّل ردّ محسّن
جدول مواعيد السفر

حلِّل الوقت والمدينة من لوحة المطار الظاهرة في هذه الصورة إلى قائمة.

  • ‫10:50 بتوقيت موسكو
  • ‫11:05 صباحًا في إدنبره
  • ‫11:05 صباحًا بتوقيت لندن
  • ‫11:10 صباحًا في بوخارست
  • ‫11:30 صباحًا بتوقيت كييف
  • ‫11:35 دبلن
  • ‫11:45 شرق ميدلاندز
  • ‫12:15 صوفيا
  • ‫12:30 لندن
  • ‫12:30 نيوكاسل
  • ‫12:40 سانت بطرسبرغ
  • ‫12:40 بتوقيت لندن
  • ‫12:45 مانشستر
  • إضافة بعض الأمثلة

    يمكن لنموذج Gemini قبول مدخلات متعددة يمكنه استخدامها كأمثلة لفهم الناتج الذي تريده. يمكن أن تساعد إضافة هذه الأمثلة النموذج في تحديد الأنماط وتطبيق العلاقة بين الصور والردود المحدّدة على المثال الجديد. ويُعرف ذلك أيضًا باسم التعلّم "ببضعة أمثلة".

    في المثال التالي، تتم كتابة الناتج الأولي في شكل جملة، ويحتوي أيضًا على البلد (البرازيل). لنفترض أنّك تريد الحصول على النتيجة بتنسيق أو أسلوب مختلف، وتريد فقط المدينة، وليس البلد. يمكن أن تؤدي إضافة أمثلة التلقين ببضعة أمثلة إلى طلبك إلى توجيه النموذج للرد بالطريقة التي تريدها.

    الطلب ردّ النموذج
    جدول مواعيد السفر

    حدِّد المدينة مع المَعلم.

    المعلم هو تمثال "المسيح الفادي" في ريو دي جانيرو، البرازيل.

    الطلب المعدَّل ردود محسّنة

    حدِّد المدينة مع المَعلم.

    كولوسيوم

    المدينة: روما، المَعلم: الكولوسيوم.

    المدينة المحرمة

    city: Beijing, landmark: Forbidden City

    forbidden-city

    المدينة: ريو دي جانيرو، المَعلم: تمثال "المسيح الفادي"

    شرح مفصّل خطوة بخطوة

    بالنسبة إلى المهام المعقّدة، مثل تلك التي تتطلّب فهمًا مرئيًا واستدلالاً، قد يكون من المفيد تقسيم المهمة إلى خطوات أصغر وأكثر بساطة. بدلاً من ذلك، قد يكون من المفيد أيضًا أن تطلب من النموذج مباشرةً "التفكير خطوة بخطوة" في طلبك.

    الطلب ردّ النموذج

    متى سينتهي ورق المرحاض؟

    قريبًا، لن يتبقّى لديك سوى 3 لفات.

    طلب معدَّل ردّ محسّن
    1. أولاً، عليك عدّ لفات ورق التواليت في هذه الصورة.
    2. بعد ذلك، حدِّد كمية ورق المرحاض التي يستخدمها الشخص العادي يوميًا.
    3. احسب المدة التي ستكفي فيها لفات ورق التواليت هذه.
    1. في هذه الصورة، هناك 3 لفات من ورق المرحاض.
    2. يستخدم الشخص العادي حوالي 20 ورقة من ورق التواليت يوميًا.
    3. إذا كانت كل لفة تحتوي على 200 ورقة، ستدوم كل لفة لمدة 10 أيام تقريبًا. وبالتالي، ستدوم اللفات الثلاث لمدة شهر تقريبًا.

    تُعدّ المسائل الرياضية أو الأنواع الأخرى من المسائل الكلامية خيارًا رائعًا لطلب من النموذج التفكير خطوة بخطوة.

    الطلب الردّ

    ما هو الحد الرابع في المتسلسلة؟

    -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) هي 15، لذا نعوّضها في المعادلة:

      $$ 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 $$

    لذلك، الحد الرابع في المتتالية هو -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 | الموضوع | الحالة | الوقت | تاريخ البدء | تاريخ التسليم | | ------- | ------ | ---- | ---------- | ------ | | الرياضيات | مكتملة | ساعة ونصف | 29/11/2023 | 1/12/2023 | | الجغرافيا | مكتملة | 30 دقيقة | 2/12/2023 | 4/12/2023 | | الفيزياء | قيد التقدّم | ساعتان | 3/12/2023 | 5/12/2023 | | الأحياء | لم يتم البدء | 6 ساعات | 2/11/2016 | 6/12/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 والصوت ومعالجة المستندات.
    • لمزيد من الإرشادات حول تصميم الطلبات، مثل ضبط مَعلمات أخذ العينات، يُرجى الاطّلاع على صفحة استراتيجيات الطلبات.