مدلهای Gemini از ابتدا به گونهای ساخته شدهاند که چندوجهی باشند و طیف گستردهای از وظایف پردازش تصویر و بینایی کامپیوتر، از جمله (اما نه محدود به) شرح تصویر، طبقهبندی و پاسخ به سؤالات بصری را بدون نیاز به آموزش مدلهای تخصصی یادگیری ماشین، امکانپذیر سازند.
ارسال تصاویر به جمینی
شما میتوانید با استفاده از دو روش، تصاویر را به عنوان ورودی به Gemini ارائه دهید:
- ارسال دادههای تصویر درونخطی : ایدهآل برای فایلهای کوچکتر (حجم کل درخواست کمتر از 20 مگابایت، شامل اعلانها).
- آپلود تصاویر با استفاده از File API : برای فایلهای بزرگتر یا برای استفاده مجدد از تصاویر در چندین درخواست توصیه میشود.
ارسال دادههای تصویر درونخطی
شما میتوانید دادههای تصویر را به صورت درونخطی در درخواست generateContent ارسال کنید. میتوانید دادههای تصویر را به صورت رشتههای کدگذاری شده Base64 یا با خواندن مستقیم فایلهای محلی (بسته به زبان) ارائه دهید.
مثال زیر نحوه خواندن یک تصویر از یک فایل محلی و ارسال آن به generateContent API برای پردازش را نشان میدهد.
پایتون
from google import genai
from google.genai import types
with open('path/to/small-sample.jpg', 'rb') as f:
image_bytes = f.read()
client = genai.Client()
response = client.models.generate_content(
model='gemini-2.5-flash',
contents=[
types.Part.from_bytes(
data=image_bytes,
mime_type='image/jpeg',
),
'Caption this image.'
]
)
print(response.text)
جاوا اسکریپت
import { GoogleGenAI } from "@google/genai";
import * as fs from "node:fs";
const ai = new GoogleGenAI({});
const base64ImageFile = fs.readFileSync("path/to/small-sample.jpg", {
encoding: "base64",
});
const contents = [
{
inlineData: {
mimeType: "image/jpeg",
data: base64ImageFile,
},
},
{ text: "Caption this image." },
];
const response = await ai.models.generateContent({
model: "gemini-2.5-flash",
contents: contents,
});
console.log(response.text);
برو
bytes, _ := os.ReadFile("path/to/small-sample.jpg")
parts := []*genai.Part{
genai.NewPartFromBytes(bytes, "image/jpeg"),
genai.NewPartFromText("Caption this image."),
}
contents := []*genai.Content{
genai.NewContentFromParts(parts, genai.RoleUser),
}
result, _ := client.Models.GenerateContent(
ctx,
"gemini-2.5-flash",
contents,
nil,
)
fmt.Println(result.Text())
استراحت
IMG_PATH="/path/to/your/image1.jpg"
if [[ "$(base64 --version 2>&1)" = *"FreeBSD"* ]]; then
B64FLAGS="--input"
else
B64FLAGS="-w0"
fi
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts":[
{
"inline_data": {
"mime_type":"image/jpeg",
"data": "'"$(base64 $B64FLAGS $IMG_PATH)"'"
}
},
{"text": "Caption this image."},
]
}]
}' 2> /dev/null
همچنین میتوانید یک تصویر را از یک URL دریافت کنید، آن را به بایت تبدیل کنید و همانطور که در مثالهای زیر نشان داده شده است، آن را به generateContent ارسال کنید.
پایتون
from google import genai
from google.genai import types
import requests
image_path = "https://goo.gle/instrument-img"
image_bytes = requests.get(image_path).content
image = types.Part.from_bytes(
data=image_bytes, mime_type="image/jpeg"
)
client = genai.Client()
response = client.models.generate_content(
model="gemini-2.5-flash",
contents=["What is this image?", image],
)
print(response.text)
جاوا اسکریپت
import { GoogleGenAI } from "@google/genai";
async function main() {
const ai = new GoogleGenAI({});
const imageUrl = "https://goo.gle/instrument-img";
const response = await fetch(imageUrl);
const imageArrayBuffer = await response.arrayBuffer();
const base64ImageData = Buffer.from(imageArrayBuffer).toString('base64');
const result = await ai.models.generateContent({
model: "gemini-2.5-flash",
contents: [
{
inlineData: {
mimeType: 'image/jpeg',
data: base64ImageData,
},
},
{ text: "Caption this image." }
],
});
console.log(result.text);
}
main();
برو
package main
import (
"context"
"fmt"
"os"
"io"
"net/http"
"google.golang.org/genai"
)
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
// Download the image.
imageResp, _ := http.Get("https://goo.gle/instrument-img")
imageBytes, _ := io.ReadAll(imageResp.Body)
parts := []*genai.Part{
genai.NewPartFromBytes(imageBytes, "image/jpeg"),
genai.NewPartFromText("Caption this image."),
}
contents := []*genai.Content{
genai.NewContentFromParts(parts, genai.RoleUser),
}
result, _ := client.Models.GenerateContent(
ctx,
"gemini-2.5-flash",
contents,
nil,
)
fmt.Println(result.Text())
}
استراحت
IMG_URL="https://goo.gle/instrument-img"
MIME_TYPE=$(curl -sIL "$IMG_URL" | grep -i '^content-type:' | awk -F ': ' '{print $2}' | sed 's/\r$//' | head -n 1)
if [[ -z "$MIME_TYPE" || ! "$MIME_TYPE" == image/* ]]; then
MIME_TYPE="image/jpeg"
fi
# Check for macOS
if [[ "$(uname)" == "Darwin" ]]; then
IMAGE_B64=$(curl -sL "$IMG_URL" | base64 -b 0)
elif [[ "$(base64 --version 2>&1)" = *"FreeBSD"* ]]; then
IMAGE_B64=$(curl -sL "$IMG_URL" | base64)
else
IMAGE_B64=$(curl -sL "$IMG_URL" | base64 -w0)
fi
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts":[
{
"inline_data": {
"mime_type":"'"$MIME_TYPE"'",
"data": "'"$IMAGE_B64"'"
}
},
{"text": "Caption this image."}
]
}]
}' 2> /dev/null
آپلود تصاویر با استفاده از File API
برای فایلهای بزرگ یا برای اینکه بتوانید از یک فایل تصویری به طور مکرر استفاده کنید، از API فایلها استفاده کنید. کد زیر یک فایل تصویری را آپلود میکند و سپس از فایل در فراخوانی برای generateContent استفاده میکند. برای اطلاعات و مثالهای بیشتر به راهنمای API فایلها مراجعه کنید.
پایتون
from google import genai
client = genai.Client()
my_file = client.files.upload(file="path/to/sample.jpg")
response = client.models.generate_content(
model="gemini-2.5-flash",
contents=[my_file, "Caption this image."],
)
print(response.text)
جاوا اسکریپت
import {
GoogleGenAI,
createUserContent,
createPartFromUri,
} from "@google/genai";
const ai = new GoogleGenAI({});
async function main() {
const myfile = await ai.files.upload({
file: "path/to/sample.jpg",
config: { mimeType: "image/jpeg" },
});
const response = await ai.models.generateContent({
model: "gemini-2.5-flash",
contents: createUserContent([
createPartFromUri(myfile.uri, myfile.mimeType),
"Caption this image.",
]),
});
console.log(response.text);
}
await main();
برو
package main
import (
"context"
"fmt"
"os"
"google.golang.org/genai"
)
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
uploadedFile, _ := client.Files.UploadFromPath(ctx, "path/to/sample.jpg", nil)
parts := []*genai.Part{
genai.NewPartFromText("Caption this image."),
genai.NewPartFromURI(uploadedFile.URI, uploadedFile.MIMEType),
}
contents := []*genai.Content{
genai.NewContentFromParts(parts, genai.RoleUser),
}
result, _ := client.Models.GenerateContent(
ctx,
"gemini-2.5-flash",
contents,
nil,
)
fmt.Println(result.Text())
}
استراحت
IMAGE_PATH="path/to/sample.jpg"
MIME_TYPE=$(file -b --mime-type "${IMAGE_PATH}")
NUM_BYTES=$(wc -c < "${IMAGE_PATH}")
DISPLAY_NAME=IMAGE
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 "https://generativelanguage.googleapis.com/upload/v1beta/files" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-D upload-header.tmp \
-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 "x-goog-api-key: $GEMINI_API_KEY" \
-H "Content-Length: ${NUM_BYTES}" \
-H "X-Goog-Upload-Offset: 0" \
-H "X-Goog-Upload-Command: upload, finalize" \
--data-binary "@${IMAGE_PATH}" 2> /dev/null > file_info.json
file_uri=$(jq -r ".file.uri" file_info.json)
echo file_uri=$file_uri
# Now generate content using that file
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts":[
{"file_data":{"mime_type": "'"${MIME_TYPE}"'", "file_uri": "'"${file_uri}"'"}},
{"text": "Caption this image."}]
}]
}' 2> /dev/null > response.json
cat response.json
echo
jq ".candidates[].content.parts[].text" response.json
ارسال پیام با چندین تصویر
شما میتوانید با قرار دادن چندین شیء image Part در آرایه contents ، چندین تصویر را در یک prompt ارائه دهید. این اشیاء میتوانند ترکیبی از دادههای درونخطی (فایلهای محلی یا URLها) و ارجاعات File API باشند.
پایتون
from google import genai
from google.genai import types
client = genai.Client()
# Upload the first image
image1_path = "path/to/image1.jpg"
uploaded_file = client.files.upload(file=image1_path)
# Prepare the second image as inline data
image2_path = "path/to/image2.png"
with open(image2_path, 'rb') as f:
img2_bytes = f.read()
# Create the prompt with text and multiple images
response = client.models.generate_content(
model="gemini-2.5-flash",
contents=[
"What is different between these two images?",
uploaded_file, # Use the uploaded file reference
types.Part.from_bytes(
data=img2_bytes,
mime_type='image/png'
)
]
)
print(response.text)
جاوا اسکریپت
import {
GoogleGenAI,
createUserContent,
createPartFromUri,
} from "@google/genai";
import * as fs from "node:fs";
const ai = new GoogleGenAI({});
async function main() {
// Upload the first image
const image1_path = "path/to/image1.jpg";
const uploadedFile = await ai.files.upload({
file: image1_path,
config: { mimeType: "image/jpeg" },
});
// Prepare the second image as inline data
const image2_path = "path/to/image2.png";
const base64Image2File = fs.readFileSync(image2_path, {
encoding: "base64",
});
// Create the prompt with text and multiple images
const response = await ai.models.generateContent({
model: "gemini-2.5-flash",
contents: createUserContent([
"What is different between these two images?",
createPartFromUri(uploadedFile.uri, uploadedFile.mimeType),
{
inlineData: {
mimeType: "image/png",
data: base64Image2File,
},
},
]),
});
console.log(response.text);
}
await main();
برو
// Upload the first image
image1Path := "path/to/image1.jpg"
uploadedFile, _ := client.Files.UploadFromPath(ctx, image1Path, nil)
// Prepare the second image as inline data
image2Path := "path/to/image2.jpeg"
imgBytes, _ := os.ReadFile(image2Path)
parts := []*genai.Part{
genai.NewPartFromText("What is different between these two images?"),
genai.NewPartFromBytes(imgBytes, "image/jpeg"),
genai.NewPartFromURI(uploadedFile.URI, uploadedFile.MIMEType),
}
contents := []*genai.Content{
genai.NewContentFromParts(parts, genai.RoleUser),
}
result, _ := client.Models.GenerateContent(
ctx,
"gemini-2.5-flash",
contents,
nil,
)
fmt.Println(result.Text())
استراحت
# Upload the first image
IMAGE1_PATH="path/to/image1.jpg"
MIME1_TYPE=$(file -b --mime-type "${IMAGE1_PATH}")
NUM1_BYTES=$(wc -c < "${IMAGE1_PATH}")
DISPLAY_NAME1=IMAGE1
tmp_header_file1=upload-header1.tmp
curl "https://generativelanguage.googleapis.com/upload/v1beta/files" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-D upload-header1.tmp \
-H "X-Goog-Upload-Protocol: resumable" \
-H "X-Goog-Upload-Command: start" \
-H "X-Goog-Upload-Header-Content-Length: ${NUM1_BYTES}" \
-H "X-Goog-Upload-Header-Content-Type: ${MIME1_TYPE}" \
-H "Content-Type: application/json" \
-d "{'file': {'display_name': '${DISPLAY_NAME1}'}}" 2> /dev/null
upload_url1=$(grep -i "x-goog-upload-url: " "${tmp_header_file1}" | cut -d" " -f2 | tr -d "\r")
rm "${tmp_header_file1}"
curl "${upload_url1}" \
-H "Content-Length: ${NUM1_BYTES}" \
-H "X-Goog-Upload-Offset: 0" \
-H "X-Goog-Upload-Command: upload, finalize" \
--data-binary "@${IMAGE1_PATH}" 2> /dev/null > file_info1.json
file1_uri=$(jq ".file.uri" file_info1.json)
echo file1_uri=$file1_uri
# Prepare the second image (inline)
IMAGE2_PATH="path/to/image2.png"
MIME2_TYPE=$(file -b --mime-type "${IMAGE2_PATH}")
if [[ "$(base64 --version 2>&1)" = *"FreeBSD"* ]]; then
B64FLAGS="--input"
else
B64FLAGS="-w0"
fi
IMAGE2_BASE64=$(base64 $B64FLAGS $IMAGE2_PATH)
# Now generate content using both images
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts":[
{"text": "What is different between these two images?"},
{"file_data":{"mime_type": "'"${MIME1_TYPE}"'", "file_uri": '$file1_uri'}},
{
"inline_data": {
"mime_type":"'"${MIME2_TYPE}"'",
"data": "'"$IMAGE2_BASE64"'"
}
}
]
}]
}' 2> /dev/null > response.json
cat response.json
echo
jq ".candidates[].content.parts[].text" response.json
تشخیص شیء
از Gemini 2.0 به بعد، مدلها بیشتر آموزش داده میشوند تا اشیاء موجود در یک تصویر را تشخیص داده و مختصات کادر مرزی آنها را بدست آورند. این مختصات، نسبت به ابعاد تصویر، به مقیاس [0، 1000] تغییر میکنند. شما باید این مختصات را بر اساس اندازه تصویر اصلی خود، کوچک کنید.
پایتون
from google import genai
from google.genai import types
from PIL import Image
import json
client = genai.Client()
prompt = "Detect the all of the prominent items in the image. The box_2d should be [ymin, xmin, ymax, xmax] normalized to 0-1000."
image = Image.open("/path/to/image.png")
config = types.GenerateContentConfig(
response_mime_type="application/json"
)
response = client.models.generate_content(model="gemini-2.5-flash",
contents=[image, prompt],
config=config
)
width, height = image.size
bounding_boxes = json.loads(response.text)
converted_bounding_boxes = []
for bounding_box in bounding_boxes:
abs_y1 = int(bounding_box["box_2d"][0]/1000 * height)
abs_x1 = int(bounding_box["box_2d"][1]/1000 * width)
abs_y2 = int(bounding_box["box_2d"][2]/1000 * height)
abs_x2 = int(bounding_box["box_2d"][3]/1000 * width)
converted_bounding_boxes.append([abs_x1, abs_y1, abs_x2, abs_y2])
print("Image size: ", width, height)
print("Bounding boxes:", converted_bounding_boxes)
برای مثالهای بیشتر، دفترچههای زیر را در کتاب آشپزی جمینی بررسی کنید:
تقسیمبندی
با شروع از Gemini 2.5، مدلها نه تنها اقلام را تشخیص میدهند، بلکه آنها را قطعهبندی کرده و ماسکهای کانتور آنها را ارائه میدهند.
این مدل یک لیست JSON را پیشبینی میکند که در آن هر آیتم نشاندهنده یک ماسک تقسیمبندی است. هر آیتم دارای یک کادر محصورکننده (" box_2d ") با فرمت [y0, x0, y1, x1] با مختصات نرمالشده بین 0 تا 1000، یک برچسب (" label ") که شیء را مشخص میکند و در نهایت ماسک تقسیمبندی درون کادر محصورکننده، به صورت png کدگذاریشده با base64 است که یک نقشه احتمال با مقادیر بین 0 تا 255 است. این ماسک باید تغییر اندازه دهد تا با ابعاد کادر محصورکننده مطابقت داشته باشد، سپس در آستانه اطمینان شما (127 برای نقطه میانی) باینری شود.
پایتون
from google import genai
from google.genai import types
from PIL import Image, ImageDraw
import io
import base64
import json
import numpy as np
import os
client = genai.Client()
def parse_json(json_output: str):
# Parsing out the markdown fencing
lines = json_output.splitlines()
for i, line in enumerate(lines):
if line == "```json":
json_output = "\n".join(lines[i+1:]) # Remove everything before "```json"
output = json_output.split("```")[0] # Remove everything after the closing "```"
break # Exit the loop once "```json" is found
return json_output
def extract_segmentation_masks(image_path: str, output_dir: str = "segmentation_outputs"):
# Load and resize image
im = Image.open(image_path)
im.thumbnail([1024, 1024], Image.Resampling.LANCZOS)
prompt = """
Give the segmentation masks for the wooden and glass items.
Output a JSON list of segmentation masks where each entry contains the 2D
bounding box in the key "box_2d", the segmentation mask in key "mask", and
the text label in the key "label". Use descriptive labels.
"""
config = types.GenerateContentConfig(
thinking_config=types.ThinkingConfig(thinking_budget=0) # set thinking_budget to 0 for better results in object detection
)
response = client.models.generate_content(
model="gemini-2.5-flash",
contents=[prompt, im], # Pillow images can be directly passed as inputs (which will be converted by the SDK)
config=config
)
# Parse JSON response
items = json.loads(parse_json(response.text))
# Create output directory
os.makedirs(output_dir, exist_ok=True)
# Process each mask
for i, item in enumerate(items):
# Get bounding box coordinates
box = item["box_2d"]
y0 = int(box[0] / 1000 * im.size[1])
x0 = int(box[1] / 1000 * im.size[0])
y1 = int(box[2] / 1000 * im.size[1])
x1 = int(box[3] / 1000 * im.size[0])
# Skip invalid boxes
if y0 >= y1 or x0 >= x1:
continue
# Process mask
png_str = item["mask"]
if not png_str.startswith("data:image/png;base64,"):
continue
# Remove prefix
png_str = png_str.removeprefix("data:image/png;base64,")
mask_data = base64.b64decode(png_str)
mask = Image.open(io.BytesIO(mask_data))
# Resize mask to match bounding box
mask = mask.resize((x1 - x0, y1 - y0), Image.Resampling.BILINEAR)
# Convert mask to numpy array for processing
mask_array = np.array(mask)
# Create overlay for this mask
overlay = Image.new('RGBA', im.size, (0, 0, 0, 0))
overlay_draw = ImageDraw.Draw(overlay)
# Create overlay for the mask
color = (255, 255, 255, 200)
for y in range(y0, y1):
for x in range(x0, x1):
if mask_array[y - y0, x - x0] > 128: # Threshold for mask
overlay_draw.point((x, y), fill=color)
# Save individual mask and its overlay
mask_filename = f"{item['label']}_{i}_mask.png"
overlay_filename = f"{item['label']}_{i}_overlay.png"
mask.save(os.path.join(output_dir, mask_filename))
# Create and save overlay
composite = Image.alpha_composite(im.convert('RGBA'), overlay)
composite.save(os.path.join(output_dir, overlay_filename))
print(f"Saved mask and overlay for {item['label']} to {output_dir}")
# Example usage
if __name__ == "__main__":
extract_segmentation_masks("path/to/image.png")
برای مثالی دقیقتر، مثال تقسیمبندی را در راهنمای کتاب آشپزی بررسی کنید.

فرمتهای تصویر پشتیبانیشده
Gemini از انواع MIME فرمت تصویر زیر پشتیبانی میکند:
- PNG -
image/png - JPEG -
image/jpeg - WBP -
image/webp - HEIC -
image/heic - HEIF -
image/heif
قابلیتها
تمام نسخههای مدل Gemini چندوجهی هستند و میتوانند در طیف گستردهای از وظایف پردازش تصویر و بینایی کامپیوتر از جمله (اما نه محدود به) شرح تصویر، پرسش و پاسخ بصری، طبقهبندی تصویر، تشخیص شیء و قطعهبندی مورد استفاده قرار گیرند.
جمینی میتواند نیاز به استفاده از مدلهای تخصصی یادگیری ماشین را بسته به کیفیت و عملکرد مورد نیاز شما کاهش دهد.
برخی از نسخههای جدیدتر مدل، علاوه بر قابلیتهای عمومی، به طور خاص آموزش دیدهاند تا دقت وظایف تخصصی را بهبود بخشند:
مدلهای Gemini 2.0 بیشتر آموزش دیدهاند تا از تشخیص اشیاء پیشرفته پشتیبانی کنند.
مدلهای Gemini 2.5 علاوه بر تشخیص اشیا، برای پشتیبانی از تقسیمبندی پیشرفته نیز آموزش دیدهاند.
محدودیتها و اطلاعات فنی کلیدی
محدودیت فایل
نرمافزارهای Gemini 2.5 Pro/Flash، 2.0 Flash، 1.5 Pro و 1.5 Flash حداکثر از ۳۶۰۰ فایل تصویری در هر درخواست پشتیبانی میکنند.
محاسبه توکن
- Gemini 1.5 Flash و Gemini 1.5 Pro : اگر هر دو ابعاد <= 384 پیکسل داشته باشند، 258 توکن. تصاویر بزرگتر به صورت کاشیکاری شده (حداقل کاشی 256 پیکسل، حداکثر 768 پیکسل، تغییر اندازه به 768x768) هستند که هر کاشی 258 توکن هزینه دارد.
- Gemini 2.0 Flash و Gemini 2.5 Flash/Pro : اگر هر دو ابعاد <= 384 پیکسل داشته باشند، 258 توکن. تصاویر بزرگتر به صورت کاشیهای 768x768 پیکسلی چیده میشوند که هر کدام 258 توکن هزینه دارند.
یک فرمول تقریبی برای محاسبه تعداد کاشیها به شرح زیر است:
- اندازه واحد محصول را که تقریباً برابر است با: کف (حداقل (عرض، ارتفاع) / 1.5) محاسبه کنید.
- هر بُعد را بر اندازه واحد محصول تقسیم کنید و در هم ضرب کنید تا تعداد کاشیها به دست آید.
برای مثال، برای تصویری با ابعاد ۹۶۰x۵۴۰، اندازه واحد برش ۳۶۰ خواهد بود. هر بعد را بر ۳۶۰ تقسیم کنید و تعداد کاشیها ۳ * ۲ = ۶ میشود.
وضوح رسانه
Gemini 3 با پارامتر media_resolution کنترل دقیقی بر پردازش بینایی چندوجهی ارائه میدهد. پارامتر media_resolution حداکثر تعداد توکنهای اختصاص داده شده به ازای هر تصویر یا فریم ویدیویی ورودی را تعیین میکند. رزولوشنهای بالاتر توانایی مدل را در خواندن متنهای ریز یا شناسایی جزئیات کوچک بهبود میبخشند، اما استفاده از توکن و تأخیر را افزایش میدهند.
برای جزئیات بیشتر در مورد این پارامتر و نحوه تأثیر آن بر محاسبات توکن، به راهنمای تفکیکپذیری رسانه مراجعه کنید.
نکات و بهترین شیوهها
- بررسی کنید که تصاویر به درستی چرخانده شده باشند.
- از تصاویر واضح و بدون تاری استفاده کنید.
- هنگام استفاده از یک تصویر واحد به همراه متن، متن اعلان را بعد از بخش تصویر در آرایه
contentsقرار دهید.
قدم بعدی چیست؟
این راهنما به شما نشان میدهد که چگونه فایلهای تصویری را آپلود کنید و از ورودیهای تصویری، خروجیهای متنی تولید کنید. برای کسب اطلاعات بیشتر، به منابع زیر مراجعه کنید:
- API فایلها : درباره آپلود و مدیریت فایلها برای استفاده با Gemini بیشتر بدانید.
- دستورالعملهای سیستم : دستورالعملهای سیستم به شما امکان میدهند رفتار مدل را بر اساس نیازها و موارد استفاده خاص خود هدایت کنید.
- استراتژیهای اعلان فایل : رابط برنامهنویسی نرمافزار Gemini از اعلان با دادههای متنی، تصویری، صوتی و ویدیویی پشتیبانی میکند که به عنوان اعلان چندوجهی نیز شناخته میشود.
- راهنمایی ایمنی : گاهی اوقات مدلهای هوش مصنوعی مولد، خروجیهای غیرمنتظرهای مانند خروجیهای نادرست، جانبدارانه یا توهینآمیز تولید میکنند. پردازش پس از پردازش و ارزیابی انسانی برای محدود کردن خطر آسیب ناشی از چنین خروجیهایی ضروری است.