Generating content

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

روش: models.generateContent

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

نقطه پایانی

پست https://generativelanguage.googleapis.com/v1beta/{model=models/*}:generateContent

پارامترهای مسیر

model string

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

قالب: models/{model}. این فرم models/{model} را می‌گیرد.

متن درخواست

بدنه درخواست حاوی داده‌هایی با ساختار زیر است:

فیلدها
contents[] object (Content)

الزامی. محتوای مکالمه فعلی با مدل.

برای پُرسمان‌های تک‌نوبتی، این یک نمونه تکی است. برای پُرسمان‌های چندنوبتی مثل گپ، این فیلد تکراری است که حاوی سابقه مکالمه و جدیدترین درخواست است.

tools[] object (Tool)

اختیاری. فهرستی از Tools که Model ممکن است برای تولید پاسخ بعدی استفاده کند.

Tool قطعه کدی است که سیستم را قادر می‌سازد با سیستم‌های خارجی تعامل داشته باشد تا کنش یا مجموعه‌ای از کنش‌ها را خارج از دانش و محدوده Model انجام دهد. Toolهای پشتیبانی‌شده Function و codeExecution هستند. برای کسب اطلاعات بیشتر، به راهنماهای فراخوانی تابع و اجرای کد مراجعه کنید.

toolConfig object (ToolConfig)

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

safetySettings[] object (SafetySetting)

اختیاری. فهرستی از SafetySetting نمونه منحصربه‌فرد برای مسدود کردن محتوای ناایمن.

این مورد در GenerateContentRequest.contents و GenerateContentResponse.candidates اجرا خواهد شد. برای هر نوع SafetyCategory نباید بیشتر از یک تنظیم وجود داشته باشد. میانای برنامه‌سازی کاربردی هر محتوا و پاسخی را که آستانه‌های تعیین‌شده توسط این تنظیمات را برآورده نکند مسدود خواهد کرد. این فهرست تنظیمات پیش‌فرض را برای هر SafetyCategory مشخص‌شده در safetySettings لغو می‌کند. اگر برای SafetyCategory ارائه‌شده در فهرست، SafetySetting وجود نداشته باشد، API از تنظیم ایمنی پیش‌فرض برای آن دسته استفاده خواهد کرد. دسته‌های آسیب HARM_CATEGORY_HATE_SPEECH،‏ HARM_CATEGORY_SEXUALLY_EXPLICIT،‏ HARM_CATEGORY_DANGEROUS_CONTENT،‏ HARM_CATEGORY_HARASSMENT،‏ HARM_CATEGORY_CIVIC_INTEGRITY،‏ HARM_CATEGORY_JAILBREAK پشتیبانی می‌شوند. برای اطلاعات دقیق درباره تنظیمات ایمنی دردسترس، به راهنما مراجعه کنید. همچنین به راهنمای ایمنی مراجعه کنید تا با نحوه گنجاندن ملاحظات ایمنی در برنامه‌های هوش مصنوعی خود آشنا شوید.

continuationToken string (bytes format)

اختیاری. یک کد ادامه مبهم که برای ازسر گرفتن تولید از پاسخ قبلی models.generateContent یا models.streamGenerateContent استفاده می‌شود که با تنظیم finishReason روی CONTINUATION متوقف شده است. توجه داشته باشید که contents اجباری است و باید دقیقاً همان پیام‌واره و سابقه مکالمه درخواست اولیه را تکرار کند، وقتی که توکن ادامه در درخواست ارائه می‌شود.

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

labels map (key: string, value: string)

اختیاری. برچسب‌های دارای فراداده تعریف‌شده توسط کاربر برای درخواست.

اختیاری. برچسب‌ها باید از الزامات استاندارد برچسب Cloud یکپارچه پیروی کنند: - کلیدهای برچسب باید با حرف شروع شوند. - کلیدها و مقادیر برچسب نباید بیشتر از ۶۳ نویسه (نقطه کد یونیکد) باشند و فقط می‌توانند حاوی حروف کوچک، نویسه‌های عددی، زیرخط، و خط تیره باشند. - نویسه‌های بین‌المللی مجاز هستند.

کاربرد: - شناسه‌های ایمنی از تجمیع‌کننده‌ها: از کلید safety_identifier استفاده کنید (مثلاً {"safety_identifier": "user_session_123"})

شیئی که حاوی فهرستی از جفت‌های "key": value است. مثال: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

systemInstruction object (Content)

اختیاری. توسعه‌دهنده دستورالعمل(های) سیستم را تنظیم کرده است. درحال‌حاضر، فقط نوشتار.

generationConfig object (GenerationConfig)

اختیاری. گزینه‌های پیکربندی برای تولید و بروندادهای مدل.

cachedContent string

اختیاری. نام محتوای ذخیره‌شده در حافظه نهان برای استفاده به‌عنوان بافت برای ارائه پیش‌بینی. قالب: cachedContents/{cachedContent}

serviceTier enum (ServiceTier)

اختیاری. رده سرویس درخواست.

store boolean

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

درخواست نمونه

نوشتار

Python

from google import genai

client = genai.Client()
response = client.models.generate_content(
    model="gemini-3.8-flash",
    contents="Write a story about a magic backpack.",
)
print(response.text)

Node.js

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({apiKey: process.env.GEMINI_API_KEY});

const response = await ai.models.generateContent({
  model: 'gemini-3.8-flash',
  contents: 'Write a story about a magic backpack.',
});
console.log(response.text);

رفتن

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}
contents := []*genai.Content{
	genai.NewContentFromText("Write a story about a magic backpack.", genai.RoleUser),
}
response, err := client.Models.GenerateContent(ctx, "gemini-3.8-flash", contents, nil)
if err != nil {
	log.Fatal(err)
}
printResponse(response)

صدف

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$GEMINI_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
      "contents": [{
        "parts":[{"text": "Write a story about a magic backpack."}]
        }]
       }' 2> /dev/null

جاوا

Client client = new Client();

GenerateContentResponse response =
    client.models.generateContent(
        "gemini-3.8-flash", "Write a story about a magic backpack.", null);

System.out.println(response.text());

تصویر

Python

from google import genai
import PIL.Image

client = genai.Client()
organ = PIL.Image.open(media / "organ.jpg")
response = client.models.generate_content(
    model="gemini-3.8-flash",
    contents=["Tell me about this instrument", organ],
)
print(response.text)

Node.js

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({apiKey: process.env.GEMINI_API_KEY});

const organ = await ai.files.upload({
  file: path.join(media, 'organ.jpg'),
});

const response = await ai.models.generateContent({
  model: 'gemini-3.8-flash',
  contents: [
    createUserContent([
      'Tell me about this instrument',
      createPartFromUri(organ.uri, organ.mimeType)
    ]),
  ],
});
console.log(response.text);

رفتن

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

file, err := client.Files.UploadFromPath(
	ctx,
	filepath.Join(getMedia(), "organ.jpg"),
	&genai.UploadFileConfig{
		MIMEType: "image/jpeg",
	},
)
if err != nil {
	log.Fatal(err)
}
parts := []*genai.Part{
	genai.NewPartFromText("Tell me about this instrument"),
	genai.NewPartFromURI(file.URI, file.MIMEType),
}
contents := []*genai.Content{
	genai.NewContentFromParts(parts, genai.RoleUser),
}

response, err := client.Models.GenerateContent(ctx, "gemini-3.8-flash", contents, nil)
if err != nil {
	log.Fatal(err)
}
printResponse(response)

صدف

# Use a temporary file to hold the base64 encoded image data
TEMP_B64=$(mktemp)
trap 'rm -f "$TEMP_B64"' EXIT
base64 $B64FLAGS $IMG_PATH > "$TEMP_B64"

# Use a temporary file to hold the JSON payload
TEMP_JSON=$(mktemp)
trap 'rm -f "$TEMP_JSON"' EXIT

cat > "$TEMP_JSON" << EOF
{
  "contents": [{
    "parts":[
      {"text": "Tell me about this instrument"},
      {
        "inline_data": {
          "mime_type":"image/jpeg",
          "data": "$(cat "$TEMP_B64")"
        }
      }
    ]
  }]
}
EOF

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$GEMINI_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d "@$TEMP_JSON" 2> /dev/null

جاوا

Client client = new Client();

String path = media_path + "organ.jpg";
byte[] imageData = Files.readAllBytes(Paths.get(path));

Content content =
    Content.fromParts(
        Part.fromText("Tell me about this instrument."),
        Part.fromBytes(imageData, "image/jpeg"));

GenerateContentResponse response =
    client.models.generateContent("gemini-3.8-flash", content, null);

System.out.println(response.text());

صوتی

Python

from google import genai

client = genai.Client()
sample_audio = client.files.upload(file=media / "sample.mp3")
response = client.models.generate_content(
    model="gemini-3.8-flash",
    contents=["Give me a summary of this audio file.", sample_audio],
)
print(response.text)

Node.js

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({apiKey: process.env.GEMINI_API_KEY});

const audio = await ai.files.upload({
  file: path.join(media, 'sample.mp3'),
});

const response = await ai.models.generateContent({
  model: 'gemini-3.8-flash',
  contents: [
    createUserContent([
      'Give me a summary of this audio file.',
      createPartFromUri(audio.uri, audio.mimeType),
    ]),
  ],
});
console.log(response.text);

رفتن

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

file, err := client.Files.UploadFromPath(
	ctx,
	filepath.Join(getMedia(), "sample.mp3"),
	&genai.UploadFileConfig{
		MIMEType: "audio/mpeg",
	},
)
if err != nil {
	log.Fatal(err)
}

parts := []*genai.Part{
	genai.NewPartFromText("Give me a summary of this audio file."),
	genai.NewPartFromURI(file.URI, file.MIMEType),
}

contents := []*genai.Content{
	genai.NewContentFromParts(parts, genai.RoleUser),
}

response, err := client.Models.GenerateContent(ctx, "gemini-3.8-flash", contents, nil)
if err != nil {
	log.Fatal(err)
}
printResponse(response)

صدف

# Use File API to upload audio data to API request.
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?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 "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

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$GEMINI_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
      "contents": [{
        "parts":[
          {"text": "Please describe this file."},
          {"file_data":{"mime_type": "audio/mpeg", "file_uri": '$file_uri'}}]
        }]
       }' 2> /dev/null > response.json

cat response.json
echo

jq ".candidates[].content.parts[].text" response.json

ویدیو

Python

from google import genai
import time

client = genai.Client()
# Video clip (CC BY 3.0) from https://peach.blender.org/download/
myfile = client.files.upload(file=media / "Big_Buck_Bunny.mp4")
print(f"{myfile=}")

# Poll until the video file is completely processed (state becomes ACTIVE).
while not myfile.state or myfile.state.name != "ACTIVE":
  print("Processing video...")
  print("File state:", myfile.state)
  time.sleep(5)
  myfile = client.files.get(name=myfile.name)

response = client.models.generate_content(
    model="gemini-3.8-flash", contents=[myfile, "Describe this video clip"]
)
print(f"{response.text=}")

Node.js

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({apiKey: process.env.GEMINI_API_KEY});

let video = await ai.files.upload({
  file: path.join(media, 'Big_Buck_Bunny.mp4'),
});

// Poll until the video file is completely processed (state becomes ACTIVE).
while (!video.state || video.state.toString() !== 'ACTIVE') {
  console.log('Processing video...');
  console.log('File state: ', video.state);
  await sleep(5000);
  video = await ai.files.get({name: video.name});
}

const response = await ai.models.generateContent({
  model: 'gemini-3.8-flash',
  contents: [
    createUserContent([
      'Describe this video clip',
      createPartFromUri(video.uri, video.mimeType),
    ]),
  ],
});
console.log(response.text);

رفتن

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

file, err := client.Files.UploadFromPath(
	ctx,
	filepath.Join(getMedia(), "Big_Buck_Bunny.mp4"),
	&genai.UploadFileConfig{
		MIMEType: "video/mp4",
	},
)
if err != nil {
	log.Fatal(err)
}

// Poll until the video file is completely processed (state becomes ACTIVE).
for file.State == genai.FileStateUnspecified || file.State != genai.FileStateActive {
	fmt.Println("Processing video...")
	fmt.Println("File state:", file.State)
	time.Sleep(5 * time.Second)

	file, err = client.Files.Get(ctx, file.Name, nil)
	if err != nil {
		log.Fatal(err)
	}
}

parts := []*genai.Part{
	genai.NewPartFromText("Describe this video clip"),
	genai.NewPartFromURI(file.URI, file.MIMEType),
}

contents := []*genai.Content{
	genai.NewContentFromParts(parts, genai.RoleUser),
}

response, err := client.Models.GenerateContent(ctx, "gemini-3.8-flash", contents, nil)
if err != nil {
	log.Fatal(err)
}
printResponse(response)

صدف

# Use File API to upload audio data to API request.
MIME_TYPE=$(file -b --mime-type "${VIDEO_PATH}")
NUM_BYTES=$(wc -c < "${VIDEO_PATH}")
DISPLAY_NAME=VIDEO

# Initial resumable request defining metadata.
# The upload url is in the response headers dump them to a file.
curl "${BASE_URL}/upload/v1beta/files?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 "@${VIDEO_PATH}" 2> /dev/null > file_info.json

file_uri=$(jq ".file.uri" file_info.json)
echo file_uri=$file_uri

state=$(jq ".file.state" file_info.json)
echo state=$state

name=$(jq ".file.name" file_info.json)
echo name=$name

while [[ "($state)" = *"PROCESSING"* ]];
do
  echo "Processing video..."
  sleep 5
  # Get the file of interest to check state
  curl https://generativelanguage.googleapis.com/v1beta/files/$name > file_info.json
  state=$(jq ".file.state" file_info.json)
done

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$GEMINI_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
      "contents": [{
        "parts":[
          {"text": "Transcribe the audio from this video, giving timestamps for salient events in the video. Also provide visual descriptions."},
          {"file_data":{"mime_type": "video/mp4", "file_uri": '$file_uri'}}]
        }]
       }' 2> /dev/null > response.json

cat response.json
echo

jq ".candidates[].content.parts[].text" response.json

PDF

Python

from google import genai

client = genai.Client()
sample_pdf = client.files.upload(file=media / "test.pdf")
response = client.models.generate_content(
    model="gemini-3.8-flash",
    contents=["Give me a summary of this document:", sample_pdf],
)
print(f"{response.text=}")

رفتن

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

file, err := client.Files.UploadFromPath(
	ctx,
	filepath.Join(getMedia(), "test.pdf"),
	&genai.UploadFileConfig{
		MIMEType: "application/pdf",
	},
)
if err != nil {
	log.Fatal(err)
}

parts := []*genai.Part{
	genai.NewPartFromText("Give me a summary of this document:"),
	genai.NewPartFromURI(file.URI, file.MIMEType),
}

contents := []*genai.Content{
	genai.NewContentFromParts(parts, genai.RoleUser),
}

response, err := client.Models.GenerateContent(ctx, "gemini-3.8-flash", contents, nil)
if err != nil {
	log.Fatal(err)
}
printResponse(response)

صدف

MIME_TYPE=$(file -b --mime-type "${PDF_PATH}")
NUM_BYTES=$(wc -c < "${PDF_PATH}")
DISPLAY_NAME=TEXT


echo $MIME_TYPE
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?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 "Content-Length: ${NUM_BYTES}" \
  -H "X-Goog-Upload-Offset: 0" \
  -H "X-Goog-Upload-Command: upload, finalize" \
  --data-binary "@${PDF_PATH}" 2> /dev/null > file_info.json

file_uri=$(jq ".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.0-flash:generateContent?key=$GEMINI_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
      "contents": [{
        "parts":[
          {"text": "Can you add a few more lines to this poem?"},
          {"file_data":{"mime_type": "application/pdf", "file_uri": '$file_uri'}}]
        }]
       }' 2> /dev/null > response.json

cat response.json
echo

jq ".candidates[].content.parts[].text" response.json

گپ

Python

from google import genai
from google.genai import types

client = genai.Client()
# Pass initial history using the "history" argument
chat = client.chats.create(
    model="gemini-3.8-flash",
    history=[
        types.Content(role="user", parts=[types.Part(text="Hello")]),
        types.Content(
            role="model",
            parts=[
                types.Part(
                    text="Great to meet you. What would you like to know?"
                )
            ],
        ),
    ],
)
response = chat.send_message(message="I have 2 dogs in my house.")
print(response.text)
response = chat.send_message(message="How many paws are in my house?")
print(response.text)

Node.js

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({apiKey: process.env.GEMINI_API_KEY});
const chat = ai.chats.create({
  model: 'gemini-3.8-flash',
  history: [
    {
      role: 'user',
      parts: [{text: 'Hello'}],
    },
    {
      role: 'model',
      parts: [{text: 'Great to meet you. What would you like to know?'}],
    },
  ],
});

const response1 = await chat.sendMessage({
  message: 'I have 2 dogs in my house.',
});
console.log('Chat response 1:', response1.text);

const response2 = await chat.sendMessage({
  message: 'How many paws are in my house?',
});
console.log('Chat response 2:', response2.text);

رفتن

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

// Pass initial history using the History field.
history := []*genai.Content{
	genai.NewContentFromText("Hello", genai.RoleUser),
	genai.NewContentFromText("Great to meet you. What would you like to know?", genai.RoleModel),
}

chat, err := client.Chats.Create(ctx, "gemini-3.8-flash", nil, history)
if err != nil {
	log.Fatal(err)
}

firstResp, err := chat.SendMessage(ctx, genai.Part{Text: "I have 2 dogs in my house."})
if err != nil {
	log.Fatal(err)
}
fmt.Println(firstResp.Text())

secondResp, err := chat.SendMessage(ctx, genai.Part{Text: "How many paws are in my house?"})
if err != nil {
	log.Fatal(err)
}
fmt.Println(secondResp.Text())

صدف

curl https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$GEMINI_API_KEY \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
      "contents": [
        {"role":"user",
         "parts":[{
           "text": "Hello"}]},
        {"role": "model",
         "parts":[{
           "text": "Great to meet you. What would you like to know?"}]},
        {"role":"user",
         "parts":[{
           "text": "I have two dogs in my house. How many paws are in my house?"}]},
      ]
    }' 2> /dev/null | grep "text"

جاوا

Client client = new Client();

Content userContent = Content.fromParts(Part.fromText("Hello"));
Content modelContent =
    Content.builder()
        .role("model")
        .parts(
            Collections.singletonList(
                Part.fromText("Great to meet you. What would you like to know?")))
        .build();

Chat chat =
    client.chats.create(
        "gemini-3.8-flash",
        GenerateContentConfig.builder()
            .systemInstruction(userContent)
            .systemInstruction(modelContent)
            .build());

GenerateContentResponse response1 = chat.sendMessage("I have 2 dogs in my house.");
System.out.println(response1.text());

GenerateContentResponse response2 = chat.sendMessage("How many paws are in my house?");
System.out.println(response2.text());

حافظه نهان

Python

from google import genai
from google.genai import types

client = genai.Client()
document = client.files.upload(file=media / "a11.txt")
model_name = "gemini-3.8-flash"

cache = client.caches.create(
    model=model_name,
    config=types.CreateCachedContentConfig(
        contents=[document],
        system_instruction="You are an expert analyzing transcripts.",
    ),
)
print(cache)

response = client.models.generate_content(
    model=model_name,
    contents="Please summarize this transcript",
    config=types.GenerateContentConfig(cached_content=cache.name),
)
print(response.text)

Node.js

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({apiKey: process.env.GEMINI_API_KEY});
const filePath = path.join(media, 'a11.txt');
const document = await ai.files.upload({
  file: filePath,
  config: {mimeType: 'text/plain'},
});
console.log('Uploaded file name:', document.name);
const modelName = 'gemini-3.8-flash';

const contents = [
  createUserContent(createPartFromUri(document.uri, document.mimeType)),
];

const cache = await ai.caches.create({
  model: modelName,
  config: {
    contents: contents,
    systemInstruction: 'You are an expert analyzing transcripts.',
  },
});
console.log('Cache created:', cache);

const response = await ai.models.generateContent({
  model: modelName,
  contents: 'Please summarize this transcript',
  config: {cachedContent: cache.name},
});
console.log('Response text:', response.text);

رفتن

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

modelName := "gemini-3.8-flash"
document, err := client.Files.UploadFromPath(
	ctx,
	filepath.Join(getMedia(), "a11.txt"),
	&genai.UploadFileConfig{
		MIMEType: "text/plain",
	},
)
if err != nil {
	log.Fatal(err)
}
parts := []*genai.Part{
	genai.NewPartFromURI(document.URI, document.MIMEType),
}
contents := []*genai.Content{
	genai.NewContentFromParts(parts, genai.RoleUser),
}
cache, err := client.Caches.Create(ctx, modelName, &genai.CreateCachedContentConfig{
	Contents: contents,
	SystemInstruction: genai.NewContentFromText(
		"You are an expert analyzing transcripts.", genai.RoleUser,
	),
})
if err != nil {
	log.Fatal(err)
}
fmt.Println("Cache created:")
fmt.Println(cache)

// Use the cache for generating content.
response, err := client.Models.GenerateContent(
	ctx,
	modelName,
	genai.Text("Please summarize this transcript"),
	&genai.GenerateContentConfig{
		CachedContent: cache.Name,
	},
)
if err != nil {
	log.Fatal(err)
}
printResponse(response)

مدل تنظیم‌شده

Python

# With Gemini 2 we're launching a new SDK. See the following doc for details.
# https://ai.google.dev/gemini-api/docs/migrate

حالت JSON

Python

from google import genai
from google.genai import types
from typing_extensions import TypedDict

class Recipe(TypedDict):
  recipe_name: str
  ingredients: list[str]

client = genai.Client()
result = client.models.generate_content(
    model="gemini-3.8-flash",
    contents="List a few popular cookie recipes.",
    config=types.GenerateContentConfig(
        response_mime_type="application/json", response_schema=list[Recipe]
    ),
)
print(result)

Node.js

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({apiKey: process.env.GEMINI_API_KEY});
const response = await ai.models.generateContent({
  model: 'gemini-3.8-flash',
  contents: 'List a few popular cookie recipes.',
  config: {
    responseMimeType: 'application/json',
    responseSchema: {
      type: 'array',
      items: {
        type: 'object',
        properties: {
          recipeName: {type: 'string'},
          ingredients: {type: 'array', items: {type: 'string'}},
        },
        required: ['recipeName', 'ingredients'],
      },
    },
  },
});
console.log(response.text);

رفتن

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

schema := &genai.Schema{
	Type: genai.TypeArray,
	Items: &genai.Schema{
		Type: genai.TypeObject,
		Properties: map[string]*genai.Schema{
			"recipe_name": {Type: genai.TypeString},
			"ingredients": {
				Type:  genai.TypeArray,
				Items: &genai.Schema{Type: genai.TypeString},
			},
		},
		Required: []string{"recipe_name"},
	},
}

config := &genai.GenerateContentConfig{
	ResponseMIMEType: "application/json",
	ResponseSchema:   schema,
}

response, err := client.Models.GenerateContent(
	ctx,
	"gemini-3.8-flash",
	genai.Text("List a few popular cookie recipes."),
	config,
)
if err != nil {
	log.Fatal(err)
}
printResponse(response)

صدف

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
    "contents": [{
      "parts":[
        {"text": "List 5 popular cookie recipes"}
        ]
    }],
    "generationConfig": {
        "response_mime_type": "application/json",
        "response_schema": {
          "type": "ARRAY",
          "items": {
            "type": "OBJECT",
            "properties": {
              "recipe_name": {"type":"STRING"},
            }
          }
        }
    }
}' 2> /dev/null | head

جاوا

Client client = new Client();

Schema recipeSchema =
    Schema.builder()
        .type(Array.class.getSimpleName())
        .items(
            Schema.builder()
                .type(Object.class.getSimpleName())
                .properties(
                    Map.of(
                        "recipe_name",
                        Schema.builder().type(String.class.getSimpleName()).build(),
                        "ingredients",
                        Schema.builder()
                            .type(Array.class.getSimpleName())
                            .items(Schema.builder().type(String.class.getSimpleName()).build())
                            .build()))
                .required(List.of("recipe_name", "ingredients"))
                .build())
        .build();

GenerateContentConfig config =
    GenerateContentConfig.builder()
        .responseMimeType("application/json")
        .responseSchema(recipeSchema)
        .build();

GenerateContentResponse response =
    client.models.generateContent(
        "gemini-3.8-flash", "List a few popular cookie recipes.", config);

System.out.println(response.text());

اجرای کد

Python

from google import genai
from google.genai import types

client = genai.Client()
response = client.models.generate_content(
    model="gemini-3.8-flash",
    contents=(
        "Write and execute code that calculates the sum of the first 50"
        " prime numbers. Ensure that only the executable code and its"
        " resulting output are generated."
    ),
)
# Each part may contain text, executable code, or an execution result.
for part in response.candidates[0].content.parts:
  print(part, "\n")

print("-" * 80)
# The .text accessor concatenates the parts into a markdown-formatted text.
print("\n", response.text)

رفتن

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

response, err := client.Models.GenerateContent(
	ctx,
	"gemini-3.8-flash",
	genai.Text(
		`Write and execute code that calculates the sum of the first 50 prime numbers.
		 Ensure that only the executable code and its resulting output are generated.`,
	),
	&genai.GenerateContentConfig{},
)
if err != nil {
	log.Fatal(err)
}

// Print the response.
printResponse(response)

fmt.Println("--------------------------------------------------------------------------------")
fmt.Println(response.Text())

جاوا

Client client = new Client();

String prompt =
    """
    Write and execute code that calculates the sum of the first 50 prime numbers.
    Ensure that only the executable code and its resulting output are generated.
    """;

GenerateContentResponse response =
    client.models.generateContent("gemini-3.8-flash", prompt, null);

for (Part part : response.candidates().get().getFirst().content().get().parts().get()) {
  System.out.println(part + "\n");
}

System.out.println("-".repeat(80));
System.out.println(response.text());

فراخوانی تابع

Python

from google import genai
from google.genai import types

client = genai.Client()

def add(a: float, b: float) -> float:
  """returns a + b."""
  return a + b

def subtract(a: float, b: float) -> float:
  """returns a - b."""
  return a - b

def multiply(a: float, b: float) -> float:
  """returns a * b."""
  return a * b

def divide(a: float, b: float) -> float:
  """returns a / b."""
  return a / b

# Create a chat session; function calling (via tools) is enabled in the config.
chat = client.chats.create(
    model="gemini-3.8-flash",
    config=types.GenerateContentConfig(
        tools=[add, subtract, multiply, divide]
    ),
)
response = chat.send_message(
    message=(
        "I have 57 cats, each owns 44 mittens, how many mittens is that in"
        " total?"
    )
)
print(response.text)

رفتن

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}
modelName := "gemini-3.8-flash"

// Create the function declarations for arithmetic operations.
addDeclaration := createArithmeticToolDeclaration("addNumbers", "Return the result of adding two numbers.")
subtractDeclaration := createArithmeticToolDeclaration("subtractNumbers", "Return the result of subtracting the second number from the first.")
multiplyDeclaration := createArithmeticToolDeclaration("multiplyNumbers", "Return the product of two numbers.")
divideDeclaration := createArithmeticToolDeclaration("divideNumbers", "Return the quotient of dividing the first number by the second.")

// Group the function declarations as a tool.
tools := []*genai.Tool{
	{
		FunctionDeclarations: []*genai.FunctionDeclaration{
			addDeclaration,
			subtractDeclaration,
			multiplyDeclaration,
			divideDeclaration,
		},
	},
}

// Create the content prompt.
contents := []*genai.Content{
	genai.NewContentFromText(
		"I have 57 cats, each owns 44 mittens, how many mittens is that in total?", genai.RoleUser,
	),
}

// Set up the generate content configuration with function calling enabled.
config := &genai.GenerateContentConfig{
	Tools: tools,
	ToolConfig: &genai.ToolConfig{
		FunctionCallingConfig: &genai.FunctionCallingConfig{
			// The mode equivalent to FunctionCallingConfigMode.ANY in JS.
			Mode: genai.FunctionCallingConfigModeAny,
		},
	},
}

genContentResp, err := client.Models.GenerateContent(ctx, modelName, contents, config)
if err != nil {
	log.Fatal(err)
}

// Assume the response includes a list of function calls.
if len(genContentResp.FunctionCalls()) == 0 {
	log.Println("No function call returned from the AI.")
	return nil
}
functionCall := genContentResp.FunctionCalls()[0]
log.Printf("Function call: %+v\n", functionCall)

// Marshal the Args map into JSON bytes.
argsMap, err := json.Marshal(functionCall.Args)
if err != nil {
	log.Fatal(err)
}

// Unmarshal the JSON bytes into the ArithmeticArgs struct.
var args ArithmeticArgs
if err := json.Unmarshal(argsMap, &args); err != nil {
	log.Fatal(err)
}

// Map the function name to the actual arithmetic function.
var result float64
switch functionCall.Name {
case "addNumbers":
	result = add(args.FirstParam, args.SecondParam)
case "subtractNumbers":
	result = subtract(args.FirstParam, args.SecondParam)
case "multiplyNumbers":
	result = multiply(args.FirstParam, args.SecondParam)
case "divideNumbers":
	result = divide(args.FirstParam, args.SecondParam)
default:
	return fmt.Errorf("unimplemented function: %s", functionCall.Name)
}
log.Printf("Function result: %v\n", result)

// Prepare the final result message as content.
resultContents := []*genai.Content{
	genai.NewContentFromText("The final result is "+fmt.Sprintf("%v", result), genai.RoleUser),
}

// Use GenerateContent to send the final result.
finalResponse, err := client.Models.GenerateContent(ctx, modelName, resultContents, &genai.GenerateContentConfig{})
if err != nil {
	log.Fatal(err)
}

printResponse(finalResponse)

Node.js

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({apiKey: process.env.GEMINI_API_KEY});

/**
 * The add function returns the sum of two numbers.
 * @param {number} a
 * @param {number} b
 * @returns {number}
 */
function add(a, b) {
  return a + b;
}

/**
 * The subtract function returns the difference (a - b).
 * @param {number} a
 * @param {number} b
 * @returns {number}
 */
function subtract(a, b) {
  return a - b;
}

/**
 * The multiply function returns the product of two numbers.
 * @param {number} a
 * @param {number} b
 * @returns {number}
 */
function multiply(a, b) {
  return a * b;
}

/**
 * The divide function returns the quotient of a divided by b.
 * @param {number} a
 * @param {number} b
 * @returns {number}
 */
function divide(a, b) {
  return a / b;
}

const addDeclaration = {
  name: 'addNumbers',
  parameters: {
    type: 'object',
    description: 'Return the result of adding two numbers.',
    properties: {
      firstParam: {
        type: 'number',
        description:
            'The first parameter which can be an integer or a floating point number.',
      },
      secondParam: {
        type: 'number',
        description:
            'The second parameter which can be an integer or a floating point number.',
      },
    },
    required: ['firstParam', 'secondParam'],
  },
};

const subtractDeclaration = {
  name: 'subtractNumbers',
  parameters: {
    type: 'object',
    description:
        'Return the result of subtracting the second number from the first.',
    properties: {
      firstParam: {
        type: 'number',
        description: 'The first parameter.',
      },
      secondParam: {
        type: 'number',
        description: 'The second parameter.',
      },
    },
    required: ['firstParam', 'secondParam'],
  },
};

const multiplyDeclaration = {
  name: 'multiplyNumbers',
  parameters: {
    type: 'object',
    description: 'Return the product of two numbers.',
    properties: {
      firstParam: {
        type: 'number',
        description: 'The first parameter.',
      },
      secondParam: {
        type: 'number',
        description: 'The second parameter.',
      },
    },
    required: ['firstParam', 'secondParam'],
  },
};

const divideDeclaration = {
  name: 'divideNumbers',
  parameters: {
    type: 'object',
    description:
        'Return the quotient of dividing the first number by the second.',
    properties: {
      firstParam: {
        type: 'number',
        description: 'The first parameter.',
      },
      secondParam: {
        type: 'number',
        description: 'The second parameter.',
      },
    },
    required: ['firstParam', 'secondParam'],
  },
};

// Step 1: Call generateContent with function calling enabled.
const generateContentResponse = await ai.models.generateContent({
  model: 'gemini-3.8-flash',
  contents:
      'I have 57 cats, each owns 44 mittens, how many mittens is that in total?',
  config: {
    toolConfig: {
      functionCallingConfig: {
        mode: FunctionCallingConfigMode.ANY,
      },
    },
    tools: [
      {
        functionDeclarations: [
          addDeclaration,
          subtractDeclaration,
          multiplyDeclaration,
          divideDeclaration,
        ],
      },
    ],
  },
});

// Step 2: Extract the function call.(
// Assuming the response contains a 'functionCalls' array.
const functionCall = generateContentResponse.functionCalls &&
    generateContentResponse.functionCalls[0];
console.log(functionCall);

// Parse the arguments.
const args = functionCall.args;
// Expected args format: { firstParam: number, secondParam: number }

// Step 3: Invoke the actual function based on the function name.
const functionMapping = {
  addNumbers: add,
  subtractNumbers: subtract,
  multiplyNumbers: multiply,
  divideNumbers: divide,
};
const func = functionMapping[functionCall.name];
if (!func) {
  console.error('Unimplemented error:', functionCall.name);
  return generateContentResponse;
}
const resultValue = func(args.firstParam, args.secondParam);
console.log('Function result:', resultValue);

// Step 4: Use the chat API to send the result as the final answer.
const chat = ai.chats.create({model: 'gemini-3.8-flash'});
const chatResponse = await chat.sendMessage({
  message: 'The final result is ' + resultValue,
});
console.log(chatResponse.text);

صدف


cat > tools.json << EOF
{
  "function_declarations": [
    {
      "name": "enable_lights",
      "description": "Turn on the lighting system."
    },
    {
      "name": "set_light_color",
      "description": "Set the light color. Lights must be enabled for this to work.",
      "parameters": {
        "type": "object",
        "properties": {
          "rgb_hex": {
            "type": "string",
            "description": "The light color as a 6-digit hex string, e.g. ff0000 for red."
          }
        },
        "required": [
          "rgb_hex"
        ]
      }
    },
    {
      "name": "stop_lights",
      "description": "Turn off the lighting system."
    }
  ]
} 
EOF

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$GEMINI_API_KEY" \
  -H 'Content-Type: application/json' \
  -d @<(echo '
  {
    "system_instruction": {
      "parts": {
        "text": "You are a helpful lighting system bot. You can turn lights on and off, and you can set the color. Do not perform any other tasks."
      }
    },
    "tools": ['$(cat tools.json)'],

    "tool_config": {
      "function_calling_config": {"mode": "auto"}
    },

    "contents": {
      "role": "user",
      "parts": {
        "text": "Turn on the lights please."
      }
    }
  }
') 2>/dev/null |sed -n '/"content"/,/"finishReason"/p'

جاوا

Client client = new Client();

FunctionDeclaration addFunction =
    FunctionDeclaration.builder()
        .name("addNumbers")
        .parameters(
            Schema.builder()
                .type("object")
                .properties(
                    Map.of(
                        "firstParam",
                            Schema.builder().type("number").description("First number").build(),
                        "secondParam",
                            Schema.builder()
                                .type("number")
                                .description("Second number")
                                .build()))
                .required(Arrays.asList("firstParam", "secondParam"))
                .build())
        .build();

FunctionDeclaration subtractFunction =
    FunctionDeclaration.builder()
        .name("subtractNumbers")
        .parameters(
            Schema.builder()
                .type("object")
                .properties(
                    Map.of(
                        "firstParam",
                            Schema.builder().type("number").description("First number").build(),
                        "secondParam",
                            Schema.builder()
                                .type("number")
                                .description("Second number")
                                .build()))
                .required(Arrays.asList("firstParam", "secondParam"))
                .build())
        .build();

FunctionDeclaration multiplyFunction =
    FunctionDeclaration.builder()
        .name("multiplyNumbers")
        .parameters(
            Schema.builder()
                .type("object")
                .properties(
                    Map.of(
                        "firstParam",
                            Schema.builder().type("number").description("First number").build(),
                        "secondParam",
                            Schema.builder()
                                .type("number")
                                .description("Second number")
                                .build()))
                .required(Arrays.asList("firstParam", "secondParam"))
                .build())
        .build();

FunctionDeclaration divideFunction =
    FunctionDeclaration.builder()
        .name("divideNumbers")
        .parameters(
            Schema.builder()
                .type("object")
                .properties(
                    Map.of(
                        "firstParam",
                            Schema.builder().type("number").description("First number").build(),
                        "secondParam",
                            Schema.builder()
                                .type("number")
                                .description("Second number")
                                .build()))
                .required(Arrays.asList("firstParam", "secondParam"))
                .build())
        .build();

GenerateContentConfig config =
    GenerateContentConfig.builder()
        .toolConfig(
            ToolConfig.builder()
                .functionCallingConfig(FunctionCallingConfig.builder().mode("ANY").build())
                .build())
        .tools(
            Collections.singletonList(
                Tool.builder()
                    .functionDeclarations(
                        Arrays.asList(
                            addFunction, subtractFunction, divideFunction, multiplyFunction))
                    .build()))
        .build();

GenerateContentResponse response =
    client.models.generateContent(
        "gemini-3.8-flash",
        "I have 57 cats, each owns 44 mittens, how many mittens is that in total?",
        config);

if (response.functionCalls() == null || response.functionCalls().isEmpty()) {
  System.err.println("No function call received");
  return null;
}

var functionCall = response.functionCalls().getFirst();
String functionName = functionCall.name().get();
var arguments = functionCall.args();

Map<String, BiFunction<Double, Double, Double>> functionMapping = new HashMap<>();
functionMapping.put("addNumbers", (a, b) -> a + b);
functionMapping.put("subtractNumbers", (a, b) -> a - b);
functionMapping.put("multiplyNumbers", (a, b) -> a * b);
functionMapping.put("divideNumbers", (a, b) -> b != 0 ? a / b : Double.NaN);

BiFunction<Double, Double, Double> function = functionMapping.get(functionName);

Number firstParam = (Number) arguments.get().get("firstParam");
Number secondParam = (Number) arguments.get().get("secondParam");
Double result = function.apply(firstParam.doubleValue(), secondParam.doubleValue());

System.out.println(result);

پیکربندی تولید

Python

from google import genai
from google.genai import types

client = genai.Client()
response = client.models.generate_content(
    model="gemini-3.8-flash",
    contents="Tell me a story about a magic backpack.",
    config=types.GenerateContentConfig(
        candidate_count=1,
        stop_sequences=["x"],
        max_output_tokens=20,
        temperature=1.0,
    ),
)
print(response.text)

Node.js

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({apiKey: process.env.GEMINI_API_KEY});

const response = await ai.models.generateContent({
  model: 'gemini-3.8-flash',
  contents: 'Tell me a story about a magic backpack.',
  config: {
    candidateCount: 1,
    stopSequences: ['x'],
    maxOutputTokens: 20,
    temperature: 1.0,
  },
});

console.log(response.text);

رفتن

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

// Create local variables for parameters.
candidateCount := int32(1)
maxOutputTokens := int32(20)
temperature := float32(1.0)

response, err := client.Models.GenerateContent(
	ctx,
	"gemini-3.8-flash",
	genai.Text("Tell me a story about a magic backpack."),
	&genai.GenerateContentConfig{
		CandidateCount:  candidateCount,
		StopSequences:   []string{"x"},
		MaxOutputTokens: maxOutputTokens,
		Temperature:     &temperature,
	},
)
if err != nil {
	log.Fatal(err)
}

printResponse(response)

صدف

curl https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$GEMINI_API_KEY \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
        "contents": [{
            "parts":[
                {"text": "Explain how AI works"}
            ]
        }],
        "generationConfig": {
            "stopSequences": [
                "Title"
            ],
            "temperature": 1.0,
            "maxOutputTokens": 800,
            "topP": 0.8,
            "topK": 10
        }
    }'  2> /dev/null | grep "text"

جاوا

Client client = new Client();

GenerateContentConfig config =
    GenerateContentConfig.builder()
        .candidateCount(1)
        .stopSequences(List.of("x"))
        .maxOutputTokens(20)
        .temperature(1.0F)
        .build();

GenerateContentResponse response =
    client.models.generateContent(
        "gemini-3.8-flash", "Tell me a story about a magic backpack.", config);

System.out.println(response.text());

تنظیمات ایمنی

Python

from google import genai
from google.genai import types

client = genai.Client()
unsafe_prompt = (
    "I support Martians Soccer Club and I think Jupiterians Football Club"
    " sucks! Write a ironic phrase about them including expletives."
)
response = client.models.generate_content(
    model="gemini-3.8-flash",
    contents=unsafe_prompt,
    config=types.GenerateContentConfig(
        safety_settings=[
            types.SafetySetting(
                category="HARM_CATEGORY_HATE_SPEECH",
                threshold="BLOCK_MEDIUM_AND_ABOVE",
            ),
            types.SafetySetting(
                category="HARM_CATEGORY_HARASSMENT",
                threshold="BLOCK_ONLY_HIGH",
            ),
        ]
    ),
)
try:
  print(response.text)
except Exception:
  print("No information generated by the model.")

print(response.candidates[0].safety_ratings)

Node.js

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({apiKey: process.env.GEMINI_API_KEY});
const unsafePrompt =
    'I support Martians Soccer Club and I think Jupiterians Football Club sucks! Write a ironic phrase about them including expletives.';

const response = await ai.models.generateContent({
  model: 'gemini-3.8-flash',
  contents: unsafePrompt,
  config: {
    safetySettings: [
      {
        category: 'HARM_CATEGORY_HATE_SPEECH',
        threshold: 'BLOCK_MEDIUM_AND_ABOVE',
      },
      {
        category: 'HARM_CATEGORY_HARASSMENT',
        threshold: 'BLOCK_ONLY_HIGH',
      },
    ],
  },
});

try {
  console.log('Generated text:', response.text);
} catch (error) {
  console.log('No information generated by the model.');
}
console.log('Safety ratings:', response.candidates[0].safetyRatings);

رفتن

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

unsafePrompt := "I support Martians Soccer Club and I think Jupiterians Football Club sucks! " +
	"Write a ironic phrase about them including expletives."

config := &genai.GenerateContentConfig{
	SafetySettings: []*genai.SafetySetting{
		{
			Category:  "HARM_CATEGORY_HATE_SPEECH",
			Threshold: "BLOCK_MEDIUM_AND_ABOVE",
		},
		{
			Category:  "HARM_CATEGORY_HARASSMENT",
			Threshold: "BLOCK_ONLY_HIGH",
		},
	},
}
contents := []*genai.Content{
	genai.NewContentFromText(unsafePrompt, genai.RoleUser),
}
response, err := client.Models.GenerateContent(ctx, "gemini-3.8-flash", contents, config)
if err != nil {
	log.Fatal(err)
}

// Print the generated text.
text := response.Text()
fmt.Println("Generated text:", text)

// Print the and safety ratings from the first candidate.
if len(response.Candidates) > 0 {
	fmt.Println("Finish reason:", response.Candidates[0].FinishReason)
	safetyRatings, err := json.MarshalIndent(response.Candidates[0].SafetyRatings, "", "  ")
	if err != nil {
		return err
	}
	fmt.Println("Safety ratings:", string(safetyRatings))
} else {
	fmt.Println("No candidate returned.")
}

صدف

echo '{
    "safetySettings": [
        {"category": "HARM_CATEGORY_HARASSMENT", "threshold": "BLOCK_ONLY_HIGH"},
        {"category": "HARM_CATEGORY_HATE_SPEECH", "threshold": "BLOCK_MEDIUM_AND_ABOVE"}
    ],
    "contents": [{
        "parts":[{
            "text": "'I support Martians Soccer Club and I think Jupiterians Football Club sucks! Write a ironic phrase about them.'"}]}]}' > request.json

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$GEMINI_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d @request.json 2> /dev/null

جاوا

Client client = new Client();

String unsafePrompt =
    """
     I support Martians Soccer Club and I think Jupiterians Football Club sucks!
     Write a ironic phrase about them including expletives.
    """;

GenerateContentConfig config =
    GenerateContentConfig.builder()
        .safetySettings(
            Arrays.asList(
                SafetySetting.builder()
                    .category("HARM_CATEGORY_HATE_SPEECH")
                    .threshold("BLOCK_MEDIUM_AND_ABOVE")
                    .build(),
                SafetySetting.builder()
                    .category("HARM_CATEGORY_HARASSMENT")
                    .threshold("BLOCK_ONLY_HIGH")
                    .build()))
        .build();

GenerateContentResponse response =
    client.models.generateContent("gemini-3.8-flash", unsafePrompt, config);

try {
  System.out.println(response.text());
} catch (Exception e) {
  System.out.println("No information generated by the model");
}

System.out.println(response.candidates().get().getFirst().safetyRatings());

دستورالعمل سیستم

Python

from google import genai
from google.genai import types

client = genai.Client()
response = client.models.generate_content(
    model="gemini-3.8-flash",
    contents="Good morning! How are you?",
    config=types.GenerateContentConfig(
        system_instruction="You are a cat. Your name is Neko."
    ),
)
print(response.text)

Node.js

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({apiKey: process.env.GEMINI_API_KEY});
const response = await ai.models.generateContent({
  model: 'gemini-3.8-flash',
  contents: 'Good morning! How are you?',
  config: {
    systemInstruction: 'You are a cat. Your name is Neko.',
  },
});
console.log(response.text);

رفتن

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

// Construct the user message contents.
contents := []*genai.Content{
	genai.NewContentFromText("Good morning! How are you?", genai.RoleUser),
}

// Set the system instruction as a *genai.Content.
config := &genai.GenerateContentConfig{
	SystemInstruction: genai.NewContentFromText("You are a cat. Your name is Neko.", genai.RoleUser),
}

response, err := client.Models.GenerateContent(ctx, "gemini-3.8-flash", contents, config)
if err != nil {
	log.Fatal(err)
}
printResponse(response)

صدف

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{ "system_instruction": {
    "parts":
      { "text": "You are a cat. Your name is Neko."}},
    "contents": {
      "parts": {
        "text": "Hello there"}}}'

جاوا

Client client = new Client();

Part textPart = Part.builder().text("You are a cat. Your name is Neko.").build();

Content content = Content.builder().role("system").parts(ImmutableList.of(textPart)).build();

GenerateContentConfig config =
    GenerateContentConfig.builder().systemInstruction(content).build();

GenerateContentResponse response =
    client.models.generateContent("gemini-3.8-flash", "Good morning! How are you?", config);

System.out.println(response.text());

بدنه پاسخ

اگر موفقیت‌آمیز باشد، بدنه پاسخ حاوی نمونه‌ای از GenerateContentResponse است.

روش: models.streamGenerateContent

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

نقطه پایانی

پست https://generativelanguage.googleapis.com/v1beta/{model=models/*}:streamGenerateContent

پارامترهای مسیر

model string

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

قالب: models/{model}. این فرم models/{model} را می‌گیرد.

متن درخواست

بدنه درخواست حاوی داده‌هایی با ساختار زیر است:

فیلدها
contents[] object (Content)

الزامی. محتوای مکالمه فعلی با مدل.

برای پُرسمان‌های تک‌نوبتی، این یک نمونه تکی است. برای پُرسمان‌های چندنوبتی مثل گپ، این فیلد تکراری است که حاوی سابقه مکالمه و جدیدترین درخواست است.

tools[] object (Tool)

اختیاری. فهرستی از Tools که Model ممکن است برای تولید پاسخ بعدی استفاده کند.

Tool قطعه کدی است که سیستم را قادر می‌سازد با سیستم‌های خارجی تعامل داشته باشد تا کنش یا مجموعه‌ای از کنش‌ها را خارج از دانش و محدوده Model انجام دهد. Toolهای پشتیبانی‌شده Function و codeExecution هستند. برای کسب اطلاعات بیشتر، به راهنماهای فراخوانی تابع و اجرای کد مراجعه کنید.

toolConfig object (ToolConfig)

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

safetySettings[] object (SafetySetting)

اختیاری. فهرستی از SafetySetting نمونه منحصربه‌فرد برای مسدود کردن محتوای ناایمن.

این مورد در GenerateContentRequest.contents و GenerateContentResponse.candidates اجرا خواهد شد. برای هر نوع SafetyCategory نباید بیشتر از یک تنظیم وجود داشته باشد. میانای برنامه‌سازی کاربردی هر محتوا و پاسخی را که آستانه‌های تعیین‌شده توسط این تنظیمات را برآورده نکند مسدود خواهد کرد. این فهرست تنظیمات پیش‌فرض را برای هر SafetyCategory مشخص‌شده در safetySettings لغو می‌کند. اگر برای SafetyCategory ارائه‌شده در فهرست، SafetySetting وجود نداشته باشد، API از تنظیم ایمنی پیش‌فرض برای آن دسته استفاده خواهد کرد. دسته‌های آسیب HARM_CATEGORY_HATE_SPEECH،‏ HARM_CATEGORY_SEXUALLY_EXPLICIT،‏ HARM_CATEGORY_DANGEROUS_CONTENT،‏ HARM_CATEGORY_HARASSMENT،‏ HARM_CATEGORY_CIVIC_INTEGRITY،‏ HARM_CATEGORY_JAILBREAK پشتیبانی می‌شوند. برای اطلاعات دقیق درباره تنظیمات ایمنی دردسترس، به راهنما مراجعه کنید. همچنین به راهنمای ایمنی مراجعه کنید تا با نحوه گنجاندن ملاحظات ایمنی در برنامه‌های هوش مصنوعی خود آشنا شوید.

continuationToken string (bytes format)

اختیاری. یک کد ادامه مبهم که برای ازسر گرفتن تولید از پاسخ قبلی models.generateContent یا models.streamGenerateContent استفاده می‌شود که با تنظیم finishReason روی CONTINUATION متوقف شده است. توجه داشته باشید که contents الزامی است و باید پیام‌واره و سابقه مکالمه را از درخواست اولیه به‌طور یکسان تکرار کند، زمانی که توکن ادامه در یک درخواست ارائه می‌شود.

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

labels map (key: string, value: string)

اختیاری. برچسب‌های دارای فراداده تعریف‌شده توسط کاربر برای درخواست.

اختیاری. برچسب‌ها باید از الزامات استاندارد برچسب Cloud یکپارچه پیروی کنند: - کلیدهای برچسب باید با حرف شروع شوند. - کلیدها و مقادیر برچسب نباید بیشتر از ۶۳ نویسه (نقطه کد یونیکد) باشند و فقط می‌توانند حاوی حروف کوچک، نویسه‌های عددی، زیرخط، و خط تیره باشند. - نویسه‌های بین‌المللی مجاز هستند.

کاربرد: - شناسه‌های ایمنی از تجمیع‌کننده‌ها: از کلید safety_identifier استفاده کنید (مثلاً {"safety_identifier": "user_session_123"})

شیئی که حاوی فهرستی از جفت‌های "key": value است. مثال: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

systemInstruction object (Content)

اختیاری. توسعه‌دهنده دستورالعمل(های) سیستم را تنظیم کرده است. درحال‌حاضر، فقط نوشتار.

generationConfig object (GenerationConfig)

اختیاری. گزینه‌های پیکربندی برای تولید و بروندادهای مدل.

cachedContent string

اختیاری. نام محتوای ذخیره‌شده در حافظه نهان برای استفاده به‌عنوان بافت برای ارائه پیش‌بینی. قالب: cachedContents/{cachedContent}

serviceTier enum (ServiceTier)

اختیاری. رده سرویس درخواست.

store boolean

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

درخواست نمونه

نوشتار

Python

from google import genai

client = genai.Client()
response = client.models.generate_content_stream(
    model="gemini-3.8-flash",
    contents="Write a story about a magic backpack.",
)
for chunk in response:
  print(chunk.text)
  print("_" * 80)

Node.js

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({apiKey: process.env.GEMINI_API_KEY});

const response = await ai.models.generateContentStream({
  model: 'gemini-3.8-flash',
  contents: 'Write a story about a magic backpack.',
});
let text = '';
for await (const chunk of response) {
  console.log(chunk.text);
  text += chunk.text;
}

رفتن

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}
contents := []*genai.Content{
	genai.NewContentFromText("Write a story about a magic backpack.", genai.RoleUser),
}
for response, err := range client.Models.GenerateContentStream(
	ctx,
	"gemini-3.8-flash",
	contents,
	nil,
) {
	if err != nil {
		log.Fatal(err)
	}
	fmt.Print(response.Candidates[0].Content.Parts[0].Text)
}

صدف

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:streamGenerateContent?alt=sse&key=${GEMINI_API_KEY}" \
        -H 'Content-Type: application/json' \
        --no-buffer \
        -d '{ "contents":[{"parts":[{"text": "Write a story about a magic backpack."}]}]}'

جاوا

Client client = new Client();

ResponseStream<GenerateContentResponse> responseStream =
    client.models.generateContentStream(
        "gemini-3.8-flash", "Write a story about a magic backpack.", null);

StringBuilder response = new StringBuilder();
for (GenerateContentResponse res : responseStream) {
  System.out.print(res.text());
  response.append(res.text());
}

responseStream.close();

تصویر

Python

from google import genai
import PIL.Image

client = genai.Client()
organ = PIL.Image.open(media / "organ.jpg")
response = client.models.generate_content_stream(
    model="gemini-3.8-flash",
    contents=["Tell me about this instrument", organ],
)
for chunk in response:
  print(chunk.text)
  print("_" * 80)

Node.js

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({apiKey: process.env.GEMINI_API_KEY});

const organ = await ai.files.upload({
  file: path.join(media, 'organ.jpg'),
});

const response = await ai.models.generateContentStream({
  model: 'gemini-3.8-flash',
  contents: [
    createUserContent([
      'Tell me about this instrument',
      createPartFromUri(organ.uri, organ.mimeType)
    ]),
  ],
});
let text = '';
for await (const chunk of response) {
  console.log(chunk.text);
  text += chunk.text;
}

رفتن

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}
file, err := client.Files.UploadFromPath(
	ctx,
	filepath.Join(getMedia(), "organ.jpg"),
	&genai.UploadFileConfig{
		MIMEType: "image/jpeg",
	},
)
if err != nil {
	log.Fatal(err)
}
parts := []*genai.Part{
	genai.NewPartFromText("Tell me about this instrument"),
	genai.NewPartFromURI(file.URI, file.MIMEType),
}
contents := []*genai.Content{
	genai.NewContentFromParts(parts, genai.RoleUser),
}
for response, err := range client.Models.GenerateContentStream(
	ctx,
	"gemini-3.8-flash",
	contents,
	nil,
) {
	if err != nil {
		log.Fatal(err)
	}
	fmt.Print(response.Candidates[0].Content.Parts[0].Text)
}

صدف

cat > "$TEMP_JSON" << EOF
{
  "contents": [{
    "parts":[
      {"text": "Tell me about this instrument"},
      {
        "inline_data": {
          "mime_type":"image/jpeg",
          "data": "$(cat "$TEMP_B64")"
        }
      }
    ]
  }]
}
EOF

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:streamGenerateContent?alt=sse&key=$GEMINI_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d "@$TEMP_JSON" 2> /dev/null

جاوا

Client client = new Client();

String path = media_path + "organ.jpg";
byte[] imageData = Files.readAllBytes(Paths.get(path));

Content content =
    Content.fromParts(
        Part.fromText("Tell me about this instrument."),
        Part.fromBytes(imageData, "image/jpeg"));

ResponseStream<GenerateContentResponse> responseStream =
    client.models.generateContentStream("gemini-3.8-flash", content, null);

StringBuilder response = new StringBuilder();
for (GenerateContentResponse res : responseStream) {
  System.out.print(res.text());
  response.append(res.text());
}

responseStream.close();

صوتی

Python

from google import genai

client = genai.Client()
sample_audio = client.files.upload(file=media / "sample.mp3")
response = client.models.generate_content_stream(
    model="gemini-3.8-flash",
    contents=["Give me a summary of this audio file.", sample_audio],
)
for chunk in response:
  print(chunk.text)
  print("_" * 80)

رفتن

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

file, err := client.Files.UploadFromPath(
	ctx,
	filepath.Join(getMedia(), "sample.mp3"),
	&genai.UploadFileConfig{
		MIMEType: "audio/mpeg",
	},
)
if err != nil {
	log.Fatal(err)
}

parts := []*genai.Part{
	genai.NewPartFromText("Give me a summary of this audio file."),
	genai.NewPartFromURI(file.URI, file.MIMEType),
}

contents := []*genai.Content{
	genai.NewContentFromParts(parts, genai.RoleUser),
}

for result, err := range client.Models.GenerateContentStream(
	ctx,
	"gemini-3.8-flash",
	contents,
	nil,
) {
	if err != nil {
		log.Fatal(err)
	}
	fmt.Print(result.Candidates[0].Content.Parts[0].Text)
}

صدف

# Use File API to upload audio data to API request.
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?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 "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

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:streamGenerateContent?alt=sse&key=$GEMINI_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
      "contents": [{
        "parts":[
          {"text": "Please describe this file."},
          {"file_data":{"mime_type": "audio/mpeg", "file_uri": '$file_uri'}}]
        }]
       }' 2> /dev/null > response.json

cat response.json
echo

ویدیو

Python

from google import genai
import time

client = genai.Client()
# Video clip (CC BY 3.0) from https://peach.blender.org/download/
myfile = client.files.upload(file=media / "Big_Buck_Bunny.mp4")
print(f"{myfile=}")

# Poll until the video file is completely processed (state becomes ACTIVE).
while not myfile.state or myfile.state.name != "ACTIVE":
  print("Processing video...")
  print("File state:", myfile.state)
  time.sleep(5)
  myfile = client.files.get(name=myfile.name)

response = client.models.generate_content_stream(
    model="gemini-3.8-flash", contents=[myfile, "Describe this video clip"]
)
for chunk in response:
  print(chunk.text)
  print("_" * 80)

Node.js

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({apiKey: process.env.GEMINI_API_KEY});

let video = await ai.files.upload({
  file: path.join(media, 'Big_Buck_Bunny.mp4'),
});

// Poll until the video file is completely processed (state becomes ACTIVE).
while (!video.state || video.state.toString() !== 'ACTIVE') {
  console.log('Processing video...');
  console.log('File state: ', video.state);
  await sleep(5000);
  video = await ai.files.get({name: video.name});
}

const response = await ai.models.generateContentStream({
  model: 'gemini-3.8-flash',
  contents: [
    createUserContent([
      'Describe this video clip',
      createPartFromUri(video.uri, video.mimeType),
    ]),
  ],
});
let text = '';
for await (const chunk of response) {
  console.log(chunk.text);
  text += chunk.text;
}

رفتن

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

file, err := client.Files.UploadFromPath(
	ctx,
	filepath.Join(getMedia(), "Big_Buck_Bunny.mp4"),
	&genai.UploadFileConfig{
		MIMEType: "video/mp4",
	},
)
if err != nil {
	log.Fatal(err)
}

// Poll until the video file is completely processed (state becomes ACTIVE).
for file.State == genai.FileStateUnspecified || file.State != genai.FileStateActive {
	fmt.Println("Processing video...")
	fmt.Println("File state:", file.State)
	time.Sleep(5 * time.Second)

	file, err = client.Files.Get(ctx, file.Name, nil)
	if err != nil {
		log.Fatal(err)
	}
}

parts := []*genai.Part{
	genai.NewPartFromText("Describe this video clip"),
	genai.NewPartFromURI(file.URI, file.MIMEType),
}

contents := []*genai.Content{
	genai.NewContentFromParts(parts, genai.RoleUser),
}

for result, err := range client.Models.GenerateContentStream(
	ctx,
	"gemini-3.8-flash",
	contents,
	nil,
) {
	if err != nil {
		log.Fatal(err)
	}
	fmt.Print(result.Candidates[0].Content.Parts[0].Text)
}

صدف

# Use File API to upload audio data to API request.
MIME_TYPE=$(file -b --mime-type "${VIDEO_PATH}")
NUM_BYTES=$(wc -c < "${VIDEO_PATH}")
DISPLAY_NAME=VIDEO_PATH

# Initial resumable request defining metadata.
# The upload url is in the response headers dump them to a file.
curl "${BASE_URL}/upload/v1beta/files?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 "Content-Length: ${NUM_BYTES}" \
  -H "X-Goog-Upload-Offset: 0" \
  -H "X-Goog-Upload-Command: upload, finalize" \
  --data-binary "@${VIDEO_PATH}" 2> /dev/null > file_info.json

file_uri=$(jq ".file.uri" file_info.json)
echo file_uri=$file_uri

state=$(jq ".file.state" file_info.json)
echo state=$state

while [[ "($state)" = *"PROCESSING"* ]];
do
  echo "Processing video..."
  sleep 5
  # Get the file of interest to check state
  curl https://generativelanguage.googleapis.com/v1beta/files/$name > file_info.json
  state=$(jq ".file.state" file_info.json)
done

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:streamGenerateContent?alt=sse&key=$GEMINI_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
      "contents": [{
        "parts":[
          {"text": "Please describe this file."},
          {"file_data":{"mime_type": "video/mp4", "file_uri": '$file_uri'}}]
        }]
       }' 2> /dev/null > response.json

cat response.json
echo

PDF

Python

from google import genai

client = genai.Client()
sample_pdf = client.files.upload(file=media / "test.pdf")
response = client.models.generate_content_stream(
    model="gemini-3.8-flash",
    contents=["Give me a summary of this document:", sample_pdf],
)

for chunk in response:
  print(chunk.text)
  print("_" * 80)

رفتن

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

file, err := client.Files.UploadFromPath(
	ctx,
	filepath.Join(getMedia(), "test.pdf"),
	&genai.UploadFileConfig{
		MIMEType: "application/pdf",
	},
)
if err != nil {
	log.Fatal(err)
}

parts := []*genai.Part{
	genai.NewPartFromText("Give me a summary of this document:"),
	genai.NewPartFromURI(file.URI, file.MIMEType),
}

contents := []*genai.Content{
	genai.NewContentFromParts(parts, genai.RoleUser),
}

for result, err := range client.Models.GenerateContentStream(
	ctx,
	"gemini-3.8-flash",
	contents,
	nil,
) {
	if err != nil {
		log.Fatal(err)
	}
	fmt.Print(result.Candidates[0].Content.Parts[0].Text)
}

صدف

MIME_TYPE=$(file -b --mime-type "${PDF_PATH}")
NUM_BYTES=$(wc -c < "${PDF_PATH}")
DISPLAY_NAME=TEXT


echo $MIME_TYPE
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?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 "Content-Length: ${NUM_BYTES}" \
  -H "X-Goog-Upload-Offset: 0" \
  -H "X-Goog-Upload-Command: upload, finalize" \
  --data-binary "@${PDF_PATH}" 2> /dev/null > file_info.json

file_uri=$(jq ".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.0-flash:streamGenerateContent?alt=sse&key=$GEMINI_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
      "contents": [{
        "parts":[
          {"text": "Can you add a few more lines to this poem?"},
          {"file_data":{"mime_type": "application/pdf", "file_uri": '$file_uri'}}]
        }]
       }' 2> /dev/null > response.json

cat response.json
echo

گپ

Python

from google import genai
from google.genai import types

client = genai.Client()
chat = client.chats.create(
    model="gemini-3.8-flash",
    history=[
        types.Content(role="user", parts=[types.Part(text="Hello")]),
        types.Content(
            role="model",
            parts=[
                types.Part(
                    text="Great to meet you. What would you like to know?"
                )
            ],
        ),
    ],
)
response = chat.send_message_stream(message="I have 2 dogs in my house.")
for chunk in response:
  print(chunk.text)
  print("_" * 80)
response = chat.send_message_stream(
    message="How many paws are in my house?"
)
for chunk in response:
  print(chunk.text)
  print("_" * 80)

print(chat.get_history())

Node.js

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({apiKey: process.env.GEMINI_API_KEY});
const chat = ai.chats.create({
  model: 'gemini-3.8-flash',
  history: [
    {
      role: 'user',
      parts: [{text: 'Hello'}],
    },
    {
      role: 'model',
      parts: [{text: 'Great to meet you. What would you like to know?'}],
    },
  ],
});

console.log('Streaming response for first message:');
const stream1 = await chat.sendMessageStream({
  message: 'I have 2 dogs in my house.',
});
for await (const chunk of stream1) {
  console.log(chunk.text);
  console.log('_'.repeat(80));
}

console.log('Streaming response for second message:');
const stream2 = await chat.sendMessageStream({
  message: 'How many paws are in my house?',
});
for await (const chunk of stream2) {
  console.log(chunk.text);
  console.log('_'.repeat(80));
}

console.log(chat.getHistory());

رفتن

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

history := []*genai.Content{
	genai.NewContentFromText("Hello", genai.RoleUser),
	genai.NewContentFromText("Great to meet you. What would you like to know?", genai.RoleModel),
}
chat, err := client.Chats.Create(ctx, "gemini-3.8-flash", nil, history)
if err != nil {
	log.Fatal(err)
}

for chunk, err := range chat.SendMessageStream(ctx, genai.Part{Text: "I have 2 dogs in my house."}) {
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println(chunk.Text())
	fmt.Println(strings.Repeat("_", 64))
}

for chunk, err := range chat.SendMessageStream(ctx, genai.Part{Text: "How many paws are in my house?"}) {
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println(chunk.Text())
	fmt.Println(strings.Repeat("_", 64))
}

fmt.Println(chat.History(false))

صدف

curl https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:streamGenerateContent?alt=sse&key=$GEMINI_API_KEY \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
      "contents": [
        {"role":"user",
         "parts":[{
           "text": "Hello"}]},
        {"role": "model",
         "parts":[{
           "text": "Great to meet you. What would you like to know?"}]},
        {"role":"user",
         "parts":[{
           "text": "I have two dogs in my house. How many paws are in my house?"}]},
      ]
    }' 2> /dev/null | grep "text"

بدنه پاسخ

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

GenerateContentResponse

پاسخ از مدل پشتیبانی‌کننده از چند پاسخ نامزد.

رده‌بندی‌های ایمنی و فیلتر کردن محتوا هم برای پیام‌واره در GenerateContentResponse.prompt_feedback و هم برای هر گزینه در finishReason و در safetyRatings گزارش می‌شود. ‫API: - یا همه نامزدهای درخواست‌شده را برمی‌گرداند یا هیچ‌کدام را برنمی‌گرداند - فقط درصورتی هیچ نامزدی را برنمی‌گرداند که مشکلی در پیام‌واره وجود داشته باشد (promptFeedback را بررسی کنید) - بازخورد مربوط به هر نامزد را در finishReason و safetyRatings گزارش می‌کند.

فیلدها
candidates[] object (Candidate)

پاسخ‌های نامزد از مدل.

promptFeedback object (PromptFeedback)

بازخورد پیام‌واره مربوط به فیلترهای محتوا را برمی‌گرداند.

usageMetadata object (UsageMetadata)

فقط خروجی. فراداده مربوط به استفاده از توکن درخواست‌های تولید.

modelVersion string

فقط خروجی. نسخه مدلی که برای تولید پاسخ استفاده شده است.

responseId string

فقط برونداد. از responseId برای شناسایی هر پاسخ استفاده می‌شود.

modelStatus object (ModelStatus)

فقط خروجی. وضعیت مدل فعلی این مدل.

نمایش JSON
{
  "candidates": [
    {
      object (Candidate)
    }
  ],
  "promptFeedback": {
    object (PromptFeedback)
  },
  "usageMetadata": {
    object (UsageMetadata)
  },
  "modelVersion": string,
  "responseId": string,
  "modelStatus": {
    object (ModelStatus)
  }
}

PromptFeedback

مجموعه‌ای از فراداده‌های بازخورد که پیام‌واره در GenerateContentRequest.content مشخص کرده است.

فیلدها
blockReason enum (BlockReason)

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

safetyRatings[] object (SafetyRating)

رده‌بندی‌های مربوط به ایمنی پیام‌واره. حداکثر یک رده‌بندی برای هر دسته وجود دارد.

نمایش JSON
{
  "blockReason": enum (BlockReason),
  "safetyRatings": [
    {
      object (SafetyRating)
    }
  ]
}

BlockReason

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

شمارشی‌ها
BLOCK_REASON_UNSPECIFIED مقدار پیش‌فرض. از این مقدار استفاده نشده است.
SAFETY پیام‌واره به‌دلایل ایمنی مسدود شد. safetyRatings را بازرسی کنید تا متوجه شوید کدام دسته ایمنی آن را مسدود کرده است.
OTHER پیام‌واره به‌دلایل نامشخصی مسدود شد.
BLOCKLIST پیام‌واره به‌دلیل وجود اصطلاحاتی که در فهرست غیرمجازها قرار دارند مسدود شد.
PROHIBITED_CONTENT پیام‌واره به‌دلیل محتوای ممنوع مسدود شد.
IMAGE_SAFETY گزینه‌ها به‌دلیل محتوای ناامن تولید تصویر مسدود شدند.

UsageMetadata

فراداده مربوط به استفاده از کد درخواست تولید.

فیلدها
promptTokenCount integer

تعداد نشان‌ها در پیام‌واره. وقتی cachedContent تنظیم شده باشد، این همچنان اندازه کل پیام‌واره مؤثر است، یعنی شامل تعداد نشان‌ها در محتوای ذخینه‌شده در حافظه نهان می‌شود.

cachedContentTokenCount integer

تعداد نشان‌ها در بخش ذخیره‌شده پیام‌واره (محتوای ذخیره‌شده)

candidatesTokenCount integer

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

toolUsePromptTokenCount integer

فقط خروجی. تعداد نشان‌واره‌های موجود در پیام‌واره(های) استفاده از ابزار.

thoughtsTokenCount integer

فقط خروجی. تعداد نشانه‌های افکار برای مدل‌های اندیشگر.

totalTokenCount integer

تعداد کل داده‌واحدها برای درخواست تولید (پیام‌واره + پیام‌واره استفاده از ابزار + افکار + گزینه‌های پاسخ).

promptTokensDetails[] object (ModalityTokenCount)

فقط خروجی. فهرست روش‌هایی که در ورودی درخواست پردازش شده‌اند.

cacheTokensDetails[] object (ModalityTokenCount)

فقط خروجی. فهرست حالت‌های محتوای ذخیره‌شده در حافظه نهان در ورودی درخواست.

candidatesTokensDetails[] object (ModalityTokenCount)

فقط خروجی. فهرست حالت‌هایی که در پاسخ برگردانده شده است.

toolUsePromptTokensDetails[] object (ModalityTokenCount)

فقط خروجی. فهرست حالت‌هایی که برای ورودی‌های درخواست استفاده از ابزار پردازش شده‌اند.

serviceTier enum (ServiceTier)

فقط خروجی. رده سرویس درخواست.

نمایش JSON
{
  "promptTokenCount": integer,
  "cachedContentTokenCount": integer,
  "candidatesTokenCount": integer,
  "toolUsePromptTokenCount": integer,
  "thoughtsTokenCount": integer,
  "totalTokenCount": integer,
  "promptTokensDetails": [
    {
      object (ModalityTokenCount)
    }
  ],
  "cacheTokensDetails": [
    {
      object (ModalityTokenCount)
    }
  ],
  "candidatesTokensDetails": [
    {
      object (ModalityTokenCount)
    }
  ],
  "toolUsePromptTokensDetails": [
    {
      object (ModalityTokenCount)
    }
  ],
  "serviceTier": enum (ServiceTier)
}

ModelStatus

وضعیت مدل پایه. این برای نشان دادن مرحله مدل زیربنایی و زمان بازنشستگی (درصورت وجود) استفاده می‌شود.

فیلدها
modelStage enum (ModelStage)

مرحله مدل پایه.

retirementTime string (Timestamp format)

زمانی که مدل بازنشسته خواهد شد.

از RFC 3339 استفاده می‌کند، که در آن خروجی تولیدشده همیشه Z-نرمال‌شده است و از ۰، ۳، ۶، یا ۹ رقم اعشاری استفاده می‌کند. انحراف‌های غیراز «Z» نیز پذیرفته می‌شود. مثال‌ها: "2014-10-02T15:01:23Z"، "2014-10-02T15:01:23.045123456Z"، یا "2014-10-02T15:01:23+05:30".

message string

پیامی که وضعیت مدل را توضیح می‌دهد.

نمایش JSON
{
  "modelStage": enum (ModelStage),
  "retirementTime": string,
  "message": string
}

ModelStage

مرحله مدل زیربنایی را تعریف می‌کند.

شمارشی‌ها
MODEL_STAGE_UNSPECIFIED مرحله مدل نامشخص است.
UNSTABLE_EXPERIMENTAL

مدل زیربنایی درمعرض تنظیمات زیادی قرار دارد.

EXPERIMENTAL مدل‌ها در این مرحله فقط برای اهداف آزمایشی هستند.
PREVIEW مدل‌ها در این مرحله نسبت‌به مدل‌های آزمایشی کامل‌تر هستند.
STABLE مدل‌ها در این مرحله پایدار و آماده استفاده در تولید درنظر گرفته می‌شوند.
LEGACY اگر مدل در این مرحله باشد، یعنی این مدل در آینده نزدیک منسوخ خواهد شد. فقط مشتریان فعلی می‌توانند از این مدل استفاده کنند.
DEPRECATED

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

RETIRED مدل‌ها در این مرحله بازنشسته می‌شوند. نمی‌توان از این مدل‌ها استفاده کرد.

نامزد

پاسخ نامزدی که از مدل تولید شده است.

فیلدها
content object (Content)

فقط خروجی. محتوای تولیدشده از مدل برگردانده شد.

finishReason enum (FinishReason)

اختیاری. فقط خروجی. دلیلی که مدل تولید کردن توکن‌ها را متوقف کرد.

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

safetyRatings[] object (SafetyRating)

فهرست رده‌بندی‌های ایمنی پاسخ کاندید.

حداکثر یک رده‌بندی برای هر دسته وجود دارد.

citationMetadata object (CitationMetadata)

فقط خروجی. اطلاعات استناد برای کاندیدای تولیدشده توسط مدل.

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

tokenCount integer

فقط خروجی. تعداد داده‌واحد برای این داوطلب.

groundingAttributions[] object (GroundingAttribution)

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

این فیلد برای GenerateAnswer تماس پر شده است.

groundingMetadata object (GroundingMetadata)

فقط خروجی. فراداده‌های زمینه‌سازی برای نامزد.

این فیلد برای GenerateContent تماس پر شده است.

avgLogprobs number

فقط خروجی. میانگین امتیاز احتمال گزارش نامزد.

logprobsResult object (LogprobsResult)

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

urlContextMetadata object (UrlContextMetadata)

فقط خروجی. فراداده‌های مربوط به ابزار بازیابی بافت نشانی وب.

continuationToken string (bytes format)

یک کد ادامه مات اختیاری که وقتی finishReason CONTINUATION است برگردانده می‌شود. مشتریان می‌توانند این توکن را در GenerateContentRequest بعدی ارسال کنند تا تولید ادامه یابد.

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

index integer

فقط خروجی. نمایه نامزد در فهرست نامزدهای پاسخ.

finishMessage string

اختیاری. فقط خروجی. جزئیات دلیلی که مدل تولید کردن توکن‌ها را متوقف کرد. این مورد فقط زمانی درج می‌شود که finishReason تنظیم شده باشد.

نمایش JSON
{
  "content": {
    object (Content)
  },
  "finishReason": enum (FinishReason),
  "safetyRatings": [
    {
      object (SafetyRating)
    }
  ],
  "citationMetadata": {
    object (CitationMetadata)
  },
  "tokenCount": integer,
  "groundingAttributions": [
    {
      object (GroundingAttribution)
    }
  ],
  "groundingMetadata": {
    object (GroundingMetadata)
  },
  "avgLogprobs": number,
  "logprobsResult": {
    object (LogprobsResult)
  },
  "urlContextMetadata": {
    object (UrlContextMetadata)
  },
  "continuationToken": string,
  "index": integer,
  "finishMessage": string
}

FinishReason

دلیل توقف تولید توکن توسط مدل را تعریف می‌کند.

شمارشی‌ها
FINISH_REASON_UNSPECIFIED مقدار پیش‌فرض. از این مقدار استفاده نشده است.
STOP نقطه توقف طبیعی مدل یا توالی توقف ارائه‌شده.
MAX_TOKENS به حداکثر تعداد توکن‌های مشخص‌شده در درخواست رسیدید.
SAFETY محتوای پاسخ نامزد به‌دلایل ایمنی پرچم‌گذاری شد.
RECITATION محتوای کاندید پاسخ به‌دلیل تکرار پرچم‌گذاری شد.
LANGUAGE محتوای پاسخ نامزد به‌دلیل استفاده از زبان پشتیبانی‌نشده پرچم‌گذاری شد.
OTHER دلیل نامشخص.
BLOCKLIST تولید کد متوقف شد چون محتوا حاوی عبارت‌های ممنوعه است.
PROHIBITED_CONTENT تولید کد به‌دلیل احتمال وجود محتوای ممنوع متوقف شد.
SPII تولید کردن کد متوقف شد چون محتوا احتمالاً حاوی «اطلاعات حساس شناساننده شخصی» (SPII) است.
MALFORMED_FUNCTION_CALL فراخوانی تابع تولیدشده توسط مدل نامعتبر است.
IMAGE_SAFETY تولید کردن بااستفاده از ژتون متوقف شد زیرا تصاویر تولیدشده حاوی نقض ایمنی هستند.
IMAGE_PROHIBITED_CONTENT تولید تصویر متوقف شد زیرا تصاویر تولیدشده حاوی محتوای ممنوع دیگری است.
IMAGE_OTHER تولید تصویر به‌دلیل مشکل متفرقه دیگری متوقف شد.
NO_IMAGE انتظار می‌رفت مدل تصویری تولید کند، اما تصویری تولید نشد.
IMAGE_RECITATION تولید تصویر به‌دلیل تکرار متوقف شد.
UNEXPECTED_TOOL_CALL مدل یک فراخوانی ابزار ایجاد کرد اما هیچ ابزاری در درخواست فعال نشده بود.
TOO_MANY_TOOL_CALLS مدل ابزارهای زیادی را به‌طور متوالی فراخوانی کرد، بنابراین سیستم از اجرا خارج شد.
MISSING_THOUGHT_SIGNATURE درخواست حداقل یک امضای فکر را ندارد.
MALFORMED_RESPONSE به‌دلیل پاسخ ناقص تمام شد.
ESCALATION درخواست توسط قانون ارجاع فیلتر شد.
PUP_LIMITED_DISABLED نشان می‌دهد که تولید کد به‌دلیل محدود یا غیرفعال شدن حساب کاربر به‌خاطر نقض «خط‌مشی کاربردهای غیرمجاز» متوقف شده است.
CONTINUATION تولید کردن کد متوقف شد زیرا پاسخ به حد مجاز کد برای هر درخواست رسیده است، اما تولید کردن هنوز کامل نشده است. پاسخ مدل می‌تواند ازطریق درخواست بعدی بااستفاده از continuationToken برگردانده‌شده ادامه یابد. توجه داشته باشید که maxOutputTokens در سراسر پرش‌های ادامه تجمعی است و باید به‌طور یکنواخت افزایش یابد یا حذف شود.

GroundingAttribution

ارجاع برای منبعی که در پاسخ مشارکت داشته است.

فیلدها
sourceId object (AttributionSourceId)

فقط خروجی. شناسه منبعی که در این ارجاع مشارکت دارد.

content object (Content)

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

نمایش JSON
{
  "sourceId": {
    object (AttributionSourceId)
  },
  "content": {
    object (Content)
  }
}

AttributionSourceId

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

فیلدها
source Union type
در زیر فهرستی از فیلدهای متقابلاً انحصاری آمده است. حداکثر یکی از فیلدها در پاسخ تنظیم خواهد شد:
groundingPassage object (GroundingPassageId)

شناسه برای متن درون‌خطی.

semanticRetrieverChunk object (SemanticRetrieverChunk)

شناسه برای Chunk واکشی‌شده ازطریق «بازیاب معنایی».

پایان فیلدهای متقابلاً انحصاری.
نمایش JSON
{

  // source
  "groundingPassage": {
    object (GroundingPassageId)
  },
  "semanticRetrieverChunk": {
    object (SemanticRetrieverChunk)
  }
  // Union type
}

GroundingPassageId

شناسه برای بخشی در GroundingPassage.

فیلدها
passageId string

فقط خروجی. شناسه گذرگاه مطابق با GroundingPassage.id GenerateAnswerRequest.

partIndex integer

فقط خروجی. نمایه بخش در GroundingPassage.content‏ GenerateAnswerRequest.

نمایش JSON
{
  "passageId": string,
  "partIndex": integer
}

SemanticRetrieverChunk

شناسه برای Chunk بازیابی‌شده ازطریق «بازیابی معنایی» مشخص‌شده در GenerateAnswerRequest بااستفاده از SemanticRetrieverConfig.

فیلدها
source string

فقط خروجی. نام منبعی که با SemanticRetrieverConfig.source درخواست مطابقت دارد. مثال: corpora/123 یا corpora/123/documents/abc

chunk string

فقط خروجی. نام Chunk حاوی نوشتار منسوب. نمونه: corpora/123/documents/abc/chunks/xyz

نمایش JSON
{
  "source": string,
  "chunk": string
}

GroundingMetadata

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

فیلدها
groundingChunks[] object (GroundingChunk)

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

groundingSupports[] object (GroundingSupport)

فهرست پشتیبانی از زمینه‌سازی.

webSearchQueries[] string

پُرسمان‌های جستجوی وب برای جستجوی وب بعدی.

imageSearchQueries[] string

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

searchEntryPoint object (SearchEntryPoint)

اختیاری. ورودی جستجوی Google برای جستجوهای وب بعدی.

retrievalMetadata object (RetrievalMetadata)

فراداده‌های مربوط به بازیابی در جریان زمینه‌سازی.

googleMapsWidgetContextToken string

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

نمایش JSON
{
  "groundingChunks": [
    {
      object (GroundingChunk)
    }
  ],
  "groundingSupports": [
    {
      object (GroundingSupport)
    }
  ],
  "webSearchQueries": [
    string
  ],
  "imageSearchQueries": [
    string
  ],
  "searchEntryPoint": {
    object (SearchEntryPoint)
  },
  "retrievalMetadata": {
    object (RetrievalMetadata)
  },
  "googleMapsWidgetContextToken": string
}

SearchEntryPoint

نقطه ورودی جستجوی Google.

فیلدها
renderedContent string

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

sdkBlob string (bytes format)

اختیاری. JSON کدگذاری‌شده Base64 که آرایه چندتایی <search term, search url> را نشان می‌دهد.

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

نمایش JSON
{
  "renderedContent": string,
  "sdkBlob": string
}

GroundingChunk

GroundingChunk نشان‌دهنده بخشی از شواهد تأییدی است که پاسخ مدل را مستدل می‌کند. این منبع می‌تواند بخشی از وب، بافت بازیابی‌شده از یک فایل، یا اطلاعاتی از Google Maps باشد.

فیلدها
chunk_type Union type
نوع قطعه. در زیر فهرستی از فیلدهای متقابلاً انحصاری آمده است. حداکثر یکی از فیلدها در پاسخ تنظیم خواهد شد:
web object (Web)

تکه زمینه‌سازی از وب.

image object (Image)

اختیاری. تکه زمینه‌سازی از جستجوی تصویر.

retrievedContext object (RetrievedContext)

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

maps object (Maps)

اختیاری. تکه پایه‌مندسازی از Google Maps.

پایان فیلدهای متقابلاً انحصاری.
نمایش JSON
{

  // chunk_type
  "web": {
    object (Web)
  },
  "image": {
    object (Image)
  },
  "retrievedContext": {
    object (RetrievedContext)
  },
  "maps": {
    object (Maps)
  }
  // Union type
}

وب

تکه‌ای از وب.

فیلدها
uri string

فقط خروجی. مرجع URI قطعه.

title string

فقط خروجی. عنوان بخش.

نمایش JSON
{
  "uri": string,
  "title": string
}

تصویر

تکه از جستجوی تصویر.

فیلدها
sourceUri string

شناسه منبع یکسان صفحه وب برای اِسناد.

imageUri string

نشانی وب دارایی تصویر.

title string

عنوان صفحه وبی که تصویر در آن قرار دارد.

domain string

دامنه ریشه صفحه وبی که تصویر از آن گرفته شده است، برای مثال «example.com».

نمایش JSON
{
  "sourceUri": string,
  "imageUri": string,
  "title": string,
  "domain": string
}

RetrievedContext

تکه‌ای از بافت که توسط ابزار جستجوی فایل بازیابی شده است.

فیلدها
customMetadata[] object (CustomMetadata)

اختیاری. فراداده ارائه‌شده توسط کاربر درباره بافت بازیابی‌شده.

uri string

اختیاری. مرجع URI سند بازیابی معنایی.

title string

اختیاری. عنوان سند.

text string

اختیاری. نوشتار قطعه.

fileSearchStore string

اختیاری. نام FileSearchStore حاوی سند. نمونه: fileSearchStores/123

pageNumber integer

اختیاری. شماره صفحه بافت بازیابی‌شده، درصورت وجود.

mediaId string

اختیاری. نام منبع حباب رسانه برای نتایج جستجوی فایل چندحالته. قالب: fileSearchStores/{file_search_store_id}/media/{blobId}

نمایش JSON
{
  "customMetadata": [
    {
      object (CustomMetadata)
    }
  ],
  "uri": string,
  "title": string,
  "text": string,
  "fileSearchStore": string,
  "pageNumber": integer,
  "mediaId": string
}

CustomMetadata

فراداده ارائه‌شده توسط کاربر درباره GroundingFact.

فیلدها
key string

کلید فراداده.

value Union type
مقدار فراداده. می‌تواند رشته، فهرستی از رشته‌ها، یا عدد باشد. در زیر فهرستی از فیلدهای متقابلاً انحصاری آمده است. حداکثر یکی از فیلدها در پاسخ تنظیم خواهد شد:
stringValue string

اختیاری. مقدار رشته‌ای فراداده.

stringListValue object (StringList)

اختیاری. فهرستی از مقادیر رشته‌ای برای فراداده.

numericValue number

اختیاری. مقدار عددی فراداده. محدوده موردانتظار برای این مقدار به key خاصی که استفاده می‌شود بستگی دارد.

پایان فیلدهای متقابلاً انحصاری.
نمایش JSON
{
  "key": string,

  // value
  "stringValue": string,
  "stringListValue": {
    object (StringList)
  },
  "numericValue": number
  // Union type
}

StringList

فهرستی از مقادیر رشته‌ای.

فیلدها
values[] string

مقادیر رشته‌ای فهرست.

نمایش JSON
{
  "values": [
    string
  ]
}

Maps

یک تکه پایه‌مندسازی از Google Maps. هر تکه Maps مربوط به یک مکان است.

فیلدها
uri string

مرجع URI مکان.

title string

عنوان مکان.

text string

توضیح نوشتاری پاسخ مکان.

placeId string

شناسه مکان، در قالب places/{placeId}. کاربر می‌تواند از این شناسه برای جستجوی آن مکان استفاده کند.

placeAnswerSources object (PlaceAnswerSources)

منابعی که پاسخ‌هایی درباره ویژگی‌های مکانی خاص در Google Maps ارائه می‌دهند.

نمایش JSON
{
  "uri": string,
  "title": string,
  "text": string,
  "placeId": string,
  "placeAnswerSources": {
    object (PlaceAnswerSources)
  }
}

PlaceAnswerSources

مجموعه‌ای از منابع که پاسخ‌هایی درباره ویژگی‌های مکانی خاص در Google Maps ارائه می‌دهند. هر پیام PlaceAnswerSources با مکان خاصی در Google Maps مطابقت دارد. ابزار Google Maps از این منابع برای پاسخ دادن به سؤالات مربوط به ویژگی‌های مکان استفاده کرده است (مثلاً: «آیا Bar Foo وای‌فای دارد» یا «آیا Foo Bar برای صندلی چرخ‌دار دسترس‌پذیر است؟»). درحال‌حاضر فقط از گزیده‌های مرور به‌عنوان منبع پشتیبانی می‌کنیم.

فیلدها
reviewSnippets[] object (ReviewSnippet)

گزیده‌هایی از مرورها که برای تولید پاسخ درباره ویژگی‌های مکانی خاص در Google Maps استفاده می‌شود.

نمایش JSON
{
  "reviewSnippets": [
    {
      object (ReviewSnippet)
    }
  ]
}

ReviewSnippet

گزیده‌ای از مرور کاربر را که به سؤالی درباره ویژگی‌های مکانی خاص در Google Maps پاسخ می‌دهد دربرمی‌گیرد.

فیلدها
reviewId string

شناسه قطعه مرور.

googleMapsUri string

پیوندی که با مرور کاربر در Google Maps مطابقت دارد.

title string

عنوان مرور.

نمایش JSON
{
  "reviewId": string,
  "googleMapsUri": string,
  "title": string
}

GroundingSupport

پشتیبانی از بلندی.

فیلدها
groundingChunkIndices[] integer

اختیاری. فهرستی از نمایه‌ها (در «grounding_chunk» در response.candidate.grounding_metadata) که استنادهای مرتبط با ادعا را مشخص می‌کند. برای مثال، [‎1,3,4] یعنی grounding_chunk[1]،‏ grounding_chunk[3]،‏ grounding_chunk[4] محتوای بازیابی‌شده‌ای هستند که به ادعا نسبت داده شده‌اند. اگر پاسخ جاری‌سازی شود، groundingChunkIndices به نمایه‌های موجود در همه پاسخ‌ها اشاره دارد. مسئولیت جمع‌آوری تکه‌های زمینه‌سازی از همه پاسخ‌ها (با حفظ همان ترتیب) برعهده مشتری است.

confidenceScores[] number

اختیاری. امتیاز اطمینان مراجع پشتیبانی. محدوده از ۰ تا ۱. ‫۱ بیشترین اطمینان را نشان می‌دهد. این فهرست باید هم‌اندازه groundingChunkIndices باشد.

renderedParts[] integer

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

segment object (Segment)

بخشی از محتوا که این پشتیبانی به آن تعلق دارد.

نمایش JSON
{
  "groundingChunkIndices": [
    integer
  ],
  "confidenceScores": [
    number
  ],
  "renderedParts": [
    integer
  ],
  "segment": {
    object (Segment)
  }
}

بخش

بخش محتوا.

فیلدها
partIndex integer

نمایه شیء Part در شیء Content والد آن.

startIndex integer

نمایه شروع در «بخش» داده‌شده، اندازه‌گیری‌شده برحسب بایت. آفست از شروع «بخش»، شامل، شروع از صفر.

endIndex integer

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

text string

نوشتار مربوط به بخش پاسخ.

نمایش JSON
{
  "partIndex": integer,
  "startIndex": integer,
  "endIndex": integer,
  "text": string
}

RetrievalMetadata

فراداده‌های مربوط به بازیابی در جریان زمینه‌سازی.

فیلدها
googleSearchDynamicRetrievalScore number

اختیاری. امتیازی که نشان می‌دهد اطلاعات «جستجوی Google» چقدر می‌تواند به پاسخ دادن به پیام‌واره کمک کند. امتیاز در محدوده [۰، ۱] است که ۰ کمترین احتمال و ۱ بیشترین احتمال را نشان می‌دهد. این امتیاز فقط زمانی پر می‌شود که زمینه‌سازی جستجوی Google و بازیابی پویا فعال باشد. این عبارت با آستانه مقایسه می‌شود تا مشخص شود که آیا جستجوی Google را فعال کند یا نه.

نمایش JSON
{
  "googleSearchDynamicRetrievalScore": number
}

LogprobsResult

نتیجه Logprobs

فیلدها
topCandidates[] object (TopCandidates)

طول = تعداد کل مراحل رمزگشایی.

chosenCandidates[] object (Candidate)

طول = تعداد کل مراحل رمزگشایی. نامزدهای انتخاب‌شده ممکن است در topCandidates باشند یا نباشند.

logProbabilitySum number

مجموع احتمالات لگاریتمی برای همه نشان‌ها.

نمایش JSON
{
  "topCandidates": [
    {
      object (TopCandidates)
    }
  ],
  "chosenCandidates": [
    {
      object (Candidate)
    }
  ],
  "logProbabilitySum": number
}

TopCandidates

نامزدهای دارای بالاترین احتمالات لگاریتمی در هر مرحله رمزگشایی.

فیلدها
candidates[] object (Candidate)

مرتب‌شده براساس احتمال لگاریتمی به ترتیب نزولی.

نمایش JSON
{
  "candidates": [
    {
      object (Candidate)
    }
  ]
}

نامزد

کاندید برای امتیاز و کد logprobs.

فیلدها
token string

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

tokenId integer

مقدار شناسه داده‌واحد نامزد.

logProbability number

احتمال ثبت نامزد.

نمایش JSON
{
  "token": string,
  "tokenId": integer,
  "logProbability": number
}

UrlContextMetadata

فراداده‌های مربوط به ابزار بازیابی بافت نشانی وب.

فیلدها
urlMetadata[] object (UrlMetadata)

فهرست بافت نشانی وب.

نمایش JSON
{
  "urlMetadata": [
    {
      object (UrlMetadata)
    }
  ]
}

UrlMetadata

زمینه بازیابی نشانی وب واحد.

فیلدها
retrievedUrl string

نشانی وب بازیابی‌شده توسط ابزار.

urlRetrievalStatus enum (UrlRetrievalStatus)

وضعیت بازیابی نشانی وب.

نمایش JSON
{
  "retrievedUrl": string,
  "urlRetrievalStatus": enum (UrlRetrievalStatus)
}

UrlRetrievalStatus

وضعیت بازیابی نشانی وب.

شمارشی‌ها
URL_RETRIEVAL_STATUS_UNSPECIFIED مقدار پیش‌فرض. از این مقدار استفاده نشده است.
URL_RETRIEVAL_STATUS_SUCCESS بازیابی نشانی وب موفقیت‌آمیز بود.
URL_RETRIEVAL_STATUS_ERROR بازیابی نشانی وب به‌دلیل خطا انجام نشد.
URL_RETRIEVAL_STATUS_PAYWALL بازیابی نشانی وب ناموفق بود زیرا محتوا پشت دیوار پرداخت است.
URL_RETRIEVAL_STATUS_UNSAFE بازیابی نشانی وب ناموفق بود زیرا محتوا ناامن است.

CitationMetadata

مجموعه‌ای از ارجاع‌های منبع برای یک محتوا.

فیلدها
citationSources[] object (CitationSource)

استناد به منابع برای پاسخی خاص.

نمایش JSON
{
  "citationSources": [
    {
      object (CitationSource)
    }
  ]
}

CitationSource

استناد به منبعی برای بخشی از پاسخی خاص.

فیلدها
startIndex integer

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

نمایه نشان‌دهنده شروع بخش است که برحسب بایت اندازه‌گیری می‌شود.

endIndex integer

اختیاری. پایان بخش منسوب، انحصاری.

uri string

اختیاری. URI که به‌عنوان منبع برای بخشی از نوشتار نسبت داده شده است.

license string

اختیاری. پروانه پروژه GitHub که به‌عنوان منبع بخش نسبت داده شده است.

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

نمایش JSON
{
  "startIndex": integer,
  "endIndex": integer,
  "uri": string,
  "license": string
}

HarmCategory

دسته رده‌بندی.

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

شمارشی‌ها
HARM_CATEGORY_UNSPECIFIED دسته نامشخص است.
HARM_CATEGORY_DEROGATORY

PaLM - نظرات منفی یا مضر که هویت و/یا مشخصه محافظت‌شده را هدف قرار می‌دهند. DEPRECATED: PaLM-only category, not supported by Gemini models.

HARM_CATEGORY_TOXICITY

PaLM - محتوایی که گستاخانه، غیرمحترمانه، یا ناسزاگویی باشد. DEPRECATED: PaLM-only category, not supported by Gemini models.

HARM_CATEGORY_VIOLENCE

PaLM - سناریوهایی را توصیف می‌کند که خشونت علیه فرد یا گروهی را نشان می‌دهد، یا توصیف‌های کلی از صحنه‌های دلخراش ارائه می‌دهد. DEPRECATED: PaLM-only category, not supported by Gemini models.

HARM_CATEGORY_SEXUAL

PaLM - حاوی ارجاع به اعمال جنسی یا محتوای مستهجن دیگر است. DEPRECATED: PaLM-only category, not supported by Gemini models.

HARM_CATEGORY_MEDICAL

PaLM - توصیه‌های پزشکی تأییدنشده را ترویج می‌کند. DEPRECATED: PaLM-only category, not supported by Gemini models.

HARM_CATEGORY_DANGEROUS

PaLM - محتوای خطرناکی که کنش‌های آسیب‌زننده را تبلیغ، تسهیل، یا تشویق می‌کند. DEPRECATED: PaLM-only category, not supported by Gemini models.

HARM_CATEGORY_HARASSMENT Gemini - محتوای مشوق آزارواذیت.
HARM_CATEGORY_HATE_SPEECH Gemini - محتوا و سخنان مشوق عداوت و تنفر.
HARM_CATEGORY_SEXUALLY_EXPLICIT Gemini - محتوای صریح جنسی.
HARM_CATEGORY_DANGEROUS_CONTENT Gemini - محتوای خطرناک.
HARM_CATEGORY_CIVIC_INTEGRITY

Gemini - محتوایی که ممکن است برای آسیب رساندن به یکپارچگی مدنی استفاده شود. منسوخ‌شده: به‌جای آن از enableEnhancedCivicAnswers استفاده کنید.

HARM_CATEGORY_JAILBREAK Gemini - پیام‌واره‌هایی که تلاش می‌کنند رهنمودهای ایمنی مدل را دور بزنند یا خراب کنند (تلاش برای قفل‌شکنی).

ModalityTokenCount

اطلاعات شمارش داده‌واحد را برای یک حالت نشان می‌دهد.

فیلدها
modality enum (Modality)

روش مرتبط با این تعداد داده‌واحد.

tokenCount integer

تعداد داده‌واحدها.

نمایش JSON
{
  "modality": enum (Modality),
  "tokenCount": integer
}

روش

حالت «بخش محتوا»

شمارشی‌ها
MODALITY_UNSPECIFIED روش نامشخص.
TEXT نوشتار ساده.
IMAGE تصویر.
VIDEO ویدیو.
AUDIO صدا.
DOCUMENT سند، مثلاً PDF.

SafetyRating

رده‌بندی ایمنی برای محتوا.

رده‌بندی ایمنی شامل دسته آسیب و سطح احتمال آسیب در آن دسته برای یک محتوا است. محتوا ازنظر ایمنی در چندین دسته آسیب طبقه‌بندی می‌شود و احتمال طبقه‌بندی آسیب در اینجا گنجانده شده است.

فیلدها
category enum (HarmCategory)

الزامی. دسته این رده‌بندی.

probability enum (HarmProbability)

الزامی. احتمال آسیب‌رسانی برای این محتوا.

blocked boolean

آیا این محتوا به‌دلیل این رده‌بندی مسدود شده است؟

نمایش JSON
{
  "category": enum (HarmCategory),
  "probability": enum (HarmProbability),
  "blocked": boolean
}

HarmProbability

احتمال اینکه بخشی از محتوا مضر باشد.

سیستم طبقه‌بندی احتمال ناامن بودن محتوا را ارائه می‌دهد. این نشان‌دهنده شدت آسیب برای یک محتوا نیست.

شمارشی‌ها
HARM_PROBABILITY_UNSPECIFIED احتمال نامشخص است.
NEGLIGIBLE احتمال ناامن بودن محتوا ناچیز است.
LOW احتمال ناامن بودن محتوا کم است.
MEDIUM احتمال ناامن بودن محتوا متوسط است.
HIGH احتمال زیادی وجود دارد که محتوا ناامن باشد.

SafetySetting

تنظیم ایمنی، که بر رفتار مسدود کردن ایمنی تأثیر می‌گذارد.

ارسال تنظیمات ایمنی برای یک دسته، احتمال مجاز برای مسدود شدن محتوا را تغییر می‌دهد.

فیلدها
category enum (HarmCategory)

الزامی. دسته این تنظیم.

threshold enum (HarmBlockThreshold)

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

نمایش JSON
{
  "category": enum (HarmCategory),
  "threshold": enum (HarmBlockThreshold)
}

HarmBlockThreshold

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

شمارشی‌ها
HARM_BLOCK_THRESHOLD_UNSPECIFIED آستانه مشخص نشده است.
BLOCK_LOW_AND_ABOVE محتوای دارای NEGLIGIBLE مجاز خواهد بود.
BLOCK_MEDIUM_AND_ABOVE محتوای دارای برچسب «ناچیز» و «کم» مجاز خواهد بود.
BLOCK_ONLY_HIGH محتوای دارای برچسب «ناچیز»، «کم»، و «متوسط» مجاز خواهد بود.
BLOCK_NONE همه محتوا مجاز خواهد بود.
OFF فیلتر ایمنی را خاموش کنید.

ServiceTier

رده سرویس درخواست.

شمارشی‌ها
unspecified سطح خدمات پیش‌فرض که استاندارد است.
standard سطح خدمات استاندارد.
flex سطح خدمات Flex.
priority سطح خدمات اولویت‌دار.

محتوا

نوع داده ساختاریافته پایه که حاوی محتوای چندبخشی پیام است.

Content شامل فیلد role است که تولیدکننده Content را مشخص می‌کند و فیلد parts که حاوی داده‌های چندبخشی است که محتوای نوبت پیام را دربرمی‌گیرد.

فیلدها
parts[] object (Part)

Parts مرتب‌شده که یک پیام را تشکیل می‌دهند. بخش‌ها ممکن است انواع MIME متفاوتی داشته باشند.

role string

اختیاری. تولیدکننده محتوا. باید «user» یا «model» باشد.

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

نمایش JSON
{
  "parts": [
    {
      object (Part)
    }
  ],
  "role": string
}

بخش

نوع داده‌ای حاوی رسانه که بخشی از پیام چندبخشی Content است.

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

اگر فیلد inlineData با بایت‌های خام پر شده باشد، Part باید نوع رسانه IANA ثابتی داشته باشد که نوع و زیرنوع رسانه را مشخص کند.

فیلدها
thought boolean

اختیاری. نشان می‌دهد که آیا این بخش از مدل گرفته شده است یا نه.

thoughtSignature string (bytes format)

اختیاری. امضای مبهم برای فکر تا بتوان از آن در درخواست‌های بعدی استفاده مجدد کرد.

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

partMetadata object (Struct format)

فراداده سفارشی مرتبط با بخش. ممکن است لازم باشد نمایندگانی که از genai.Part به‌عنوان نمایش محتوا استفاده می‌کنند، اطلاعات اضافی را پیگیری کنند. برای مثال، می‌تواند نام فایل/منبعی باشد که «بخش» از آن منشأ می‌گیرد یا روشی برای تسهیم چندگانه چند جریان «بخش».

mediaResolution object (MediaResolution)

اختیاری. وضوح رسانه برای رسانه ورودی.

mediaProcessing enum (MediaProcessing)

اختیاری. نحوه پردازش رسانه این بخش توسط مدل برای درک آن. فقط برای بخش‌های ویدیو (inlineData یا fileData با mime ویدیو) معنی دارد. بخش‌های غیرویدیویی این فیلد را نادیده می‌گیرند.

audioTranscription object (AudioTranscription)

اختیاری. ترانویسی صدا (ورودی یا خروجی). این فقط زمانی تنظیم می‌شود که این «بخش» حاوی داده‌های صوتی باشد.

speechMetadata object (SpeechMetadata)

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

data Union type
در زیر فهرستی از فیلدهای متقابلاً انحصاری آمده است. حداکثر یکی از فیلدها در پاسخ تنظیم خواهد شد:
text string

نوشتار درون‌خطی.

inlineData object (Blob)

بایت‌های رسانه به‌خط.

functionCall object (FunctionCall)

FunctionCall پیش‌بینی‌شده‌ای که از مدل برگردانده شده است و حاوی رشته‌ای است که FunctionDeclaration.name را با آرگومان‌ها و مقادیر آن‌ها نشان می‌دهد.

functionResponse object (FunctionResponse)

برونداد نتیجه FunctionCall که حاوی رشته‌ای است که FunctionDeclaration.name را نشان می‌دهد و شیء JSON ساختاریافته‌ای که حاوی هرگونه برونداد از تابع است به‌عنوان بافت برای مدل استفاده می‌شود.

fileData object (FileData)

داده‌های مبتنی بر URI.

executableCode object (ExecutableCode)

کد تولیدشده توسط مدل که قرار است اجرا شود.

codeExecutionResult object (CodeExecutionResult)

نتیجه اجرای ExecutableCode.

toolCall object (ToolCall)

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

toolResponse object (ToolResponse)

برونداد اجرای ToolCall سمت سرور. این فیلد توسط مشتری با نتایج اجرای ToolCall مربوطه پر می‌شود.

پایان فیلدهای متقابلاً انحصاری.
metadata Union type
پیش‌پردازش اضافی داده‌ها را کنترل می‌کند. وقتی inline_data یا file_data وجود دارد، این را برای پیکربندی پیش‌پردازش رسانه ایستا برای هر بخش تنظیم کنید. در زیر فهرستی از فیلدهای متقابلاً انحصاری آمده است. حداکثر یکی از فیلدها در پاسخ تنظیم خواهد شد:
videoMetadata object (VideoMetadata)

اختیاری. فراداده ویدیو. فراداده فقط باید زمانی مشخص شود که داده‌های ویدیو در inlineData یا fileData ارائه شده باشد.

پایان فیلدهای متقابلاً انحصاری.
نمایش JSON
{
  "thought": boolean,
  "thoughtSignature": string,
  "partMetadata": {
    object
  },
  "mediaResolution": {
    object (MediaResolution)
  },
  "mediaProcessing": enum (MediaProcessing),
  "audioTranscription": {
    object (AudioTranscription)
  },
  "speechMetadata": {
    object (SpeechMetadata)
  },

  // data
  "text": string,
  "inlineData": {
    object (Blob)
  },
  "functionCall": {
    object (FunctionCall)
  },
  "functionResponse": {
    object (FunctionResponse)
  },
  "fileData": {
    object (FileData)
  },
  "executableCode": {
    object (ExecutableCode)
  },
  "codeExecutionResult": {
    object (CodeExecutionResult)
  },
  "toolCall": {
    object (ToolCall)
  },
  "toolResponse": {
    object (ToolResponse)
  }
  // Union type

  // metadata
  "videoMetadata": {
    object (VideoMetadata)
  }
  // Union type
}

حباب

بایت‌های رسانه خام.

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

فیلدها
mimeType string

نوع MIME استاندارد IANA برای داده‌های منبع. نمونه‌هایی از انواع پشتیبانی‌شده: - تصاویر: image/png،‏ image/jpeg،‏ image/jpg،‏ image/webp،‏ image/heic،‏ image/heif،‏ image/gif،‏ image/avif - صدا: audio/*،‏ video/audio/s16le،‏ video/audio/wav - ویدیو: video/* - نوشتار: text/plain،‏ text/html،‏ text/css،‏ text/javascript،‏ text/x-typescript،‏ text/csv،‏ text/markdown،‏ text/x-python،‏ text/xml،‏ text/rtf،‏ video/text/timestamp - برنامه‌ها: application/x-javascript،‏ application/x-typescript،‏ application/x-python-code،‏ application/json،‏ application/x-ipynb+json،‏ application/rtf،‏ application/pdf برای اطلاعات بیشتر، به قالب‌های فایل پشتیبانی‌شده مراجعه کنید. //

data string (bytes format)

بایت‌های خام برای قالب‌های رسانه.

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

displayName string

اختیاری. نامی را که برای ارجاع به این حباب به مدل استفاده می‌شود مشخص می‌کند (مثلاً «my_blob.png»). وقتی verbalizationMode روی REFERENCE_ONLY تنظیم شده باشد، به‌عنوان شناسه مرجع حباب استفاده می‌شود.

نمایش JSON
{
  "mimeType": string,
  "data": string,
  "displayName": string
}

FunctionCall

FunctionCall پیش‌بینی‌شده‌ای که از مدل برگردانده شده است و حاوی رشته‌ای است که FunctionDeclaration.name را با آرگومان‌ها و مقادیر آن‌ها نشان می‌دهد.

فیلدها
id string

اختیاری. شناسه یکتای فراخوانی تابع. درصورت پر شدن، مشتری functionCall را اجرا می‌کند و پاسخ را با id منطبق برمی‌گرداند.

name string

الزامی. نام تابع برای فراخوانی. باید a-z،‏ A-Z،‏ 0-9، یا حاوی زیرخط و خط تیره باشد و حداکثر طول آن ۱۲۸ باشد.

args object (Struct format)

اختیاری. پارامترها و مقادیر تابع در قالب شیء JSON.

نمایش JSON
{
  "id": string,
  "name": string,
  "args": {
    object
  }
}

FunctionResponse

برونداد نتیجه از FunctionCall که حاوی رشته‌ای است که FunctionDeclaration.name را نشان می‌دهد و شیء JSON ساختاریافته‌ای که حاوی هرگونه برونداد از تابع است به‌عنوان بافت برای مدل استفاده می‌شود. این باید حاوی نتیجه FunctionCall باشد که براساس پیش‌بینی مدل انجام شده است.

فیلدها
id string

اختیاری. شناسه فراخوانی تابع که این پاسخ برای آن است. توسط کارخواه برای مطابقت با فراخوانی تابع مربوطه id پر شده است.

name string

الزامی. نام تابع برای فراخوانی. باید a-z،‏ A-Z،‏ 0-9، یا حاوی زیرخط و خط تیره باشد و حداکثر طول آن ۱۲۸ باشد.

response object (Struct format)

الزامی. پاسخ تابع در قالب شیء JSON. فراخوان‌ها می‌توانند از هر کلیدی که انتخاب می‌کنند و با نحو تابع مطابقت دارد برای برگرداندن خروجی تابع استفاده کنند، مثلاً «خروجی»، «نتیجه»، و غیره. به‌ویژه، اگر فراخوانی تابع اجرا نشد، پاسخ می‌تواند کلید «خطا» داشته باشد تا جزئیات خطا را به مدل برگرداند.

چندرسانه‌ای را می‌توان بااستفاده از زیرشیء حاوی یک کلید «$ref» که مقدار آن inlineData.display_name از FunctionResponsePart نگهدارنده چندرسانه‌ای است اضافه کرد. https://ai.google.dev/gemini-api/docs/function-calling#multimodal را ببینید.

parts[] object (FunctionResponsePart)

اختیاری. Parts مرتب‌شده که پاسخ تابع را تشکیل می‌دهد. بخش‌ها ممکن است انواع MIME IANA متفاوتی داشته باشند.

willContinue boolean

اختیاری. نشان می‌دهد که فراخوانی تابع ادامه دارد و پاسخ‌های بیشتری برگردانده خواهد شد، که فراخوانی تابع را به تولیدکننده تبدیل می‌کند. فقط برای فراخوانی‌های تابع NON_BLOCKING قابل‌اعمال است، درغیراین‌صورت نادیده گرفته می‌شود. اگر روی «نادرست» تنظیم شود، پاسخ‌های آتی درنظر گرفته نخواهند شد. برگرداندن response خالی با willContinue=False برای نشان دادن اینکه فراخوانی تابع تمام شده است مجاز است. این کار ممکن است همچنان باعث تولید مدل شود. برای جلوگیری از راه‌اندازی تولید و تکمیل فراخوانی تابع، scheduling را نیز روی SILENT تنظیم کنید.

scheduling enum (Scheduling)

اختیاری. مشخص می‌کند که پاسخ چگونه باید در مکالمه زمان‌بندی شود. فقط برای فراخوانی‌های تابع NON_BLOCKING قابل‌اجرا است، درغیراین‌صورت نادیده گرفته می‌شود. پیش‌فرض‌ها به WHEN_IDLE.

نمایش JSON
{
  "id": string,
  "name": string,
  "response": {
    object
  },
  "parts": [
    {
      object (FunctionResponsePart)
    }
  ],
  "willContinue": boolean,
  "scheduling": enum (Scheduling)
}

FunctionResponsePart

نوع داده‌ای حاوی رسانه که بخشی از پیام FunctionResponse است.

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

اگر فیلد inlineData با بایت‌های خام پر شده باشد، FunctionResponsePart باید نوع رسانه IANA ثابتی داشته باشد که نوع و زیرنوع رسانه را مشخص کند.

فیلدها
data Union type
داده‌های بخش پاسخ تابع. در زیر فهرستی از فیلدهای متقابلاً انحصاری آمده است. حداکثر یکی از فیلدها در پاسخ تنظیم خواهد شد:
inlineData object (FunctionResponseBlob)

بایت‌های رسانه به‌خط.

پایان فیلدهای متقابلاً انحصاری.
نمایش JSON
{

  // data
  "inlineData": {
    object (FunctionResponseBlob)
  }
  // Union type
}

FunctionResponseBlob

بایت‌های رسانه خام برای پاسخ تابع.

نوشتار نباید به‌صورت بایت‌های خام ارسال شود، از فیلد «FunctionResponse.response» استفاده کنید.

فیلدها
mimeType string

نوع MIME استاندارد IANA برای داده‌های منبع. مثال‌ها: - image/png - image/jpeg اگر نوع MIME پشتیبانی‌نشده‌ای ارائه شود، خطایی برگردانده خواهد شد. برای مشاهده فهرست کامل انواع پشتیبانی‌شده، به قالب‌های فایل پشتیبانی‌شده مراجعه کنید.

data string (bytes format)

بایت‌های خام برای قالب‌های رسانه.

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

نمایش JSON
{
  "mimeType": string,
  "data": string
}

زمان‌بندی

مشخص می‌کند که پاسخ چگونه باید در مکالمه زمان‌بندی شود.

شمارشی‌ها
SCHEDULING_UNSPECIFIED از این مقدار استفاده نشده است.
SILENT فقط نتیجه را به زمینه مکالمه اضافه کن، تولید را قطع یا راه‌اندازی نکن.
WHEN_IDLE نتیجه را به بافت مکالمه اضافه کنید و پیام‌واره‌ای برای تولید برونداد بدون ایجاد وقفه در تولید جاری ارائه دهید.
INTERRUPT افزودن نتیجه به بافت مکالمه، قطع کردن تولید درحال انجام، و درخواست برای تولید برونداد.

FileData

داده‌های مبتنی بر URI.

فیلدها
mimeType string

اختیاری. نوع MIME استاندارد IANA از داده‌های منبع.

fileUri string

الزامی. URI.

displayName string

اختیاری. نامی را که برای ارجاع به این فایل در مدل استفاده می‌شود مشخص می‌کند (مثلاً «my_file.pdf»). وقتی verbalizationMode روی REFERENCE_ONLY تنظیم شده باشد، به‌عنوان شناسه مرجع فایل استفاده می‌شود.

نمایش JSON
{
  "mimeType": string,
  "fileUri": string,
  "displayName": string
}

ExecutableCode

کد تولیدشده توسط مدل که قرار است اجرا شود و نتیجه به مدل برگردانده شود.

فقط هنگام استفاده از ابزار CodeExecution تولید می‌شود که در آن کد به‌طور خودکار اجرا می‌شود و CodeExecutionResult مربوطه نیز تولید می‌شود.

فیلدها
id string

اختیاری. شناسه یکتای بخش ExecutableCode. سرور CodeExecutionResult را با id منطبق برمی‌گرداند.

language enum (Language)

الزامی. زبان برنامه‌نویسی code.

code string

الزامی. کدی که باید اجرا شود.

نمایش JSON
{
  "id": string,
  "language": enum (Language),
  "code": string
}

زبان

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

شمارشی‌ها
LANGUAGE_UNSPECIFIED زبان تعیین نشده است. از این مقدار نباید استفاده شود.
PYTHON Python >= 3.10، با numpy و simpy دردسترس. Python زبان پیش‌فرض است.

CodeExecutionResult

نتیجه اجرای ExecutableCode.

فقط وقتی تولید می‌شود که از ابزار CodeExecution استفاده شود.

فیلدها
id string

اختیاری. شناسه بخش ExecutableCode که این نتیجه برای آن است. فقط درصورتی درج می‌شود که ExecutableCode مربوطه شناسه داشته باشد.

outcome enum (Outcome)

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

output string

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

نمایش JSON
{
  "id": string,
  "outcome": enum (Outcome),
  "output": string
}

نتیجه

شمارش نتایج احتمالی اجرای کد.

شمارشی‌ها
OUTCOME_UNSPECIFIED وضعیت نامشخص. از این مقدار نباید استفاده شود.
OUTCOME_OK اجرای کد باموفقیت تکمیل شد. ‫output حاوی خروجی استاندارد است (درصورت وجود).
OUTCOME_FAILED اجرای کد ناموفق بود. ‫output حاوی stderr و stdout (درصورت وجود) است.
OUTCOME_DEADLINE_EXCEEDED اجرای کد بیش‌ازحد طول کشید و لغو شد. ممکن است output جزئی وجود داشته باشد یا نداشته باشد.

ToolCall

ToolCall پیش‌بینی‌شده سمت سرور از مدل برگردانده شد. این پیام حاوی اطلاعاتی درباره ابزاری است که مدل می‌خواهد فراخوانی کند. انتظار نمی‌رود کارخواه این ToolCall را اجرا کند. درعوض، کارخواه باید این ToolCall را در نوبت بعدی در پیام Content، همراه با ToolResponse مربوطه، به API برگرداند.

فیلدها
id string

اختیاری. شناسه یکتای فراخوانی ابزار. سرور پاسخ ابزار را با id منطبق برمی‌گرداند.

toolName string

اختیاری. نام ابزاری که فراخوانده شده است.

toolType enum (ToolType)

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

args object (Struct format)

اختیاری. متغیرهای مستقل فراخوانی ابزار. مثال: {"arg1" : "value1", "arg2" : "value2" , ...}

نمایش JSON
{
  "id": string,
  "toolName": string,
  "toolType": enum (ToolType),
  "args": {
    object
  }
}

ToolType

نوع ابزار در فراخوانی تابع.

شمارشی‌ها
TOOL_TYPE_UNSPECIFIED نوع ابزار نامشخص است.
GOOGLE_SEARCH_WEB ابزار جستجوی Google، به Tool.google_search.search_types.web_search نگاشت می‌شود.
GOOGLE_SEARCH_IMAGE ابزار جستجوی تصویر، به Tool.google_search.search_types.image_search نگاشت می‌شود.
URL_CONTEXT ابزار بافت نشانی وب، به Tool.url_context نگاشت می‌شود.
GOOGLE_MAPS ابزار Google Maps، به Tool.google_maps نگاشت می‌شود.

ToolResponse

برونداد اجرای ToolCall سمت سرور. این پیام حاوی نتایج فراخوانی ابزاری است که توسط ToolCall از مدل شروع شده است. کارخواه باید این ToolResponse را در نوبت بعدی در پیام Content، همراه با ToolCall مربوطه، به API برگرداند.

فیلدها
id string

اختیاری. شناسه فراخوانی ابزاری که این پاسخ برای آن است.

toolType enum (ToolType)

الزامی. نوع ابزاری که فراخوانی شده است، مطابق با toolType در ToolCall مربوطه.

response object (Struct format)

اختیاری. پاسخ ابزار.

نمایش JSON
{
  "id": string,
  "toolType": enum (ToolType),
  "response": {
    object
  }
}

VideoMetadata

فراداده محتوای ویدیویی ورودی را توصیف می‌کند. وقتی inlineData یا fileData حاوی ویدیو است، این را در Part.video_metadata یا FunctionResponsePart.video_metadata تنظیم کنید تا پیش‌پردازش ویدیو ایستا (مانند برش زمانی، نرخ فریم، حداکثر تعداد فریم، یا لایه‌های محتوای استخراج‌شده) را پیکربندی کنید.

فیلدها
startOffset string (Duration format)

اختیاری. انحراف شروع ویدیو.

مدت‌زمان به ثانیه با حداکثر نه رقم اعشار، که به «s» ختم می‌شود. مثال: "3.5s".

endOffset string (Duration format)

اختیاری. انحراف پایانی ویدیو.

مدت‌زمان به ثانیه با حداکثر نه رقم اعشار، که به «s» ختم می‌شود. مثال: "3.5s".

fps number

اختیاری. نرخ فریم ویدیویی که به مدل ارسال شده است. اگر مشخص نشده باشد، مقدار پیش‌فرض ۱٫۰ خواهد بود. محدوده فریم در ثانیه (0.0, 24.0] است.

نمایش JSON
{
  "startOffset": string,
  "endOffset": string,
  "fps": number
}

MediaResolution

وضوح رسانه برای نشانه‌گذاری.

فیلدها
value Union type
سطح وضوح رسانه. در زیر فهرستی از فیلدهای متقابلاً انحصاری آمده است. حداکثر یکی از فیلدها در پاسخ تنظیم خواهد شد:
level enum (Level)

کیفیت نشان‌گذاری استفاده‌شده برای رسانه موردنظر. برای پشتیبانی Gemini API .

پایان فیلدهای متقابلاً انحصاری.
نمایش JSON
{

  // value
  "level": enum (Level)
  // Union type
}

سطح

سطح وضوح رسانه.

شمارشی‌ها
MEDIA_RESOLUTION_UNSPECIFIED وضوح رسانه تنظیم نشده است.
MEDIA_RESOLUTION_LOW وضوح رسانه روی کم تنظیم شد.
MEDIA_RESOLUTION_MEDIUM وضوح رسانه روی متوسط تنظیم شد.
MEDIA_RESOLUTION_HIGH وضوح رسانه روی زیاد تنظیم شد.
MEDIA_RESOLUTION_ULTRA_HIGH وضوح رسانه روی بسیار بالا تنظیم شد.

MediaProcessing

نحوه پردازش رسانه ورودی توسط مدل برای درک آن.

شمارشی‌ها
MEDIA_PROCESSING_UNSPECIFIED به‌طور پیش‌فرض پردازش مختص مدل را انجام می‌دهد.
STATIC استخراج فریم با نرخ ثابت. همه قاب‌ها در بافت قرار گرفتند.
AGENTIC ناوبری پویا مبتنی بر مدل. برای اکثر موارد استفاده توصیه می‌شود.

AudioTranscription

ترانویسی بخش صوتی. برای صدای چندگوینده، هر بخش گوینده یک «بخش» جداگانه با AudioTranscription خودش است که speakerLabel را حمل می‌کند.

فیلدها
text string

الزامی. نوشتار ترانویسی این بخش صوتی.

speakerLabel string

اختیاری. برچسبی که گوینده این بخش صوتی را شناسایی می‌کند (مثلاً «spk_1»،‏ «spk_2»). وقتی گوینده‌یابی تنظیم شده باشد، ارائه می‌شود.

words[] object (WordInfo)

اختیاری. ترانویسی‌های دقیق در سطح کلمه و جزئیات زمان‌بندی. وقتی wordTimestamp تنظیم شده باشد، وجود دارد.

نمایش JSON
{
  "text": string,
  "speakerLabel": string,
  "words": [
    {
      object (WordInfo)
    }
  ]
}

WordInfo

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

فیلدها
word string

الزامی. ترانویسی کلمه.

startOffset string (Duration format)

اختیاری. شروع افست در زمان کلمه نسبت به شروع صدا.

مدت‌زمان به ثانیه با حداکثر نه رقم اعشار، که به «s» ختم می‌شود. مثال: "3.5s".

endOffset string (Duration format)

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

مدت‌زمان به ثانیه با حداکثر نه رقم اعشار، که به «s» ختم می‌شود. مثال: "3.5s".

نمایش JSON
{
  "word": string,
  "startOffset": string,
  "endOffset": string
}

SpeechMetadata

فراداده گفتار برای text بخش.

فیلدها
speaker string

اختیاری. نام اختیاری گوینده برای ترکیب چندگوینده.

style string

اختیاری. دستورالعمل سبک اختیاری برای ترکیب گفتار.

نمایش JSON
{
  "speaker": string,
  "style": string
}

محیط زیست

محیط اجرایی برای عامل.

فیلدها
id string

الزامی. فقط خروجی. شناسه محیط.

sources[] object (Source)

منابعی که باید در محیط نصب شوند.

created string

فقط خروجی. زمانی که محیط در قالب ISO 8601 ایجاد شده است (YYYY-MM-DDThh:mm:ssZ).

updated string

فقط خروجی. زمانی که محیط آخرین‌بار در قالب ISO 8601 به‌روزرسانی شده است (YYYY-MM-DDThh:mm:ssZ).

lastAccessed string

فقط خروجی. زمانی که آخرین‌بار به محیط دسترسی پیدا شده است در قالب ISO 8601 (YYYY-MM-DDThh:mm:ssZ).

status enum (Status)

فقط خروجی. وضعیت محفظه محیط.

fileCount string (int64 format)

فقط خروجی. تعداد فایل‌ها در محیط، فقط برونداد.

sizeBytes string (int64 format)

فقط خروجی. اندازه کل فایل‌های محیط به بایت، فقط خروجی.

network Union type
پیکربندی شبکه برای محیط. در زیر فهرستی از فیلدهای متقابلاً انحصاری آمده است. حداکثر یکی از فیلدها در پاسخ تنظیم خواهد شد:
networkAllowlist object (EnvironmentNetworkEgressAllowlist)

فقط دامنه‌های خاصی را مجاز کنید.

networkMode enum (NetworkMode)

حالت خروج شبکه.

پایان فیلدهای متقابلاً انحصاری.
نمایش JSON
{
  "id": string,
  "sources": [
    {
      object (Source)
    }
  ],
  "created": string,
  "updated": string,
  "lastAccessed": string,
  "status": enum (Status),
  "fileCount": string,
  "sizeBytes": string,

  // network
  "networkAllowlist": {
    object (EnvironmentNetworkEgressAllowlist)
  },
  "networkMode": enum (NetworkMode)
  // Union type
}

وضعیت

وضعیت محیط.

شمارشی‌ها
STATUS_UNSPECIFIED
ACTIVE
EXPIRED

NetworkMode

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

شمارشی‌ها
NETWORK_MODE_UNSPECIFIED مقدار پیش‌فرض. استفاده‌نشده.
DISABLED همه خروجی‌های شبکه مسدود شده است.

طرح

شیء Schema امکان تعریف انواع داده‌های ورودی و خروجی را فراهم می‌کند. این نوع‌ها می‌توانند اشیا باشند، اما همچنین می‌توانند انواع اولیه و آرایه‌ها باشند. نشان‌دهنده زیرمجموعه انتخابی از شیء طرح‌واره OpenAPI 3.0 است.

فیلدها
type enum (Type)

الزامی. نوع داده.

format string

اختیاری. قالب داده‌ها. هر مقداری مجاز است، اما اکثر آن‌ها عملکرد خاصی را راه‌اندازی نمی‌کنند.

title string

اختیاری. عنوان طرح‌واره.

description string

اختیاری. شرح مختصری از پارامتر. این پیام ممکن است حاوی نمونه‌هایی از کاربرد باشد. شرح پارامتر ممکن است به‌صورت Markdown قالب‌بندی شده باشد.

nullable boolean

اختیاری. نشان می‌دهد که آیا مقدار می‌تواند تهی باشد یا نه.

enum[] string

اختیاری. مقادیر احتمالی عنصر Type.STRING با قالب enum. برای مثال، می‌توانیم Enum Direction را به‌صورت زیر تعریف کنیم : {type:STRING, format:enum, enum:["EAST", NORTH", "SOUTH", "WEST"]}

maxItems string (int64 format)

اختیاری. حداکثر تعداد عناصر برای Type.ARRAY.

minItems string (int64 format)

اختیاری. حداقل تعداد عناصر برای Type.ARRAY.

properties map (key: string, value: object (Schema))

اختیاری. خصوصیات Type.OBJECT.

شیئی که حاوی فهرستی از جفت‌های "key": value است. مثال: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

required[] string

اختیاری. ویژگی‌های الزامی Type.OBJECT.

minProperties string (int64 format)

اختیاری. حداقل تعداد ویژگی‌ها برای Type.OBJECT.

maxProperties string (int64 format)

اختیاری. حداکثر تعداد ویژگی‌ها برای Type.OBJECT.

minLength string (int64 format)

اختیاری. SCHEMA FIELDS FOR TYPE STRING Minimum length of the Type.STRING

maxLength string (int64 format)

اختیاری. حداکثر طول Type.STRING

pattern string

اختیاری. الگوی Type.STRING برای محدود کردن رشته به عبارت باقاعده.

example value (Value format)

اختیاری. نمونه‌ای از شیء. فقط زمانی درج می‌شود که شیء ریشه باشد.

anyOf[] object (Schema)

اختیاری. مقدار باید دربرابر هرکدام (یک یا چند) از زیرطرح‌واره‌های موجود در فهرست اعتبارسنجی شود.

propertyOrdering[] string

اختیاری. ترتیب مشخصه‌ها. فیلد استانداردی در مشخصات open api نیست. برای تعیین ترتیب ویژگی‌ها در پاسخ استفاده می‌شود.

default value (Value format)

اختیاری. مقدار پیش‌فرض فیلد. طبق «طرح JSON»، این فیلد برای تولیدکنندگان اسناد درنظر گرفته شده است و بر اعتبارسنجی تأثیری ندارد. بنابراین در اینجا گنجانده شده و نادیده گرفته می‌شود تا توسعه‌دهندگانی که طرحواره‌ها را با فیلد default ارسال می‌کنند، خطاهای فیلد ناشناخته دریافت نکنند.

items object (Schema)

اختیاری. طرح‌واره عناصر Type.ARRAY.

minimum number

اختیاری. فیلدهای طرح‌واره برای نوع عدد صحیح و عدد حداقل مقدار Type.INTEGER و Type.NUMBER

maximum number

اختیاری. حداکثر مقدار Type.INTEGER و Type.NUMBER

نمایش JSON
{
  "type": enum (Type),
  "format": string,
  "title": string,
  "description": string,
  "nullable": boolean,
  "enum": [
    string
  ],
  "maxItems": string,
  "minItems": string,
  "properties": {
    string: {
      object (Schema)
    },
    ...
  },
  "required": [
    string
  ],
  "minProperties": string,
  "maxProperties": string,
  "minLength": string,
  "maxLength": string,
  "pattern": string,
  "example": value,
  "anyOf": [
    {
      object (Schema)
    }
  ],
  "propertyOrdering": [
    string
  ],
  "default": value,
  "items": {
    object (Schema)
  },
  "minimum": number,
  "maximum": number
}

نوع

Type حاوی فهرست انواع داده‌های OpenAPI است که در https://spec.openapis.org/oas/v3.0.3#data-types تعریف شده است

شمارشی‌ها
TYPE_UNSPECIFIED مشخص نشده است، نباید استفاده شود.
STRING نوع رشته.
NUMBER نوع شماره.
INTEGER نوع عدد صحیح.
BOOLEAN نوع بولی.
ARRAY نوع آرایه.
OBJECT نوع شیء.
NULL نوع Null.

ابزار

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

Tool قطعه کدی است که به سیستم امکان می‌دهد با سیستم‌های خارجی تعامل داشته باشد تا کنش یا مجموعه‌ای از کنش‌ها را خارج از دانش و محدوده مدل انجام دهد.

فیلدها
functionDeclarations[] object (FunctionDeclaration)

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

مدل یا سیستم تابع را اجرا نمی‌کند. درعوض، تابع تعریف‌شده ممکن است به‌عنوان FunctionCall با آرگومان‌هایی به سمت کارخواه برای اجرا برگردانده شود. مدل ممکن است تصمیم بگیرد زیرمجموعه‌ای از این توابع را با پر کردن FunctionCall در پاسخ فراخوانی کند. نوبت مکالمه بعدی ممکن است حاوی FunctionResponse با بافت تولید «تابع» Content.role برای نوبت مدل بعدی باشد.

googleSearchRetrieval object (GoogleSearchRetrieval)

اختیاری. ابزار بازیابی که با «جستجوی Google» پشتیبانی می‌شود.

codeExecution object (CodeExecution)

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

computerUse object (ComputerUse)

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

urlContext object (UrlContext)

اختیاری. ابزاری برای پشتیبانی از بازیابی بافت نشانی وب.

mcpServers[] object (McpServer)

اختیاری. سرورهای MCP برای اتصال.

googleMaps object (GoogleMaps)

اختیاری. ابزاری که امکان زمینه‌سازی پاسخ مدل را با بافت جغرافیایی-فضایی مرتبط با پُرسمان کاربر فراهم می‌کند.

نمایش JSON
{
  "functionDeclarations": [
    {
      object (FunctionDeclaration)
    }
  ],
  "googleSearchRetrieval": {
    object (GoogleSearchRetrieval)
  },
  "codeExecution": {
    object (CodeExecution)
  },
  "googleSearch": {
    object (GoogleSearch)
  },
  "computerUse": {
    object (ComputerUse)
  },
  "urlContext": {
    object (UrlContext)
  },
  "fileSearch": {
    object (FileSearch)
  },
  "mcpServers": [
    {
      object (McpServer)
    }
  ],
  "googleMaps": {
    object (GoogleMaps)
  }
}

FunctionDeclaration

نمایش ساختاریافته اعلان تابع همان‌طور که در مشخصات OpenAPI 3.03 تعریف شده است. نام و پارامترهای تابع در این تعریف گنجانده شده است. این FunctionDeclaration نمایشی از یک بلوک کد است که می‌تواند به‌عنوان Tool توسط مدل استفاده شود و توسط کارخواه اجرا شود.

فیلدها
name string

الزامی. نام تابع. باید a-z،‏ A-Z،‏ 0-9، یا حاوی زیرخط، دونقطه، نقطه، و خط تیره باشد و حداکثر طول آن ۱۲۸ باشد.

description string

الزامی. شرح مختصری از تابع.

behavior enum (Behavior)

اختیاری. «رفتار» تابع را مشخص می‌کند. درحال‌حاضر فقط توسط روش BidiGenerateContent پشتیبانی می‌شود.

parameters object (Schema)

اختیاری. پارامترهای این تابع را شرح می‌دهد. منعکس‌کننده کلید رشته‌ای شیء پارامتر Open API 3.03: نام پارامتر. نام پارامترها حروف‌حساس است. مقدار طرح‌واره: طرح‌واره‌ای که نوع استفاده‌شده برای پارامتر را تعریف می‌کند.

parametersJsonSchema value (Value format)

اختیاری. پارامترهای تابع را در قالب «طرح JSON» توصیف می‌کند. طرحواره باید شیئی را توصیف کند که ویژگی‌های آن پارامترهای تابع باشند. برای مثال:

{
  "type": "object",
  "properties": {
    "name": { "type": "string" },
    "age": { "type": "integer" }
  },
  "additionalProperties": false,
  "required": ["name", "age"],
  "propertyOrdering": ["name", "age"]
}

این فیلد با parameters به‌صورت متقابل انحصاری است.

response object (Schema)

اختیاری. خروجی این تابع را در قالب «طرح JSON» توصیف می‌کند. منعکس‌کننده Open API 3.03 Response Object است. «طرح‌واره» نوع مورداستفاده برای مقدار پاسخ تابع را تعریف می‌کند.

responseJsonSchema value (Value format)

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

این فیلد با response به‌صورت متقابل انحصاری است.

نمایش JSON
{
  "name": string,
  "description": string,
  "behavior": enum (Behavior),
  "parameters": {
    object (Schema)
  },
  "parametersJsonSchema": value,
  "response": {
    object (Schema)
  },
  "responseJsonSchema": value
}

رفتار

رفتار تابع را تعریف می‌کند. پیش‌فرض‌ها به BLOCKING.

شمارشی‌ها
UNSPECIFIED از این مقدار استفاده نشده است.
BLOCKING اگر تنظیم شود، سیستم قبل‌از ادامه مکالمه منتظر دریافت پاسخ تابع می‌ماند.
NON_BLOCKING اگر تنظیم شود، سیستم برای دریافت پاسخ تابع منتظر نخواهد ماند. درعوض، تلاش می‌کند پاسخ‌های تابع را به‌محض دردسترس قرار گرفتن مدیریت کند و درعین‌حال مکالمه بین کاربر و مدل را حفظ کند.

GoogleSearchRetrieval

ابزاری برای بازیابی داده‌های وب عمومی برای زمینه‌سازی، با پشتیبانی Google.

فیلدها
dynamicRetrievalConfig object (DynamicRetrievalConfig)

پیکربندی بازیابی پویا را برای منبع ارائه‌شده مشخص می‌کند.

نمایش JSON
{
  "dynamicRetrievalConfig": {
    object (DynamicRetrievalConfig)
  }
}

DynamicRetrievalConfig

گزینه‌های سفارشی‌سازی بازیابی پویا را شرح می‌دهد.

فیلدها
mode enum (Mode)

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

dynamicThreshold number

آستانه‌ای که باید در بازیابی پویا استفاده شود. اگر تنظیم نشده باشد، از مقدار پیش‌فرض سیستم استفاده می‌شود.

نمایش JSON
{
  "mode": enum (Mode),
  "dynamicThreshold": number
}

حالت

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

شمارشی‌ها
MODE_UNSPECIFIED همیشه بازیابی را راه‌اندازی کنید.
MODE_DYNAMIC بازیابی فقط زمانی اجرا شود که سیستم تشخیص دهد ضروری است.

CodeExecution

این نوع فیلدی ندارد.

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

همچنین ExecutableCode و CodeExecutionResult را ببینید که فقط هنگام استفاده از این ابزار تولید می‌شوند.

GoogleSearch

نوع ابزار GoogleSearch. ابزاری برای پشتیبانی از «جستجوی Google» در «مدل». با پشتیبانی Google.

فیلدها
timeRangeFilter object (Interval)

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

searchTypes object (SearchTypes)

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

نمایش JSON
{
  "timeRangeFilter": {
    object (Interval)
  },
  "searchTypes": {
    object (SearchTypes)
  }
}

فاصله

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

شروع باید کمتر از یا مساوی با پایان باشد. وقتی شروع با پایان برابر باشد، فاصله زمانی خالی است (با هیچ زمانی مطابقت ندارد). وقتی هم شروع و هم پایان نامشخص باشد، فاصله زمانی با هر زمانی مطابقت دارد.

فیلدها
startTime string (Timestamp format)

اختیاری. شروع فراگیر فاصله زمانی.

اگر مشخص شده باشد، «مُهر زمان» منطبق با این فاصله زمانی باید با شروع یکسان یا بعداز آن باشد.

از RFC 3339 استفاده می‌کند، که در آن خروجی تولیدشده همیشه Z-نرمال‌شده است و از ۰، ۳، ۶، یا ۹ رقم اعشاری استفاده می‌کند. انحراف‌های غیراز «Z» نیز پذیرفته می‌شود. مثال‌ها: "2014-10-02T15:01:23Z"، "2014-10-02T15:01:23.045123456Z"، یا "2014-10-02T15:01:23+05:30".

endTime string (Timestamp format)

اختیاری. پایان انحصاری فاصله زمانی.

اگر مشخص شده باشد، «مُهر زمان» مطابق با این فاصله باید قبل‌از پایان باشد.

از RFC 3339 استفاده می‌کند، که در آن خروجی تولیدشده همیشه Z-نرمال‌شده است و از ۰، ۳، ۶، یا ۹ رقم اعشاری استفاده می‌کند. انحراف‌های غیراز «Z» نیز پذیرفته می‌شود. مثال‌ها: "2014-10-02T15:01:23Z"، "2014-10-02T15:01:23.045123456Z"، یا "2014-10-02T15:01:23+05:30".

نمایش JSON
{
  "startTime": string,
  "endTime": string
}

SearchTypes

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

فیلدها
نمایش JSON
{
  "webSearch": {
    object (WebSearch)
  },
  "imageSearch": {
    object (ImageSearch)
  }
}

WebSearch

این نوع فیلدی ندارد.

جستجوی وب استاندارد برای زمینه‌سازی و پیکربندی‌های مرتبط.

ImageSearch

این نوع فیلدی ندارد.

جستجوی تصویر برای زمینه‌سازی و پیکربندی‌های مرتبط.

ComputerUse

نوع ابزار «استفاده از رایانه».

فیلدها
environment enum (Environment)

الزامی. محیطی که در آن کار می‌کند.

excludedPredefinedFunctions[] string

اختیاری. به‌طور پیش‌فرض، توابع ازپیش تعریف‌شده در فراخوانی مدل نهایی گنجانده می‌شوند. برخی‌از آن‌ها را می‌توان به‌طور صریح از گنجانده شدن خودکار مستثنی کرد. این کار می‌تواند دو هدف داشته باشد: ۱. استفاده از فضای کنش محدودتر / متفاوت. ۲. بهبود تعاریف / دستورالعمل‌های توابع ازپیش تعریف‌شده.

enablePromptInjectionDetection boolean

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

disabledSafetyPolicies[] enum (SafetyPolicy)

اختیاری. خط‌مشی‌های ایمنی غیرفعال‌شده برای استفاده از رایانه.

نمایش JSON
{
  "environment": enum (Environment),
  "excludedPredefinedFunctions": [
    string
  ],
  "enablePromptInjectionDetection": boolean,
  "disabledSafetyPolicies": [
    enum (SafetyPolicy)
  ]
}

محیط زیست

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

شمارشی‌ها
ENVIRONMENT_UNSPECIFIED به‌طور پیش‌فرض به مرورگر می‌رود.
ENVIRONMENT_BROWSER در مرورگر وب کار می‌کند.
ENVIRONMENT_MOBILE در محیط تلفن همراه کار می‌کند.
ENVIRONMENT_DESKTOP در محیط رایانه کار می‌کند.

SafetyPolicy

خط‌مشی‌های ایمنی ازپیش‌تعریف‌شده برای استفاده از رایانه.

شمارشی‌ها
SAFETY_POLICY_UNSPECIFIED خط‌مشی ایمنی نامشخص.
FINANCIAL_TRANSACTIONS خط‌مشی ایمنی برای تراکنش‌های مالی.
SENSITIVE_DATA_MODIFICATION خط‌مشی ایمنی برای اصلاح داده‌های حساس.
COMMUNICATION_TOOL خط‌مشی ایمنی برای ابزارهای ارتباطی (مثلاً Gmail،‏ Chat،‏ Meet).
ACCOUNT_CREATION خط‌مشی ایمنی برای ایجاد حساب.
DATA_MODIFICATION خط‌مشی ایمنی برای اصلاح داده‌ها.
LEGAL_TERMS_AND_AGREEMENTS خط‌مشی ایمنی برای شرایط و قراردادهای حقوقی.

UrlContext

این نوع فیلدی ندارد.

ابزاری برای پشتیبانی از بازیابی بافت نشانی وب.

FileSearch

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

فیلدها
fileSearchStoreNames[] string

الزامی. نام‌های fileSearchStores برای بازیابی از آن. مثال: fileSearchStores/my-file-search-store-123

metadataFilter string

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

topK integer

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

نمایش JSON
{
  "fileSearchStoreNames": [
    string
  ],
  "metadataFilter": string,
  "topK": integer
}

McpServer

‫MCPServer سروری است که مدل می‌تواند برای انجام کنش‌ها آن را فراخوانی کند. سروری است که پروتکل MCP را پیاده‌سازی می‌کند.

فیلدها
name string

نام MCPServer.

transport Union type
انتقالی که برای اتصال به MCPServer استفاده می‌شود. در زیر فهرستی از فیلدهای متقابلاً انحصاری آمده است. حداکثر یکی از فیلدها در پاسخ تنظیم خواهد شد:
streamableHttpTransport object (StreamableHttpTransport)

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

پایان فیلدهای متقابلاً انحصاری.
نمایش JSON
{
  "name": string,

  // transport
  "streamableHttpTransport": {
    object (StreamableHttpTransport)
  }
  // Union type
}

StreamableHttpTransport

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

فیلدها
url string

نشانی وب کامل برای نقطه پایان MCPServer. مثال: «https://api.example.com/mcp»

headers map (key: string, value: string)

اختیاری: فیلدهایی برای سرصفحه‌های اصالت‌سنجی، زمان‌های اتمام مهلت، و غیره، درصورت نیاز.

شیئی که حاوی فهرستی از جفت‌های "key": value است. مثال: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

timeout string (Duration format)

درنگ HTTP برای عملیات‌های عادی.

مدت‌زمان به ثانیه با حداکثر نه رقم اعشار، که به «s» ختم می‌شود. مثال: "3.5s".

sseReadTimeout string (Duration format)

درنگ برای عملیات خواندن SSE.

مدت‌زمان به ثانیه با حداکثر نه رقم اعشار، که به «s» ختم می‌شود. مثال: "3.5s".

terminateOnClose boolean

آیا جلسه مشتری هنگام بسته شدن انتقال بسته شود.

نمایش JSON
{
  "url": string,
  "headers": {
    string: string,
    ...
  },
  "timeout": string,
  "sseReadTimeout": string,
  "terminateOnClose": boolean
}

GoogleMaps

ابزار GoogleMaps که بافت جغرافیایی-فضایی برای پُرسمان کاربر ارائه می‌دهد.

فیلدها
enableWidget boolean

اختیاری. آیا داده‌واحد بافتی ابزاره در GroundingMetadata پاسخ برگردانده شود یا نه. توسعه‌دهندگان می‌توانند از داده‌واحد بافتی ابزارک برای ارائه ابزارک Google Maps با بافت جغرافیایی-فضایی مربوط به مکان‌هایی که مدل در پاسخ به آن‌ها ارجاع می‌دهد استفاده کنند.

نمایش JSON
{
  "enableWidget": boolean
}

منبع REST: auth_tokens

منبع: AuthToken

درخواستی برای ایجاد یک توکن اصالت‌سنجی موقت.

فیلدها
name string

فقط خروجی. شناسه. خود کد.

expireTime string (Timestamp format)

اختیاری. فقط ورودی. تغییرناپذیر. زمان اختیاری که پس‌از آن، هنگام استفاده از توکن حاصل، پیام‌ها در جلسه‌های BidiGenerateContent رد خواهند شد. (Gemini ممکن است پس‌از این مدت جلسه را پیش‌دستانه ببندد.)

اگر تنظیم نشده باشد، به‌طور پیش‌فرض روی ۳۰ دقیقه آینده تنظیم می‌شود. اگر تنظیم شود، این مقدار باید کمتر از ۲۰ ساعت در آینده باشد.

از RFC 3339 استفاده می‌کند، که در آن خروجی تولیدشده همیشه Z-نرمال‌شده است و از ۰، ۳، ۶، یا ۹ رقم اعشاری استفاده می‌کند. انحراف‌های غیراز «Z» نیز پذیرفته می‌شود. مثال‌ها: "2014-10-02T15:01:23Z"، "2014-10-02T15:01:23.045123456Z"، یا "2014-10-02T15:01:23+05:30".

newSessionExpireTime string (Timestamp format)

اختیاری. فقط ورودی. تغییرناپذیر. زمانی که پس‌از آن، جلسه‌های جدید Live API که از این توکن حاصل از این درخواست استفاده می‌کنند رد خواهند شد.

اگر تنظیم نشود، در آینده به‌طور پیش‌فرض روی ۶۰ ثانیه تنظیم می‌شود. اگر تنظیم شود، این مقدار باید کمتر از ۲۰ ساعت در آینده باشد.

از RFC 3339 استفاده می‌کند، که در آن خروجی تولیدشده همیشه Z-نرمال‌شده است و از ۰، ۳، ۶، یا ۹ رقم اعشاری استفاده می‌کند. انحراف‌های غیراز «Z» نیز پذیرفته می‌شود. مثال‌ها: "2014-10-02T15:01:23Z"، "2014-10-02T15:01:23.045123456Z"، یا "2014-10-02T15:01:23+05:30".

fieldMask string (FieldMask format)

اختیاری. فقط ورودی. تغییرناپذیر. اگر fieldMask خالی باشد و bidiGenerateContentSetup وجود نداشته باشد، پیام BidiGenerateContentSetup مؤثر از اتصال Live API گرفته می‌شود.

اگر fieldMask خالی باشد و bidiGenerateContentSetup وجود داشته باشد، پیام BidiGenerateContentSetup مؤثر به‌طور کامل از bidiGenerateContentSetup در این درخواست گرفته می‌شود. پیام راه‌اندازی از اتصال Live API نادیده گرفته می‌شود.

اگر fieldMask خالی نباشد، فیلدهای مربوطه از bidiGenerateContentSetup فیلدهای پیام راه‌اندازی را در اتصال Live API بازنویسی خواهند کرد.

این فهرست جداشده با کاما از نام‌های کاملاً واجدشرایط فیلدها است. مثال: "user.displayName,photo".

config Union type
پیکربندی ویژه روش برای کد حاصل. در زیر فهرستی از فیلدهای متقابلاً انحصاری آمده است. حداکثر یکی از فیلدها در پاسخ تنظیم خواهد شد:
bidiGenerateContentSetup object (BidiGenerateContentSetup)

اختیاری. فقط ورودی. تغییرناپذیر. پیکربندی مختص BidiGenerateContent.

پایان فیلدهای متقابلاً انحصاری.
uses integer

اختیاری. فقط ورودی. تغییرناپذیر. تعداد دفعاتی که می‌توان از این توکن استفاده کرد. اگر این مقدار صفر باشد، هیچ محدودیتی اعمال نمی‌شود. ازسر گرفتن جلسه Live API به‌عنوان استفاده محسوب نمی‌شود. اگر مشخص نشده باشد، پیش‌فرض ۱ است.

نمایش JSON
{
  "name": string,
  "expireTime": string,
  "newSessionExpireTime": string,
  "fieldMask": string,

  // config
  "bidiGenerateContentSetup": {
    object (BidiGenerateContentSetup)
  }
  // Union type
  "uses": integer
}

BidiGenerateContentSetup

پیامی که باید در اولین (و فقط در اولین) BidiGenerateContentClientMessage ارسال شود. حاوی پیکربندی‌ای است که در طول مدت RPC جاری‌سازی اعمال خواهد شد.

مشتریان باید قبل‌از ارسال هرگونه پیام اضافی، منتظر پیام BidiGenerateContentSetupComplete بمانند.

فیلدها
model string

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

قالب: models/{model}

generationConfig object (GenerationConfig)

اختیاری. پیکربندی تولید.

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

  • responseLogprobs
  • responseMimeType
  • logprobs
  • responseSchema
  • responseJsonSchema
  • stop_sequence
  • skipResponseCache
  • routing_config
  • audio_timestamp
systemInstruction object (Content)

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

توجه: فقط باید از نوشتار در بخش‌ها استفاده شود و محتوای هر بخش در پاراگراف جداگانه‌ای قرار خواهد گرفت.

tools[] object (Tool)

اختیاری. فهرستی از Tools که مدل ممکن است برای تولید پاسخ بعدی استفاده کند.

Tool قطعه کدی است که به سیستم امکان می‌دهد با سیستم‌های خارجی تعامل داشته باشد تا کنش یا مجموعه‌ای از کنش‌ها را خارج از دانش و محدوده مدل انجام دهد.

realtimeInputConfig object (RealtimeInputConfig)

اختیاری. مدیریت ورودی هم‌زمان را پیکربندی می‌کند.

sessionResumption object (SessionResumptionConfig)

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

اگر اضافه شود، سرور SessionResumptionUpdate پیام ارسال خواهد کرد.

contextWindowCompression object (ContextWindowCompressionConfig)

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

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

inputAudioTranscription object (AudioTranscriptionConfig)

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

outputAudioTranscription object (AudioTranscriptionConfig)

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

historyConfig object (HistoryConfig)

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

labels map (key: string, value: string)

اختیاری. برچسب‌های دارای فراداده تعریف‌شده توسط کاربر برای درخواست.

اختیاری. برچسب‌ها باید از الزامات استاندارد برچسب Cloud یکپارچه پیروی کنند: - کلیدهای برچسب باید با حرف شروع شوند. - کلیدها و مقادیر برچسب نباید بیشتر از ۶۳ نویسه (نقطه کد یونیکد) باشند و فقط می‌توانند حاوی حروف کوچک، نویسه‌های عددی، زیرخط، و خط تیره باشند. - نویسه‌های بین‌المللی مجاز هستند.

کاربرد: - شناسه‌های ایمنی از تجمیع‌کننده‌ها: از کلید safety_identifier استفاده کنید (مثلاً {"safety_identifier": "user_session_123"})

شیئی که حاوی فهرستی از جفت‌های "key": value است. مثال: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

نمایش JSON
{
  "model": string,
  "generationConfig": {
    object (GenerationConfig)
  },
  "systemInstruction": {
    object (Content)
  },
  "tools": [
    {
      object (Tool)
    }
  ],
  "realtimeInputConfig": {
    object (RealtimeInputConfig)
  },
  "sessionResumption": {
    object (SessionResumptionConfig)
  },
  "contextWindowCompression": {
    object (ContextWindowCompressionConfig)
  },
  "inputAudioTranscription": {
    object (AudioTranscriptionConfig)
  },
  "outputAudioTranscription": {
    object (AudioTranscriptionConfig)
  },
  "historyConfig": {
    object (HistoryConfig)
  },
  "labels": {
    string: string,
    ...
  }
}

GenerationConfig

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

فیلدها
stopSequences[] string

اختیاری. مجموعه توالی‌های نویسه (حداکثر ۵) که تولید برونداد را متوقف می‌کند. اگر مشخص شده باشد، API در اولین ظهور stop_sequence متوقف خواهد شد. دنباله توقف به‌عنوان بخشی از پاسخ گنجانده نخواهد شد.

responseMimeType string

اختیاری. نوع MIME نوشتار نامزد تولیدشده. انواع MIME پشتیبانی‌شده عبارت‌اند از: text/plain: (پیش‌فرض) برونداد نوشتاری. application/json: پاسخ JSON در پاسخ‌های کاندید. text/x.enum: ENUM به‌عنوان پاسخ رشته‌ای در نامزدهای پاسخ. برای مشاهده فهرست همه انواع MIME نوشتاری پشتیبانی‌شده، به اسناد مراجعه کنید.

responseSchema
(deprecated)
object (Schema)

اختیاری. طرح‌واره برونداد نوشتار نامزد تولیدشده. طرح‌واره‌ها باید زیرمجموعه‌ای از طرح‌واره OpenAPI باشند و می‌توانند شیء، اولیه، یا آرایه باشند.

اگر تنظیم شده باشد، responseMimeType سازگار نیز باید تنظیم شود. انواع MIME سازگار: application/json: طرح‌واره برای پاسخ JSON. برای جزئیات بیشتر، به راهنمای تولید نوشتار JSON مراجعه کنید.

منسوخ‌شده. درعوض از responseFormat استفاده کنید.

_responseJsonSchema
(deprecated)
value (Value format)

اختیاری. طرح‌واره برونداد پاسخ تولیدشده. این جایگزینی برای responseSchema است که طرح JSON را می‌پذیرد.

اگر تنظیم شود، responseSchema باید حذف شود، اما responseMimeType الزامی است.

اگرچه ممکن است JSON Schema کامل ارسال شود، اما همه ویژگی‌ها پشتیبانی نمی‌شوند. به‌طور خاص، فقط از ویژگی‌های زیر پشتیبانی می‌شود:

  • $id
  • $defs
  • $ref
  • $anchor
  • type
  • format
  • title
  • description
  • enum (برای رشته‌ها و اعداد)
  • items
  • prefixItems
  • minItems
  • maxItems
  • minimum
  • maximum
  • anyOf
  • oneOf (به‌صورت مشابه با anyOf تفسیر می‌شود)
  • properties
  • additionalProperties
  • required

خصوصیت غیر استاندارد propertyOrdering نیز ممکن است تنظیم شود.

ارجاع‌های چرخه‌ای تا حد محدودی باز می‌شوند و بنابراین فقط در دارایی‌های غیرالزامی قابل‌استفاده هستند. (ویژگی‌های Nullable کافی نیستند.) اگر $ref در زیرطرحی تنظیم شده باشد، هیچ ویژگی دیگری، به‌جز ویژگی‌هایی که با $ شروع می‌شوند، نمی‌تواند تنظیم شود.

منسوخ‌شده. درعوض از responseFormat استفاده کنید.

responseJsonSchema value (Value format)

اختیاری. جزئیات داخلی. به‌جای این فیلد، از responseJsonSchema استفاده کنید.

responseModalities[] enum (Modality)

اختیاری. حالت‌های درخواستی پاسخ. مجموعه حالت‌هایی را نشان می‌دهد که مدل می‌تواند برگرداند و باید در پاسخ انتظار داشت. این مورد دقیقاً با حالت‌های پاسخ مطابقت دارد.

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

فهرست خالی معادل درخواست فقط نوشتار است.

candidateCount integer

اختیاری. تعداد پاسخ‌های تولیدشده برای برگرداندن. اگر تنظیم نشده باشد، مقدار پیش‌فرض ۱ خواهد بود. لطفاً توجه داشته باشید که این ویژگی برای مدل‌های نسل قبلی (خانواده Gemini 1.0) کار نمی‌کند

maxOutputTokens integer

اختیاری. حداکثر تعداد نشانه‌هایی که باید در پاسخ نامزد گنجانده شود.

توجه: مقدار پیش‌فرض بسته به مدل متفاوت است، مشخصه Model.output_token_limit مربوط به Model را که از تابع getModel برگردانده شده است ببینید.

temperature number

اختیاری. تصادفی بودن برونداد را کنترل می‌کند.

توجه: مقدار پیش‌فرض بسته به مدل متفاوت است، مشخصه Model.temperature مربوط به Model را که از تابع getModel برگردانده شده است ببینید.

مقادیر می‌توانند در محدوده [0.0, 2.0] باشند.

این فیلد دیگر پشتیبانی نمی‌شود و در Gemini 3.6 Flash و مدل‌های جدیدتر بدون اطلاع نادیده گرفته می‌شود.

topP number

اختیاری. حداکثر احتمال تجمعی توکن‌ها برای درنظر گرفتن هنگام نمونه‌برداری.

این مدل از نمونه‌گیری ترکیبی Top-k و Top-p (هسته) استفاده می‌کند.

نشانه‌ها براساس احتمالات اختصاص‌یافته به آن‌ها مرتب می‌شوند تا فقط محتمل‌ترین نشانه‌ها درنظر گرفته شوند. نمونه‌برداری Top-k مستقیماً حداکثر تعداد نشانه‌هایی را که باید درنظر گرفته شود محدود می‌کند، درحالی‌که نمونه‌برداری Nucleus تعداد نشانه‌ها را براساس احتمال تجمعی محدود می‌کند.

توجه: مقدار پیش‌فرض براساس Model متفاوت است و با مشخصه Model.top_p که از تابع getModel برگردانده می‌شود مشخص می‌شود. شاخصه topK خالی نشان می‌دهد که مدل از نمونه‌برداری top-k استفاده نمی‌کند و اجازه تنظیم topK را در درخواست‌ها نمی‌دهد.

این فیلد دیگر پشتیبانی نمی‌شود و در Gemini 3.6 Flash و مدل‌های جدیدتر بدون اطلاع نادیده گرفته می‌شود.

topK integer

اختیاری. حداکثر تعداد نشانه‌هایی که باید هنگام نمونه‌برداری درنظر گرفته شود.

مدل‌های Gemini از نمونه‌گیری Top-p (هسته) یا ترکیبی از نمونه‌گیری Top-k و هسته استفاده می‌کنند. نمونه‌برداری Top-k مجموعه topK محتمل‌ترین داده‌واحد را درنظر می‌گیرد. مدل‌هایی که با نمونه‌گیری هسته‌ای اجرا می‌شوند، تنظیم topK را مجاز نمی‌دانند.

توجه: مقدار پیش‌فرض براساس Model متفاوت است و با مشخصه Model.top_p که از تابع getModel برگردانده می‌شود مشخص می‌شود. شاخصه topK خالی نشان می‌دهد که مدل از نمونه‌برداری top-k استفاده نمی‌کند و اجازه تنظیم topK را در درخواست‌ها نمی‌دهد.

این فیلد دیگر پشتیبانی نمی‌شود و در Gemini 3.6 Flash و مدل‌های جدیدتر بدون اطلاع نادیده گرفته می‌شود.

seed integer

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

presencePenalty number

اختیاری. جریمه حضور بر logprobs نشانه بعدی اعمال می‌شود اگر نشانه قبلاً در پاسخ دیده شده باشد.

این جریمه به‌صورت دودویی روشن/خاموش است و به تعداد دفعات استفاده از کد (پس‌از اولین‌بار) بستگی ندارد. از frequencyPenalty برای جریمه‌ای استفاده کنید که با هر بار استفاده افزایش می‌یابد.

جریمه مثبت استفاده از نشانه‌هایی را که قبلاً در پاسخ استفاده شده‌اند کاهش می‌دهد و دایره واژگان را افزایش می‌دهد.

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

frequencyPenalty number

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

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

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

responseLogprobs boolean

اختیاری. اگر درست است، نتایج logprobs را در پاسخ صادر کنید.

logprobs integer

اختیاری. فقط درصورتی معتبر است که responseLogprobs=True. این گزینه تعداد logprobهای برتر، ازجمله نامزد انتخاب‌شده، را برای برگرداندن در هر مرحله رمزگشایی در Candidate.logprobs_result تنظیم می‌کند. عدد باید در محدوده [۰، ۲۰] باشد.

enableEnhancedCivicAnswers boolean

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

speechConfig object (SpeechConfig)

اختیاری. پیکربندی تولید گفتار.

thinkingConfig object (ThinkingConfig)

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

imageConfig object (ImageConfig)

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

mediaResolution enum (MediaResolution)

اختیاری. اگر مشخص شده باشد، از وضوح رسانه مشخص‌شده استفاده خواهد شد.

enableAffectiveDialog boolean

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

responseFormat object (ResponseFormatConfig)

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

translationConfig object (TranslationConfig)

اختیاری. پیکربندی برای ترجمه.

audioTranscriptionConfig object (AudioTranscriptionConfig)

اختیاری. پیکربندی برای آوانویسی صوتی (تشخیص گفتار).

نمایش JSON
{
  "stopSequences": [
    string
  ],
  "responseMimeType": string,
  "responseSchema": {
    object (Schema)
  },
  "_responseJsonSchema": value,
  "responseJsonSchema": value,
  "responseModalities": [
    enum (Modality)
  ],
  "candidateCount": integer,
  "maxOutputTokens": integer,
  "temperature": number,
  "topP": number,
  "topK": integer,
  "seed": integer,
  "presencePenalty": number,
  "frequencyPenalty": number,
  "responseLogprobs": boolean,
  "logprobs": integer,
  "enableEnhancedCivicAnswers": boolean,
  "speechConfig": {
    object (SpeechConfig)
  },
  "thinkingConfig": {
    object (ThinkingConfig)
  },
  "imageConfig": {
    object (ImageConfig)
  },
  "mediaResolution": enum (MediaResolution),
  "enableAffectiveDialog": boolean,
  "responseFormat": {
    object (ResponseFormatConfig)
  },
  "translationConfig": {
    object (TranslationConfig)
  },
  "audioTranscriptionConfig": {
    object (AudioTranscriptionConfig)
  }
}

روش

روش‌های پشتیبانی‌شده پاسخ.

شمارشی‌ها
MODALITY_UNSPECIFIED مقدار پیش‌فرض.
TEXT نشان می‌دهد که مدل باید نوشتار برگرداند.
IMAGE نشان می‌دهد که مدل باید تصاویر را برگرداند.
AUDIO نشان می‌دهد که مدل باید صدا برگرداند.

SpeechConfig

پیکربندی برای تولید گفتار و ترانویسی.

فیلدها
voiceConfig object (VoiceConfig)

پیکربندی درصورت خروجی تک‌صدایی.

multiSpeakerVoiceConfig object (MultiSpeakerVoiceConfig)

اختیاری. پیکربندی برای راه‌اندازی چندبلندگو. این فیلد با فیلد voiceConfig متقابلاً انحصاری است.

languageCode string

اختیاری. کد زبان IETF BCP-47 که کاربر برنامه را برای استفاده از آن پیکربندی کرده است. برای ترکیب و تشخیص گفتار استفاده می‌شود.

مقادیر معتبر عبارتند از: de-DE، en-AU، en-GB، en-IN، en-US، es-US، fr-FR، hi-IN، pt-BR، ar-XA، es-ES، fr-CA، id-ID، it-IT، ja-JP، tr-TR، vi-VN، bn-IN، gu-IN، kn-IN، ml-IN، mr-IN، ta-IN، te-IN، nl-NL، ko-KR، cmn-CN، pl-PL، ru-RU، و th-TH.

نمایش JSON
{
  "voiceConfig": {
    object (VoiceConfig)
  },
  "multiSpeakerVoiceConfig": {
    object (MultiSpeakerVoiceConfig)
  },
  "languageCode": string
}

VoiceConfig

پیکربندی صدایی که باید استفاده شود.

فیلدها
voice_config Union type
پیکربندی بلندگو برای استفاده. در زیر فهرستی از فیلدهای متقابلاً انحصاری آمده است. حداکثر یکی از فیلدها در پاسخ تنظیم خواهد شد:
prebuiltVoiceConfig object (PrebuiltVoiceConfig)

پیکربندی صدای ازپیش‌ساخته‌شده برای استفاده.

voice string

اختیاری. شناسه گوینده برای ترکیب. قالب‌های پشتیبانی‌شده:

  • نام گوینده برای صداهای ازپیش‌ساخته (برای مثال، Orus یا Kore).
  • شناسه صوتی برای صداهای ذخیره‌شده (برای مثال، voice_xxx).
  • کلید همانندسازی صدا (برای مثال، voicekey_xxx).
پایان فیلدهای متقابلاً انحصاری.
نمایش JSON
{

  // voice_config
  "prebuiltVoiceConfig": {
    object (PrebuiltVoiceConfig)
  },
  "voice": string
  // Union type
}

PrebuiltVoiceConfig

پیکربندی بلندگوی ازپیش‌ساخته‌شده برای استفاده.

فیلدها
voiceName string

اختیاری. نام صدای پیش‌تنظیم‌شده برای استفاده.

نمایش JSON
{
  "voiceName": string
}

MultiSpeakerVoiceConfig

پیکربندی برای راه‌اندازی چندبلندگو.

فیلدها
speakerVoiceConfigs[] object (SpeakerVoiceConfig)

الزامی. همه صداهای بلندگوی فعال‌شده.

نمایش JSON
{
  "speakerVoiceConfigs": [
    {
      object (SpeakerVoiceConfig)
    }
  ]
}

SpeakerVoiceConfig

پیکربندی برای یک بلندگو در راه‌اندازی چندبلندگویی.

فیلدها
speaker string

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

voiceConfig object (VoiceConfig)

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

نمایش JSON
{
  "speaker": string,
  "voiceConfig": {
    object (VoiceConfig)
  }
}

ThinkingConfig

پیکربندی برای ویژگی‌های اندیشگر.

فیلدها
includeThoughts boolean

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

thinkingBudget integer

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

thinkingLevel enum (ThinkingLevel)

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

نمایش JSON
{
  "includeThoughts": boolean,
  "thinkingBudget": integer,
  "thinkingLevel": enum (ThinkingLevel)
}

ThinkingLevel

به کاربر اجازه دهید بااستفاده از enum به‌جای بودجه عدد صحیح، میزان فکر کردن را مشخص کند.

شمارشی‌ها
THINKING_LEVEL_UNSPECIFIED مقدار پیش‌فرض.
MINIMAL اندیشیدن کم یا بدون اندیشیدن.
LOW سطح «اندیشگر» پایین.
MEDIUM سطح اندیشیدن متوسط.
HIGH سطح «اندیشگر» بالا.

ImageConfig

پیکربندی برای ویژگی‌های تولید تصویر.

فیلدها
aspectRatio string

اختیاری. نسبت ابعادی تصویر برای تولید. نسبت‌های ابعادی پشتیبانی‌شده: 1:1، 1:4، 4:1، 1:8، 8:1، 2:3، 3:2، 3:4، 4:3، 4:5، 5:4، 9:16، 16:9، یا 21:9.

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

imageSize string

اختیاری. اندازه تصاویر تولیدشده را مشخص می‌کند. مقادیر پشتیبانی‌شده عبارتند از 512، 1K، 2K، 4K. اگر مشخص نشده باشد، مدل از مقدار پیش‌فرض 1K استفاده خواهد کرد.

نمایش JSON
{
  "aspectRatio": string,
  "imageSize": string
}

MediaResolution

وضوح رسانه برای رسانه ورودی.

شمارشی‌ها
MEDIA_RESOLUTION_UNSPECIFIED وضوح رسانه تنظیم نشده است.
MEDIA_RESOLUTION_LOW وضوح رسانه روی کم (۶۴ نشانه) تنظیم شده است.
MEDIA_RESOLUTION_MEDIUM وضوح رسانه روی متوسط (۲۵۶ داده‌واحد) تنظیم شد.
MEDIA_RESOLUTION_HIGH وضوح رسانه روی زیاد تنظیم شده است (قاب‌بندی مجدد بزرگ‌نمایی‌شده با ۲۵۶ نشانه).

ResponseFormatConfig

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

فیلدها
text object (TextResponseFormat)

اختیاری. پیکربندی قالب خروجی نوشتار.

audio object (AudioResponseFormat)

اختیاری. پیکربندی قالب خروجی صوتی.

image object (ImageResponseFormat)

اختیاری. پیکربندی قالب خروجی تصویر.

نمایش JSON
{
  "text": {
    object (TextResponseFormat)
  },
  "audio": {
    object (AudioResponseFormat)
  },
  "image": {
    object (ImageResponseFormat)
  }
}

TextResponseFormat

پیکربندی برای قالب برونداد نوشتاری.

فیلدها
mimeType enum (MimeType)

اختیاری. نوع رسانه خروجی نوشتار.

schema value (Value format)

اختیاری. طرحواره JSON که برونداد باید با آن مطابقت داشته باشد. فقط زمانی قابل‌اعمال است که mimeType از نوع APPLICATION_JSON باشد.

نمایش JSON
{
  "mimeType": enum (MimeType),
  "schema": value
}

MimeType

انواع MIME پشتیبانی‌شده برای برونداد نوشتاری.

شمارشی‌ها
MIME_TYPE_UNSPECIFIED مقدار پیش‌فرض. از این مقدار استفاده نشده است.
APPLICATION_JSON قالب خروجی JSON.
TEXT_PLAIN قالب برونداد نوشتار ساده.

AudioResponseFormat

پیکربندی برای قالب خروجی صوتی.

فیلدها
mimeType enum (MimeType)

اختیاری. نوع MIME خروجی صوتی.

delivery enum (Delivery)

اختیاری. حالت تحویل برای خروجی صوتی.

sampleRate integer

اختیاری. بسامد نمونه به هرتز.

bitRate integer

اختیاری. نرخ بیت بر حسب بیت در ثانیه (bps). فقط برای قالب‌های فشرده (MP3، Opus) قابل‌اعمال است.

نمایش JSON
{
  "mimeType": enum (MimeType),
  "delivery": enum (Delivery),
  "sampleRate": integer,
  "bitRate": integer
}

MimeType

انواع MIME پشتیبانی‌شده برای خروجی صوتی.

شمارشی‌ها
MIME_TYPE_UNSPECIFIED مقدار پیش‌فرض. از این مقدار استفاده نشده است.
AUDIO_MP3 قالب صوتی MP3.
AUDIO_OGG_OPUS قالب صوتی OGG Opus.
AUDIO_L16 قالب صوتی PCM خام (L16).
AUDIO_WAV قالب صوتی WAV.
AUDIO_ALAW قالب صوتی A-law.
AUDIO_MULAW قالب صوتی Mu-law.

ارسال

حالت ارسال برای خروجی صوتی.

شمارشی‌ها
DELIVERY_UNSPECIFIED مقدار پیش‌فرض. از این مقدار استفاده نشده است.
INLINE داده‌های صوتی به‌صورت درون‌خطی در پاسخ برگردانده می‌شود.
URI داده‌های صوتی به‌صورت URI برگردانده می‌شود.

ImageResponseFormat

پیکربندی برای قالب خروجی تصویر.

فیلدها
mimeType enum (MimeType)

اختیاری. نوع MIME برونداد تصویر.

delivery enum (Delivery)

اختیاری. حالت تحویل برای برونداد تصویر.

aspectRatio enum (AspectRatio)

اختیاری. نسبت ابعادی برای برونداد تصویر.

imageSize enum (ImageSize)

اختیاری. اندازه تصویر خروجی.

نمایش JSON
{
  "mimeType": enum (MimeType),
  "delivery": enum (Delivery),
  "aspectRatio": enum (AspectRatio),
  "imageSize": enum (ImageSize)
}

MimeType

انواع MIME پشتیبانی‌شده برای برونداد تصویر.

شمارشی‌ها
MIME_TYPE_UNSPECIFIED مقدار پیش‌فرض. از این مقدار استفاده نشده است.
IMAGE_JPEG قالب تصویر JPEG.

ارسال

حالت تحویل برای برونداد تصویر.

شمارشی‌ها
DELIVERY_UNSPECIFIED مقدار پیش‌فرض. از این مقدار استفاده نشده است.
INLINE داده‌های تصویر به‌صورت درون‌خطی در پاسخ برگردانده می‌شود.
URI داده‌های تصویر به‌صورت URI برگردانده می‌شود.

AspectRatio

نسبت‌های ابعادی پشتیبانی‌شده برای برونداد تصویر.

شمارشی‌ها
ASPECT_RATIO_UNSPECIFIED مقدار پیش‌فرض. از این مقدار استفاده نشده است.
ASPECT_RATIO_ONE_BY_ONE نسبت ابعادی ۱:۱.
ASPECT_RATIO_TWO_BY_THREE نسبت ابعادی ۲:۳.
ASPECT_RATIO_THREE_BY_TWO نسبت ابعادی ۳:۲.
ASPECT_RATIO_THREE_BY_FOUR نسبت ابعادی ۳:۴.
ASPECT_RATIO_FOUR_BY_THREE نسبت ابعادی ۴:۳.
ASPECT_RATIO_FOUR_BY_FIVE نسبت ابعادی ۴:۵.
ASPECT_RATIO_FIVE_BY_FOUR نسبت ابعادی ۵:۴.
ASPECT_RATIO_NINE_BY_SIXTEEN نسبت ابعادی ۹:۱۶ باشد.
ASPECT_RATIO_SIXTEEN_BY_NINE نسبت ابعادی ۱۶:۹.
ASPECT_RATIO_TWENTY_ONE_BY_NINE نسبت ابعادی ۲۱:۹.
ASPECT_RATIO_ONE_BY_EIGHT نسبت ابعادی ۱:۸.
ASPECT_RATIO_EIGHT_BY_ONE نسبت ابعادی ۸:۱.
ASPECT_RATIO_ONE_BY_FOUR نسبت ابعادی ۱:۴.
ASPECT_RATIO_FOUR_BY_ONE نسبت ابعادی ۴:۱.

ImageSize

اندازه‌های تصویر پشتیبانی‌شده برای برونداد تصویر.

شمارشی‌ها
IMAGE_SIZE_UNSPECIFIED مقدار پیش‌فرض. از این مقدار استفاده نشده است.
IMAGE_SIZE_FIVE_TWELVE اندازه تصویر ۵۱۲ پیکسل.
IMAGE_SIZE_ONE_K اندازه تصویر ۱K.
IMAGE_SIZE_TWO_K اندازه تصویر 2K.
IMAGE_SIZE_FOUR_K اندازه تصویر 4K.

TranslationConfig

پیکربندی برای ویژگی‌های ترجمه.

فیلدها
targetLanguageCode string

الزامی. زبان مقصد برای ترجمه. مقادیر پشتیبانی‌شده کدهای زبان BCP-47 هستند (مثلاً «en»،‏ «es»،‏ «fr»).

echoTargetLanguage boolean

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

نمایش JSON
{
  "targetLanguageCode": string,
  "echoTargetLanguage": boolean
}

AudioTranscriptionConfig

پیکربندی آوانویسی صوتی.

فیلدها
languageCodes[] string

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

adaptationPhrases[]
(deprecated)
string

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

customVocabulary[] string

اختیاری. فهرستی از عبارت‌های واژگان سفارشی برای سوگیری مدل تشخیص گفتار به‌سمت تشخیص اصطلاحات خاص (نام محصولات، اسامی خاص، زبان تخصصی).

wordTimestamp boolean

اختیاری. تولید مُهر زمان در سطح کلمه را پیکربندی می‌کند.

diarization boolean

اختیاری. بخش‌بندی صدای گوینده را پیکربندی می‌کند.

mode enum (Mode)

اختیاری. حالت ترانویسی را پیکربندی می‌کند. مقادیر پشتیبانی‌شده: VERBATIM، SMART. اگر مشخص نشده باشد، به‌طور پیش‌فرض ترانویسی VERBATIM خواهد بود. در حالت SMART، مدل ناروانی‌زدایی (حذف کلمات پرکننده، تکرارها، و شروع‌های اشتباه)، اصلاحات جزئی دستور زبان، قالب‌بندی خودکار (پاراگراف‌ها، نقطه‌گذاری‌ها، فهرست‌های شماره‌دار)، و ویرایش‌های جزئی کاربر (خوداصلاحی‌های درون‌خطی) را انجام می‌دهد. مُهرهای زمان و گوینده‌شناسی با حالت SMART سازگار نیستند.

language_config Union type
منسوخ‌شده: درعوض از language_codes سطح بالا استفاده کنید. در زیر فهرستی از فیلدهای متقابلاً انحصاری آمده است. حداکثر یکی از فیلدها در پاسخ تنظیم خواهد شد:
languageAuto
(deprecated)
object (LanguageAuto)

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

languageHints
(deprecated)
object (LanguageHints)

اختیاری. یک یا چند زبان را در صدا مشخص می‌کند.

پایان فیلدهای متقابلاً انحصاری.
نمایش JSON
{
  "languageCodes": [
    string
  ],
  "adaptationPhrases": [
    string
  ],
  "customVocabulary": [
    string
  ],
  "wordTimestamp": boolean,
  "diarization": boolean,
  "mode": enum (Mode),

  // language_config
  "languageAuto": {
    object (LanguageAuto)
  },
  "languageHints": {
    object (LanguageHints)
  }
  // Union type
}

LanguageAuto

این نوع فیلدی ندارد.

نشان می‌دهد که زبان صدا باید به‌طور خودکار شناسایی شود.

LanguageHints

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

فیلدها
languageCodes[]
(deprecated)
string

الزامی. کدهای زبان BCP-47.

نمایش JSON
{
  "languageCodes": [
    string
  ]
}

حالت

حالت ترانویسی.

شمارشی‌ها
MODE_UNSPECIFIED حالت ترانویسی نامشخص.
VERBATIM حالت ترانویسی کلمه‌به‌کلمه.
SMART حالت ترانویسی هوشمند.

RealtimeInputConfig

رفتار ورودی هم‌زمان را در BidiGenerateContent پیکربندی می‌کند.

فیلدها
automaticActivityDetection object (AutomaticActivityDetection)

اختیاری. اگر تنظیم نشده باشد، تشخیص خودکار فعالیت به‌طور پیش‌فرض فعال است. اگر تشخیص خودکار صدا غیرفعال باشد، کارخواه باید سیگنال‌های فعالیت را ارسال کند.

activityHandling enum (ActivityHandling)

اختیاری. تأثیر فعالیت را تعریف می‌کند.

turnCoverage enum (TurnCoverage)

اختیاری. تعیین می‌کند کدام ورودی در نوبت کاربر گنجانده شود.

interimTranscriptTimestampEnabled boolean

اختیاری. مُهرهای زمان ترانویسی موقت را پیکربندی می‌کند.

نمایش JSON
{
  "automaticActivityDetection": {
    object (AutomaticActivityDetection)
  },
  "activityHandling": enum (ActivityHandling),
  "turnCoverage": enum (TurnCoverage),
  "interimTranscriptTimestampEnabled": boolean
}

AutomaticActivityDetection

تشخیص خودکار فعالیت را پیکربندی می‌کند.

فیلدها
disabled boolean

اختیاری. اگر فعال باشد (پیش‌فرض)، ورودی نوشتاری و گفتاری شناسایی‌شده به‌عنوان فعالیت محسوب می‌شود. اگر غیرفعال باشد، کلاینت باید سیگنال‌های فعالیت را ارسال کند.

startOfSpeechSensitivity enum (StartSensitivity)

اختیاری. تعیین می‌کند احتمال شناسایی گفتار چقدر است.

prefixPaddingMs integer

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

endOfSpeechSensitivity enum (EndSensitivity)

اختیاری. تعیین می‌کند که احتمال پایان یافتن گفتار شناسایی‌شده چقدر است.

silenceDurationMs integer

اختیاری. مدت زمان لازم برای تشخیص غیرگفتار (مثلاً سکوت) قبل‌از اینکه پایان گفتار انجام شود. هرچه این مقدار بزرگ‌تر باشد، وقفه‌های گفتاری می‌توانند طولانی‌تر باشند بدون اینکه فعالیت کاربر قطع شود، اما این کار تأخیر مدل را افزایش می‌دهد.

نمایش JSON
{
  "disabled": boolean,
  "startOfSpeechSensitivity": enum (StartSensitivity),
  "prefixPaddingMs": integer,
  "endOfSpeechSensitivity": enum (EndSensitivity),
  "silenceDurationMs": integer
}

StartSensitivity

نحوه تشخیص شروع گفتار را تعیین می‌کند.

شمارشی‌ها
START_SENSITIVITY_UNSPECIFIED پیش‌فرض START_SENSITIVITY_HIGH است.
START_SENSITIVITY_HIGH تشخیص خودکار شروع گفتار را بیشتر تشخیص خواهد داد.
START_SENSITIVITY_LOW تشخیص خودکار شروع گفتار را کمتر تشخیص خواهد داد.

EndSensitivity

نحوه تشخیص پایان گفتار را تعیین می‌کند.

شمارشی‌ها
END_SENSITIVITY_UNSPECIFIED پیش‌فرض END_SENSITIVITY_HIGH است.
END_SENSITIVITY_HIGH تشخیص خودکار گفتار را بیشتر ازقبل پایان می‌دهد.
END_SENSITIVITY_LOW تشخیص خودکار کمتر گفتار را پایان می‌دهد.

ActivityHandling

روش‌های مختلف مدیریت فعالیت کاربر.

شمارشی‌ها
ACTIVITY_HANDLING_UNSPECIFIED اگر مشخص نشده باشد، رفتار پیش‌فرض START_OF_ACTIVITY_INTERRUPTS است.
START_OF_ACTIVITY_INTERRUPTS اگر درست باشد، شروع فعالیت پاسخ مدل را قطع می‌کند (به آن «قطع کردن» هم می‌گویند). پاسخ فعلی مدل در لحظه قطع شدن مکالمه قطع خواهد شد. این رفتار پیش‌فرض است.
NO_INTERRUPTION پاسخ مدل قطع نخواهد شد.

TurnCoverage

گزینه‌های مربوط به اینکه کدام ورودی در نوبت کاربر گنجانده شود.

شمارشی‌ها
TURN_COVERAGE_UNSPECIFIED اگر مشخص نشده باشد، رفتار پیش‌فرض براساس مدل انتخاب می‌شود. برای مثال، برای Gemini 2.5، پیش‌فرض TURN_INCLUDES_ONLY_ACTIVITY است، درحالی‌که برای Gemini 3.1 و نسخه‌های بعدی، TURN_INCLUDES_AUDIO_ACTIVITY_AND_ALL_VIDEO است.
TURN_INCLUDES_ONLY_ACTIVITY شامل فعالیت از آخرین نوبت، به‌استثنای عدم فعالیت (مثلاً سکوت در جاری‌سازی صوتی).
TURN_INCLUDES_ALL_INPUT شامل همه ورودی‌های هم‌زمان از آخرین نوبت، ازجمله عدم فعالیت (مثلاً سکوت در جاری‌سازی صوتی).
TURN_INCLUDES_AUDIO_ACTIVITY_AND_ALL_VIDEO شامل فعالیت صوتی و همه ویدیوها از آخرین نوبت است. با تشخیص خودکار فعالیت، فعالیت صوتی به‌معنای گفتار است و سکوت را شامل نمی‌شود.

SessionResumptionConfig

پیکربندی ازسرگیری جلسه.

این پیام در پیکربندی جلسه به‌عنوان BidiGenerateContentSetup.session_resumption گنجانده شده است. اگر پیکربندی شود، سرور SessionResumptionUpdate پیام ارسال خواهد کرد.

فیلدها
handle string

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

دسته‌های جلسه از مقادیر SessionResumptionUpdate.token در اتصال‌های قبلی می‌آیند.

نمایش JSON
{
  "handle": string
}

ContextWindowCompressionConfig

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

فیلدها
compression_mechanism Union type
سازوکار فشرده‌سازی پنجره بافت استفاده‌شده. در زیر فهرستی از فیلدهای متقابلاً انحصاری آمده است. حداکثر یکی از فیلدها در پاسخ تنظیم خواهد شد:
slidingWindow object (SlidingWindow)

سازوکار پنجره لغزان.

پایان فیلدهای متقابلاً انحصاری.
triggerTokens string (int64 format)

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

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

اگر تنظیم نشده باشد، مقدار پیش‌فرض ۸۰٪ از حد پنجره زمینه مدل است. این امر ۲۰٪ را برای درخواست کاربر/پاسخ مدل بعدی باقی می‌گذارد.

نمایش JSON
{

  // compression_mechanism
  "slidingWindow": {
    object (SlidingWindow)
  }
  // Union type
  "triggerTokens": string
}

SlidingWindow

روش SlidingWindow با دور انداختن محتوا در ابتدای پنجره بافت عمل می‌کند. بافت حاصل همیشه در شروع نوبت نقش «کاربر» آغاز خواهد شد. دستورالعمل‌های سیستم و هرگونه BidiGenerateContentSetup.prefix_turns همیشه در ابتدای نتیجه باقی می‌مانند.

فیلدها
targetTokens string (int64 format)

تعداد هدف از نشان‌ها برای نگهداری. مقدار پیش‌فرض triggerTokens/2 است.

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

نمایش JSON
{
  "targetTokens": string
}

HistoryConfig

پیکربندی سابقه.

این پیام در پیکربندی جلسه به‌عنوان BidiGenerateContentSetup.history_config گنجانده شده است. تبادل پیام‌های سابقه را پیکربندی می‌کند.

فیلدها
initialHistoryInClientContent boolean

اختیاری. اگر درست باشد، پس‌از ارسال setupComplete، سرور منتظر می‌ماند و ابتدا پیام‌های clientContent را پردازش می‌کند تا زمانی که turnComplete true شود. این سابقه اولیه باعث فراخوانی مدل نمی‌شود و ممکن است با نقش MODEL پایان یابد. پس‌از true شدن turnComplete، مشتری می‌تواند مکالمه هم‌زمان را ازطریق realtimeInput شروع کند.

نمایش JSON
{
  "initialHistoryInClientContent": boolean
}

روش: auth_tokens.create

نشانه‌ای ایجاد می‌کند که می‌تواند برای محدود کردن رفتار جلسه BidiGenerateContent استفاده شود.

نقطه پایانی

پست https://generativelanguage.googleapis.com/v1beta/auth_tokens

متن درخواست

بدنه درخواست حاوی نمونه‌ای از AuthToken است.

فیلدها
expireTime string (Timestamp format)

اختیاری. فقط ورودی. تغییرناپذیر. زمان اختیاری که پس‌از آن، هنگام استفاده از توکن حاصل، پیام‌ها در جلسه‌های BidiGenerateContent رد خواهند شد. (Gemini ممکن است پس‌از این مدت جلسه را پیش‌دستانه ببندد.)

اگر تنظیم نشده باشد، به‌طور پیش‌فرض روی ۳۰ دقیقه آینده تنظیم می‌شود. اگر تنظیم شود، این مقدار باید کمتر از ۲۰ ساعت در آینده باشد.

از RFC 3339 استفاده می‌کند، که در آن خروجی تولیدشده همیشه Z-نرمال‌شده است و از ۰، ۳، ۶، یا ۹ رقم اعشاری استفاده می‌کند. انحراف‌های غیراز «Z» نیز پذیرفته می‌شود. مثال‌ها: "2014-10-02T15:01:23Z"، "2014-10-02T15:01:23.045123456Z"، یا "2014-10-02T15:01:23+05:30".

newSessionExpireTime string (Timestamp format)

اختیاری. فقط ورودی. تغییرناپذیر. زمانی که پس‌از آن، جلسه‌های جدید Live API که از این توکن حاصل از این درخواست استفاده می‌کنند رد خواهند شد.

اگر تنظیم نشود، در آینده به‌طور پیش‌فرض روی ۶۰ ثانیه تنظیم می‌شود. اگر تنظیم شود، این مقدار باید کمتر از ۲۰ ساعت در آینده باشد.

از RFC 3339 استفاده می‌کند، که در آن خروجی تولیدشده همیشه Z-نرمال‌شده است و از ۰، ۳، ۶، یا ۹ رقم اعشاری استفاده می‌کند. انحراف‌های غیراز «Z» نیز پذیرفته می‌شود. مثال‌ها: "2014-10-02T15:01:23Z"، "2014-10-02T15:01:23.045123456Z"، یا "2014-10-02T15:01:23+05:30".

fieldMask string (FieldMask format)

اختیاری. فقط ورودی. تغییرناپذیر. اگر fieldMask خالی باشد و bidiGenerateContentSetup وجود نداشته باشد، پیام BidiGenerateContentSetup مؤثر از اتصال Live API گرفته می‌شود.

اگر fieldMask خالی باشد و bidiGenerateContentSetup وجود داشته باشد، پیام BidiGenerateContentSetup مؤثر به‌طور کامل از bidiGenerateContentSetup در این درخواست گرفته می‌شود. پیام راه‌اندازی از اتصال Live API نادیده گرفته می‌شود.

اگر fieldMask خالی نباشد، فیلدهای مربوطه از bidiGenerateContentSetup فیلدهای پیام راه‌اندازی را در اتصال Live API بازنویسی خواهند کرد.

این فهرست جداشده با کاما از نام‌های کاملاً واجدشرایط فیلدها است. مثال: "user.displayName,photo".

config Union type
پیکربندی ویژه روش برای کد حاصل. در زیر فهرستی از فیلدهای متقابلاً انحصاری آمده است. حداکثر یکی از فیلدها در پاسخ تنظیم خواهد شد:
bidiGenerateContentSetup object (BidiGenerateContentSetup)

اختیاری. فقط ورودی. تغییرناپذیر. پیکربندی مختص BidiGenerateContent.

پایان فیلدهای متقابلاً انحصاری.
uses integer

اختیاری. فقط ورودی. تغییرناپذیر. تعداد دفعاتی که می‌توان از این توکن استفاده کرد. اگر این مقدار صفر باشد، هیچ محدودیتی اعمال نمی‌شود. ازسر گرفتن جلسه Live API به‌عنوان استفاده محسوب نمی‌شود. اگر مشخص نشده باشد، پیش‌فرض ۱ است.

بدنه پاسخ

اگر موفقیت‌آمیز باشد، بدنه پاسخ حاوی نمونه جدیدی از AuthToken است.