Generating content

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

الطريقة: models.generateContent

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

نقطة نهاية

post 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. Tools المتوافقة هي Function وcodeExecution. لمزيد من المعلومات، يُرجى الرجوع إلى دليلَي استدعاء الدالة وتطبيق الرموز البرمجية.

toolConfig object (ToolConfig)

اختياريّ. إعدادات الأداة لأي Tool محدّدة في الطلب راجِع دليل استخدام ميزة "طلب تنفيذ وظيفة" للاطّلاع على مثال على الاستخدام.

safetySettings[] object (SafetySetting)

اختياريّ. قائمة بحالات SafetySetting الفريدة لحظر المحتوى غير الآمن

سيتم فرض ذلك على GenerateContentRequest.contents وGenerateContentResponse.candidates. يجب ألا يكون هناك أكثر من إعداد واحد لكل نوع SafetyCategory. ستحظر واجهة برمجة التطبيقات أي محتوى وردود لا تستوفي الحدود التي تحدّدها هذه الإعدادات. تلغي هذه القائمة الإعدادات التلقائية لكل SafetyCategory محدّد في safetySettings. إذا لم يكن هناك SafetySetting لفئة SafetyCategory معيّنة مقدَّمة في القائمة، ستستخدِم واجهة برمجة التطبيقات إعداد الأمان التلقائي لهذه الفئة. تتوفّر فئات الضرر التالية: HARM_CATEGORY_HATE_SPEECH وHARM_CATEGORY_SEXUALLY_EXPLICIT وHARM_CATEGORY_DANGEROUS_CONTENT وHARM_CATEGORY_HARASSMENT وHARM_CATEGORY_CIVIC_INTEGRITY وHARM_CATEGORY_JAILBREAK. راجِع الدليل للحصول على معلومات مفصّلة حول إعدادات الأمان المتاحة. يمكنك أيضًا الرجوع إلى إرشادات الأمان للتعرّف على كيفية تضمين اعتبارات الأمان في تطبيقات الذكاء الاصطناعي.

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.6-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.6-flash",
  contents: "Write a story about a magic backpack.",
});
console.log(response.text);

Go

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.6-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.6-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.6-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.6-flash",
  contents: [
    createUserContent([
      "Tell me about this instrument", 
      createPartFromUri(organ.uri, organ.mimeType)
    ]),
  ],
});
console.log(response.text);

Go

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.6-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.6-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.6-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.6-flash",
  contents: [
    createUserContent([
      "Give me a summary of this audio file.",
      createPartFromUri(audio.uri, audio.mimeType),
    ]),
  ],
});
console.log(response.text);

Go

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.6-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.6-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.6-flash",
  contents: [
    createUserContent([
      "Describe this video clip",
      createPartFromUri(video.uri, video.mimeType),
    ]),
  ],
});
console.log(response.text);

Go

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.6-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.6-flash",
    contents=["Give me a summary of this document:", sample_pdf],
)
print(f"{response.text=}")

Go

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

Go

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

Go

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

Go

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.6-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.6-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.6-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)

Go

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.6-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.6-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.6-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)

Go

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.6-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.6-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.6-flash" });
  const chatResponse = await chat.sendMessage({
    message: "The final result is " + resultValue,
  });
  console.log(chatResponse.text);
  return chatResponse;
}

محارة


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.6-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.6-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.6-flash",
  contents: "Tell me a story about a magic backpack.",
  config: {
    candidateCount: 1,
    stopSequences: ["x"],
    maxOutputTokens: 20,
    temperature: 1.0,
  },
});

console.log(response.text);

Go

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.6-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.6-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.6-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.6-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);
  return response;
}

Go

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.6-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.6-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.6-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.6-flash",
  contents: "Good morning! How are you?",
  config: {
    systemInstruction: "You are a cat. Your name is Neko.",
  },
});
console.log(response.text);

Go

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.6-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.6-flash",
                "Good morning! How are you?",
                config);

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

نص الاستجابة

إذا كانت الاستجابة ناجحة، يحتوي نص الاستجابة على مثال GenerateContentResponse.

الطريقة: models.streamGenerateContent

ينشئ ردًا متسلسلاً من النموذج بناءً على الإدخال GenerateContentRequest.

نقطة نهاية

post 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. Tools المتوافقة هي Function وcodeExecution. لمزيد من المعلومات، يُرجى الرجوع إلى دليلَي استدعاء الدالة وتطبيق الرموز البرمجية.

toolConfig object (ToolConfig)

اختياريّ. إعدادات الأداة لأي Tool محدّدة في الطلب راجِع دليل استخدام ميزة "طلب تنفيذ وظيفة" للاطّلاع على مثال على الاستخدام.

safetySettings[] object (SafetySetting)

اختياريّ. قائمة بحالات SafetySetting الفريدة لحظر المحتوى غير الآمن

سيتم فرض ذلك على GenerateContentRequest.contents وGenerateContentResponse.candidates. يجب ألا يكون هناك أكثر من إعداد واحد لكل نوع SafetyCategory. ستحظر واجهة برمجة التطبيقات أي محتوى وردود لا تستوفي الحدود التي تحدّدها هذه الإعدادات. تلغي هذه القائمة الإعدادات التلقائية لكل SafetyCategory محدّد في safetySettings. إذا لم يكن هناك SafetySetting لـ SafetyCategory معيّن مُقدَّم في القائمة، ستستخدم واجهة برمجة التطبيقات إعداد الأمان التلقائي لهذه الفئة. تتوفّر فئات الضرر التالية: HARM_CATEGORY_HATE_SPEECH وHARM_CATEGORY_SEXUALLY_EXPLICIT وHARM_CATEGORY_DANGEROUS_CONTENT وHARM_CATEGORY_HARASSMENT وHARM_CATEGORY_CIVIC_INTEGRITY وHARM_CATEGORY_JAILBREAK. راجِع الدليل للحصول على معلومات مفصّلة حول إعدادات الأمان المتاحة. يمكنك أيضًا الرجوع إلى إرشادات الأمان للتعرّف على كيفية تضمين اعتبارات الأمان في تطبيقات الذكاء الاصطناعي.

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.6-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.6-flash",
  contents: "Write a story about a magic backpack.",
});
let text = "";
for await (const chunk of response) {
  console.log(chunk.text);
  text += chunk.text;
}

Go

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.6-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.6-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.6-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.6-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;
}

Go

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.6-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.6-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.6-flash",
    contents=["Give me a summary of this audio file.", sample_audio],
)
for chunk in response:
    print(chunk.text)
    print("_" * 80)

Go

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.6-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.6-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.6-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;
}

Go

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.6-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.6-flash",
    contents=["Give me a summary of this document:", sample_pdf],
)

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

Go

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

Go

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.6-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. تعمل واجهة برمجة التطبيقات على: - عرض جميع المرشحين المطلوبين أو عدم عرض أي منهم - عدم عرض أي مرشحين على الإطلاق فقط إذا كان هناك خطأ في الطلب (راجِع 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 في النهاية ويستخدم الأرقام الجزئية 0 أو 3 أو 6 أو 9. تُقبل أيضًا المعادلات الأخرى التي لا تستخدم حرف 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)

النتائج فقط. بيانات وصفية مرتبطة بأداة استرجاع سياق عنوان URL

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)
  },
  "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 تمت فلترة الطلب حسب قاعدة تصعيد.

GroundingAttribution

معلومات تحديد المصدر الذي ساهم في تقديم إجابة

الحقول
sourceId object (AttributionSourceId)

النتائج فقط. معرّف المصدر الذي يساهم في تحديد مصدر الإحالة هذا.

content object (Content)

المحتوى المصدر الأساسي الذي يتضمّنه هذا البيان

تمثيل JSON
{
  "sourceId": {
    object (AttributionSourceId)
  },
  "content": {
    object (Content)
  }
}

AttributionSourceId

معرّف المصدر الذي يساهم في تحديد مصدر الإحالة هذا.

الحقول
source Union type
يمكن أن يكون التعليق source إحدى القيم التالية فقط:
groundingPassage object (GroundingPassageId)

تمثّل هذه السمة معرّفًا لمقطع مضمّن.

semanticRetrieverChunk object (SemanticRetrieverChunk)

معرّف Chunk تم استرجاعه من خلال Semantic Retriever

تمثيل 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 تم استرداده من خلال Semantic Retriever المحدّد في 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)

اختياريّ. نقطة دخول &quot;بحث Google&quot; لعمليات البحث اللاحقة على الويب

retrievalMetadata object (RetrievalMetadata)

البيانات الوصفية المرتبطة باسترجاع المعلومات في مسار تحديد المصدر

googleMapsWidgetContextToken string

اختياريّ. اسم المورد لرمز مميّز سياقي لأداة خرائط Google الذي يمكن استخدامه مع أداة PlacesContextElement لعرض البيانات السياقية. لا تتم تعبئة هذا الحقل إلا في حال تفعيل ميزة "استخدام خرائط Google كمصدر".

تمثيل JSON
{
  "groundingChunks": [
    {
      object (GroundingChunk)
    }
  ],
  "groundingSupports": [
    {
      object (GroundingSupport)
    }
  ],
  "webSearchQueries": [
    string
  ],
  "imageSearchQueries": [
    string
  ],
  "searchEntryPoint": {
    object (SearchEntryPoint)
  },
  "retrievalMetadata": {
    object (RetrievalMetadata)
  },
  "googleMapsWidgetContextToken": string
}

SearchEntryPoint

نقطة الدخول إلى "بحث Google"

الحقول
renderedContent string

اختياريّ. مقتطف من محتوى الويب يمكن تضمينه في صفحة ويب أو WebView في تطبيق

sdkBlob string (bytes format)

اختياريّ. تمثّل هذه السمة JSON مرمّزًا بتنسيق Base64 يتضمّن مصفوفة من مجموعة <عبارة البحث، عنوان URL الخاص بالبحث>.

سلسلة مرمّزة باستخدام Base64

تمثيل JSON
{
  "renderedContent": string,
  "sdkBlob": string
}

GroundingChunk

يمثّل GroundingChunk جزءًا من الأدلة الداعمة التي تستند إليها استجابة النموذج. يمكن أن تكون هذه المعلومات مقتطفًا من الويب أو سياقًا تم استرجاعه من ملف أو معلومات من "خرائط Google".

الحقول
chunk_type Union type
نوع الجزء يمكن أن يكون التعليق chunk_type إحدى القيم التالية فقط:
web object (Web)

مقتطف تحديد المصدر من الويب

image object (Image)

اختياريّ. مقتطف تحديد المصدر من "بحث الصور"

retrievedContext object (RetrievedContext)

اختياريّ. جزء مستند إلى السياق تم استرداده من خلال أداة البحث عن الملفات

maps object (Maps)

اختياريّ. مقتطف مستند إلى "خرائط Google"

تمثيل 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

معرّف الموارد المنتظم (URI) لصفحة الويب الخاصة بتحديد المصدر

imageUri string

عنوان URL لمادة عرض الصورة

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
قيمة البيانات الوصفية يمكن أن تكون سلسلة أو قائمة سلاسل أو رقمًا. يمكن أن يكون التعليق value إحدى القيم التالية فقط:
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
  ]
}

الخرائط

مقتطف من "خرائط Google" يتوافق جزء "خرائط Google" مع مكان واحد.

الحقول
uri string

يشير إلى معرّف الموارد المنتظم (URI) للمكان.

title string

تمثّل هذه السمة عنوان المكان.

text string

الوصف النصي لإجابة المكان

placeId string

معرّف المكان بالتنسيق places/{placeId} يمكن للمستخدم استخدام هذا المعرّف للبحث عن هذا المكان.

placeAnswerSources object (PlaceAnswerSources)

المصادر التي تقدّم إجابات عن ميزات مكان معيّن في "خرائط Google"

تمثيل JSON
{
  "uri": string,
  "title": string,
  "text": string,
  "placeId": string,
  "placeAnswerSources": {
    object (PlaceAnswerSources)
  }
}

PlaceAnswerSources

مجموعة من المصادر التي تقدّم إجابات عن ميزات مكان معيّن في "خرائط Google" تتطابق كل رسالة PlaceAnswerSources مع مكان محدّد في "خرائط Google". استخدمت أداة "خرائط Google" هذه المصادر للإجابة عن أسئلة حول ميزات المكان (مثلاً: "هل يوفّر مقهى Foo خدمة Wi-Fi؟" أو "هل يمكن الوصول إلى مقهى Foo باستخدام كرسي متحرك؟"). في الوقت الحالي، لا نتيح سوى مقتطفات المراجعات كمصادر.

الحقول
reviewSnippets[] object (ReviewSnippet)

مقتطفات من المراجعات تُستخدَم لإنشاء إجابات حول ميزات مكان معيّن في "خرائط Google"

تمثيل JSON
{
  "reviewSnippets": [
    {
      object (ReviewSnippet)
    }
  ]
}

ReviewSnippet

تتضمّن مقتطفًا من مراجعة مستخدم تجيب عن سؤال حول ميزات مكان معيّن في "خرائط Google".

الحقول
reviewId string

رقم تعريف مقتطف من المراجعة.

googleMapsUri string

رابط يتوافق مع مراجعة المستخدم على "خرائط Google".

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

اختياريّ. درجة المطابقة للمراجع الداعمة تتراوح القيم بين 0 و1. الرقم 1 يشير إلى أعلى مستوى من الثقة. يجب أن يكون حجم هذه القائمة مماثلاً لحجم groundingChunkIndices.

renderedParts[] integer

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

segment object (Segment)

شريحة المحتوى التي ينتمي إليها هذا الدعم

تمثيل JSON
{
  "groundingChunkIndices": [
    integer
  ],
  "confidenceScores": [
    number
  ],
  "renderedParts": [
    integer
  ],
  "segment": {
    object (Segment)
  }
}

تقسيم

شريحة من المحتوى

الحقول
partIndex integer

فهرس كائن "الجزء" ضِمن كائن "المحتوى" الرئيسي

startIndex integer

فهرس البداية في الجزء المحدّد، ويتم قياسه بالبايت. الإزاحة من بداية الجزء، شاملة، بدءًا من الصفر

endIndex integer

فهرس النهاية في الجزء المحدّد، ويُقاس بالبايت. الإزاحة من بداية الجزء، باستثناء الجزء نفسه، بدءًا من الصفر

text string

تمثّل هذه السمة النص الذي يتطابق مع المقطع من الردّ.

تمثيل JSON
{
  "partIndex": integer,
  "startIndex": integer,
  "endIndex": integer,
  "text": string
}

RetrievalMetadata

البيانات الوصفية المرتبطة باسترجاع المعلومات في مسار تحديد المصدر

الحقول
googleSearchDynamicRetrievalScore number

اختياريّ. نتيجة تشير إلى مدى احتمال أن تساعد المعلومات من "بحث Google" في الإجابة عن الطلب. تندرج النتيجة ضمن النطاق [0, 1]، حيث يشير 0 إلى الاحتمال الأقل ويشير 1 إلى الاحتمال الأكبر. لا تتم تعبئة هذه النتيجة إلا عند تفعيل ميزة "الاستناد إلى البحث على 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

بيانات وصفية مرتبطة بأداة استرجاع سياق عنوان URL

الحقول
urlMetadata[] object (UrlMetadata)

قائمة بسياق عناوين URL

تمثيل JSON
{
  "urlMetadata": [
    {
      object (UrlMetadata)
    }
  ]
}

UrlMetadata

سياق استرداد عنوان URL واحد

الحقول
retrievedUrl string

عنوان URL الذي استردته الأداة

urlRetrievalStatus enum (UrlRetrievalStatus)

حالة استرداد عنوان URL

تمثيل JSON
{
  "retrievedUrl": string,
  "urlRetrievalStatus": enum (UrlRetrievalStatus)
}

UrlRetrievalStatus

حالة استرداد عنوان URL

عمليات التعداد
URL_RETRIEVAL_STATUS_UNSPECIFIED القيمة التلقائية هذه القيمة غير مستخدَمة.
URL_RETRIEVAL_STATUS_SUCCESS تم استرداد عنوان URL بنجاح.
URL_RETRIEVAL_STATUS_ERROR تعذّر استرداد عنوان URL بسبب حدوث خطأ.
URL_RETRIEVAL_STATUS_PAYWALL تعذّر استرداد عنوان URL لأنّ المحتوى محمي بنظام حظر الاشتراك غير المدفوع.
URL_RETRIEVAL_STATUS_UNSAFE تعذّر استرداد عنوان URL لأنّ المحتوى غير آمن.

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_HATE_SPEECH المحتوى الذي يروّج للعنف أو يحضّ على الكراهية ضدّ أفراد أو مجموعات على أساس سمات معيّنة
HARM_CATEGORY_DANGEROUS_CONTENT المحتوى الذي يروّج لأنشطة خطيرة أو يسهّل تنفيذها أو يمكّن منها
HARM_CATEGORY_HARASSMENT المحتوى المسيء أو الذي يتضمّن تهديدات أو يهدف إلى التنمّر أو التعذيب أو السخرية
HARM_CATEGORY_SEXUALLY_EXPLICIT المحتوى الذي يشتمل على مواد جنسية فاضحة
HARM_CATEGORY_CIVIC_INTEGRITY

تم إيقاف فلتر "الانتخابات" نهائيًا. فئة الضرر هي النزاهة المدنية.

HARM_CATEGORY_IMAGE_HATE الصور التي تتضمّن كلامًا يحض على الكراهية
HARM_CATEGORY_IMAGE_DANGEROUS_CONTENT الصور التي تتضمّن محتوًى خطيرًا
HARM_CATEGORY_IMAGE_HARASSMENT الصور التي تتضمّن مضايقة
HARM_CATEGORY_IMAGE_SEXUALLY_EXPLICIT الصور التي تتضمّن محتوًى جنسيًا فاضحًا
HARM_CATEGORY_JAILBREAK طلبات مصمّمة لتجاوز فلاتر الأمان

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 سيتم السماح بالمحتوى الذي يتضمّن مستوى "ضئيل".
BLOCK_MEDIUM_AND_ABOVE سيُسمح بالمحتوى الذي يتضمّن مستوى تأثير NEGLIGIBLE وLOW.
BLOCK_ONLY_HIGH سيُسمح بالمحتوى الذي يتضمّن مستويات "ضئيل" و"منخفض" و"متوسط".
BLOCK_NONE سيتم السماح بكل المحتوى.
OFF أوقِف فلتر الأمان.

ServiceTier

فئة الخدمة للتفاعل

عمليات التعداد
SERVICE_TIER_UNSPECIFIED فئة الخدمة التلقائية، وهي الفئة العادية
SERVICE_TIER_FLEX فئة خدمة Flex
SERVICE_TIER_STANDARD فئة الخدمة العادية
SERVICE_TIER_PRIORITY فئة الخدمة ذات الأولوية

AllowedTools

إعدادات الأدوات المسموح بها

الحقول
mode enum (ToolChoiceType)

وضع اختيار الأداة

tools[] string

تمثّل هذه السمة أسماء الأدوات المسموح بها.

تمثيل JSON
{
  "mode": enum (ToolChoiceType),
  "tools": [
    string
  ]
}

تعليق توضيحي

تمثّل هذه السمة معلومات الاقتباس للمحتوى من إنشاء النموذج.

الحقول
startIndex integer

بداية جزء الردّ الذي يعود مصدره إلى هذا المستند

يشير الفهرس إلى بداية المقطع، ويتم قياسه بالبايت.

endIndex integer

تمثّل نهاية المقطع المنسوب، وهي غير مشمولة.

type Union type
نوع التعليق التوضيحي يمكن أن يكون التعليق type إحدى القيم التالية فقط:
urlCitation object (UrlCitation)

تعليق توضيحي لاقتباس من عنوان URL

fileCitation object (FileCitation)

تعليق توضيحي لاقتباس من ملف

placeCitation object (PlaceCitation)

تعليق توضيحي بشأن اقتباس من مكان

تمثيل JSON
{
  "startIndex": integer,
  "endIndex": integer,

  // type
  "urlCitation": {
    object (UrlCitation)
  },
  "fileCitation": {
    object (FileCitation)
  },
  "placeCitation": {
    object (PlaceCitation)
  }
  // Union type
}

UrlCitation

تعليق توضيحي لاقتباس من عنوان URL

الحقول
url string

تمثّل هذه السمة عنوان URL.

title string

تمثّل هذه السمة عنوان URL.

تمثيل JSON
{
  "url": string,
  "title": string
}

FileCitation

تعليق توضيحي لاقتباس من ملف

الحقول
documentUri string

معرّف الموارد المنتظم (URI) للملف

fileName string

اسم الملف

source string

المصدر الذي تم الاستناد إليه في جزء من النص

customMetadata object (Struct)

بيانات التعريف التي يقدّمها المستخدم حول السياق الذي تم استرجاعه

pageNumber integer

تمثّل هذه السمة رقم صفحة المستند المُشار إليه، إذا كان ذلك منطبقًا.

mediaId string

تمثّل هذه السمة معرّف الوسائط في حال الاقتباس من الصور، إذا كان ذلك منطبقًا.

تمثيل JSON
{
  "documentUri": string,
  "fileName": string,
  "source": string,
  "customMetadata": {
    object (Struct)
  },
  "pageNumber": integer,
  "mediaId": string
}

PlaceCitation

تعليق توضيحي بشأن اقتباس من مكان

الحقول
placeId string

معرّف المكان بالتنسيق places/{placeId}

name string

تمثّل هذه السمة عنوان المكان.

url string

يشير إلى معرّف الموارد المنتظم (URI) للمكان.

reviewSnippets[] object (ReviewSnippet)

مقتطفات من المراجعات تُستخدَم لإنشاء إجابات حول ميزات مكان معيّن في "خرائط Google"

تمثيل JSON
{
  "placeId": string,
  "name": string,
  "url": string,
  "reviewSnippets": [
    {
      object (ReviewSnippet)
    }
  ]
}

AspectRatio

نِسب العرض إلى الارتفاع المتاحة لإخراج الصور

عمليات التعداد
ASPECT_RATIO_UNSPECIFIED القيمة التلقائية هذه القيمة غير مستخدَمة.
ASPECT_RATIO_ONE_BY_ONE نسبة العرض إلى الارتفاع 1:1
ASPECT_RATIO_TWO_BY_THREE نسبة العرض إلى الارتفاع 2:3
ASPECT_RATIO_THREE_BY_TWO نسبة العرض إلى الارتفاع 3:2
ASPECT_RATIO_THREE_BY_FOUR نسبة العرض إلى الارتفاع 3:4
ASPECT_RATIO_FOUR_BY_THREE نسبة العرض إلى الارتفاع 4:3
ASPECT_RATIO_FOUR_BY_FIVE نسبة العرض إلى الارتفاع 4:5
ASPECT_RATIO_FIVE_BY_FOUR نسبة العرض إلى الارتفاع 5:4
ASPECT_RATIO_NINE_BY_SIXTEEN نسبة العرض إلى الارتفاع 9:16
ASPECT_RATIO_SIXTEEN_BY_NINE نسبة العرض إلى الارتفاع: 16:9
ASPECT_RATIO_TWENTY_ONE_BY_NINE نسبة العرض إلى الارتفاع: 21:9
ASPECT_RATIO_ONE_BY_EIGHT نسبة العرض إلى الارتفاع 1:8
ASPECT_RATIO_EIGHT_BY_ONE نسبة العرض إلى الارتفاع 8:1
ASPECT_RATIO_ONE_BY_FOUR نسبة العرض إلى الارتفاع 1:4
ASPECT_RATIO_FOUR_BY_ONE نسبة العرض إلى الارتفاع 4:1

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
}

CodeExecution

لا يتضمّن هذا النوع أي حقول.

أداة يمكن أن يستخدمها النموذج لتنفيذ الرمز البرمجي

CodeExecutionCallStep

خطوة طلب تنفيذ الرمز البرمجي

الحقول
arguments object (CodeExecutionCallStepArguments)

الحقل مطلوب. الوسيطات التي سيتم تمريرها إلى تنفيذ الرمز البرمجي

تمثيل JSON
{
  "arguments": {
    object (CodeExecutionCallStepArguments)
  }
}

CodeExecutionCallStepArguments

الوسيطات التي سيتم تمريرها إلى تنفيذ الرمز البرمجي

الحقول
language enum (Language)

لغة البرمجة الخاصة بـ code

code string

الرمز المطلوب تنفيذه

تمثيل JSON
{
  "language": enum (Language),
  "code": string
}

CodeExecutionResultStep

خطوة نتيجة تنفيذ الرمز البرمجي

الحقول
result string

الحقل مطلوب. ناتج تنفيذ الرمز البرمجي

isError boolean

تُستخدَم لتحديد ما إذا كان تنفيذ الرمز البرمجي قد أدّى إلى حدوث خطأ.

تمثيل JSON
{
  "result": string,
  "isError": boolean
}

ComputerUse

أداة يمكن أن يستخدمها النموذج للتفاعل مع الكمبيوتر

الحقول
environment enum (Environment)

البيئة التي يتم تشغيلها

excludedPredefinedFunctions[] string

قائمة الدوال المحدّدة مسبقًا والتي تم استبعادها من طلب النموذج

enablePromptInjectionDetection boolean

تحديد ما إذا كان سيتم تفعيل عملية التحقّق من رصد هجمات حقن الطلبات على طلب استخدام الكمبيوتر

disabledSafetyPolicies[] enum (SafetyPolicy)

اختياريّ. تم إيقاف سياسات الأمان المتعلقة باستخدام الكمبيوتر.

تمثيل JSON
{
  "environment": enum (Environment),
  "excludedPredefinedFunctions": [
    string
  ],
  "enablePromptInjectionDetection": boolean,
  "disabledSafetyPolicies": [
    enum (SafetyPolicy)
  ]
}

المحتوى

تمثّل هذه السمة محتوى الردّ.

الحقول
type Union type
يمكن أن يكون التعليق type إحدى القيم التالية فقط:
text object (TextContent)
image object (ImageContent)
audio object (AudioContent)
document object (DocumentContent)
video object (VideoContent)
thought
(deprecated)
object (ThoughtContent)
toolCall
(deprecated)
object (ToolCallContent)
toolResult
(deprecated)
object (ToolResultContent)
تمثيل JSON
{

  // type
  "text": {
    object (TextContent)
  },
  "image": {
    object (ImageContent)
  },
  "audio": {
    object (AudioContent)
  },
  "document": {
    object (DocumentContent)
  },
  "video": {
    object (VideoContent)
  },
  "thought": {
    object (ThoughtContent)
  },
  "toolCall": {
    object (ToolCallContent)
  },
  "toolResult": {
    object (ToolResultContent)
  }
  // Union type
}

TextContent

مقطع محتوى نصي

الحقول
text string

الحقل مطلوب. محتوى النص

annotations[] object (Annotation)

تمثّل هذه السمة معلومات الاقتباس للمحتوى من إنشاء النموذج.

تمثيل JSON
{
  "text": string,
  "annotations": [
    {
      object (Annotation)
    }
  ]
}

ImageContent

كتلة محتوى صورة

الحقول
mimeType enum (MimeType)

نوع MIME الخاص بالصورة.

resolution enum (MediaResolution)

تمثّل هذه السمة درجة دقة الوسائط.

data_or_uri Union type
محتوى الصورة يمكن أن يكون التعليق data_or_uri إحدى القيم التالية فقط:
data string (bytes format)

محتوى الصورة

سلسلة مرمّزة باستخدام Base64

uri string

معرّف الموارد المنتظم (URI) للصورة

تمثيل JSON
{
  "mimeType": enum (MimeType),
  "resolution": enum (MediaResolution),

  // data_or_uri
  "data": string,
  "uri": string
  // Union type
}

AudioContent

كتلة محتوى صوتي

الحقول
mimeType enum (MimeType)

نوع MIME الخاص بالمقطع الصوتي.

channels integer

تمثّل هذه السمة عدد القنوات الصوتية.

sampleRate integer

معدّل عيّنة الصوت

data_or_uri Union type
المحتوى الصوتي يمكن أن يكون التعليق data_or_uri إحدى القيم التالية فقط:
data string (bytes format)

المحتوى الصوتي

سلسلة مرمّزة باستخدام Base64

uri string

تمثّل هذه السمة معرّف الموارد المنتظم (URI) الخاص بالملف الصوتي.

تمثيل JSON
{
  "mimeType": enum (MimeType),
  "channels": integer,
  "sampleRate": integer,

  // data_or_uri
  "data": string,
  "uri": string
  // Union type
}

DocumentContent

وحدة محتوى مستند

الحقول
mimeType enum (MimeType)

نوع MIME للمستند.

data_or_uri Union type
محتوى المستند يمكن أن يكون التعليق data_or_uri إحدى القيم التالية فقط:
data string (bytes format)

محتوى المستند

سلسلة مرمّزة باستخدام Base64

uri string

معرّف الموارد المنتظم (URI) للمستند

تمثيل JSON
{
  "mimeType": enum (MimeType),

  // data_or_uri
  "data": string,
  "uri": string
  // Union type
}

VideoContent

كتلة محتوى فيديو

الحقول
mimeType enum (MimeType)

نوع MIME الخاص بالفيديو.

resolution enum (MediaResolution)

تمثّل هذه السمة درجة دقة الوسائط.

data_or_uri Union type
محتوى الفيديو يمكن أن يكون التعليق data_or_uri إحدى القيم التالية فقط:
data string (bytes format)

محتوى الفيديو

سلسلة مرمّزة باستخدام Base64

uri string

تمثّل هذه السمة معرّف الموارد المنتظم (URI) الخاص بالفيديو.

تمثيل JSON
{
  "mimeType": enum (MimeType),
  "resolution": enum (MediaResolution),

  // data_or_uri
  "data": string,
  "uri": string
  // Union type
}

ThoughtContent

وحدة محتوى خاصة بالأفكار

الحقول
signature string (bytes format)

توقيع لمطابقة المصدر الخلفي الذي سيتم تضمينه في عملية الإنشاء

سلسلة مرمّزة باستخدام Base64

summary[] object (ThoughtSummaryContent)

ملخّص الفكرة

تمثيل JSON
{
  "signature": string,
  "summary": [
    {
      object (ThoughtSummaryContent)
    }
  ]
}

ThoughtSummaryContent

الحقول
type Union type
يمكن أن يكون التعليق type إحدى القيم التالية فقط:
text object (TextContent)
image object (ImageContent)
تمثيل JSON
{

  // type
  "text": {
    object (TextContent)
  },
  "image": {
    object (ImageContent)
  }
  // Union type
}

ToolCallContent

محتوى طلب استخدام الأداة

الحقول
id string

الحقل مطلوب. معرّف فريد لاستدعاء الأداة المحدّد هذا.

signature string (bytes format)

تجزئة التوقيع للتحقّق من صحة البيانات في الخلفية

سلسلة مرمّزة باستخدام Base64

type Union type
يمكن أن يكون التعليق type إحدى القيم التالية فقط:
functionCall object (FunctionCallContent)
codeExecutionCall object (CodeExecutionCallContent)
urlContextCall object (UrlContextCallContent)
mcpServerToolCall object (McpServerToolCallContent)
googleSearchCall object (GoogleSearchCallContent)
fileSearchCall object (FileSearchCallContent)
googleMapsCall object (GoogleMapsCallContent)
تمثيل JSON
{
  "id": string,
  "signature": string,

  // type
  "functionCall": {
    object (FunctionCallContent)
  },
  "codeExecutionCall": {
    object (CodeExecutionCallContent)
  },
  "urlContextCall": {
    object (UrlContextCallContent)
  },
  "mcpServerToolCall": {
    object (McpServerToolCallContent)
  },
  "googleSearchCall": {
    object (GoogleSearchCallContent)
  },
  "fileSearchCall": {
    object (FileSearchCallContent)
  },
  "googleMapsCall": {
    object (GoogleMapsCallContent)
  }
  // Union type
}

FunctionCallContent

كتلة محتوى لاستدعاء أداة وظيفة

الحقول
name string

الحقل مطلوب. تمثّل هذه السمة اسم الأداة المطلوب استدعاؤها.

arguments object (Struct)

الحقل مطلوب. الوسيطات التي سيتم تمريرها إلى الدالة

تمثيل JSON
{
  "name": string,
  "arguments": {
    object (Struct)
  }
}

CodeExecutionCallContent

محتوى تنفيذ الرموز البرمجية

الحقول
arguments object (CodeExecutionCallArguments)

الحقل مطلوب. الوسيطات التي سيتم تمريرها إلى تنفيذ الرمز البرمجي

تمثيل JSON
{
  "arguments": {
    object (CodeExecutionCallArguments)
  }
}

CodeExecutionCallArguments

الوسيطات التي سيتم تمريرها إلى تنفيذ الرمز البرمجي

الحقول
language enum (Language)

لغة البرمجة الخاصة بـ code

code string

الرمز المطلوب تنفيذه

تمثيل JSON
{
  "language": enum (Language),
  "code": string
}

UrlContextCallContent

محتوى سياق عنوان URL

الحقول
arguments object (UrlContextCallArguments)

الحقل مطلوب. الوسيطات التي سيتم تمريرها إلى سياق عنوان URL

تمثيل JSON
{
  "arguments": {
    object (UrlContextCallArguments)
  }
}

UrlContextCallArguments

الوسيطات التي سيتم تمريرها إلى سياق عنوان URL

الحقول
urls[] string

تمثّل هذه السمة عناوين URL المطلوب استرجاعها.

تمثيل JSON
{
  "urls": [
    string
  ]
}

McpServerToolCallContent

محتوى طلب استخدام أداة MCPServer

الحقول
name string

الحقل مطلوب. اسم الأداة التي تم استدعاؤها

serverName string

الحقل مطلوب. تمثّل هذه السمة اسم خادم MCP المستخدَم.

arguments object (Struct)

الحقل مطلوب. عنصر JSON الخاص بوسيطات الدالة

تمثيل JSON
{
  "name": string,
  "serverName": string,
  "arguments": {
    object (Struct)
  }
}

GoogleSearchCallContent

محتوى "بحث Google"

الحقول
arguments object (GoogleSearchCallArguments)

الحقل مطلوب. الوسيطات التي يجب تمريرها إلى "بحث Google"

searchType enum (SearchType)

نوع البحث المستند إلى بيانات مفعَّل.

تمثيل JSON
{
  "arguments": {
    object (GoogleSearchCallArguments)
  },
  "searchType": enum (SearchType)
}

GoogleSearchCallArguments

الحجج التي يجب تمريرها إلى "بحث Google"

الحقول
queries[] string

طلبات البحث على الويب التي يتم إجراؤها لمتابعة البحث على الويب

تمثيل JSON
{
  "queries": [
    string
  ]
}

FileSearchCallContent

لا يتضمّن هذا النوع أي حقول.

محتوى "بحث الملفات"

GoogleMapsCallContent

محتوى "خرائط Google"

الحقول
arguments object (GoogleMapsCallArguments)

الوسيطات التي سيتم تمريرها إلى أداة "خرائط Google"

تمثيل JSON
{
  "arguments": {
    object (GoogleMapsCallArguments)
  }
}

GoogleMapsCallArguments

الوسيطات التي سيتم تمريرها إلى أداة "خرائط Google"

الحقول
queries[] string

طلبات البحث التي سيتم تنفيذها

تمثيل JSON
{
  "queries": [
    string
  ]
}

ToolResultContent

محتوى نتيجة الأداة

الحقول
callId string

الحقل مطلوب. معرّف يجب أن يتطابق مع المعرّف من مربّع استدعاء الدالة

signature string (bytes format)

تجزئة التوقيع للتحقّق من صحة البيانات في الخلفية

سلسلة مرمّزة باستخدام Base64

type Union type
يمكن أن يكون التعليق type إحدى القيم التالية فقط:
functionResult object (FunctionResultContent)
codeExecutionResult object (CodeExecutionResultContent)
urlContextResult object (UrlContextResultContent)
googleSearchResult object (GoogleSearchResultContent)
mcpServerToolResult object (McpServerToolResultContent)
fileSearchResult object (FileSearchResultContent)
googleMapsResult object (GoogleMapsResultContent)
تمثيل JSON
{
  "callId": string,
  "signature": string,

  // type
  "functionResult": {
    object (FunctionResultContent)
  },
  "codeExecutionResult": {
    object (CodeExecutionResultContent)
  },
  "urlContextResult": {
    object (UrlContextResultContent)
  },
  "googleSearchResult": {
    object (GoogleSearchResultContent)
  },
  "mcpServerToolResult": {
    object (McpServerToolResultContent)
  },
  "fileSearchResult": {
    object (FileSearchResultContent)
  },
  "googleMapsResult": {
    object (GoogleMapsResultContent)
  }
  // Union type
}

FunctionResultContent

كتلة محتوى لنتيجة أداة دالة

الحقول
name string

تمثّل هذه السمة اسم الأداة التي تم استدعاؤها.

isError boolean

تُستخدَم لتحديد ما إذا كان استدعاء الأداة قد نتج عنه خطأ.

result Union type
نتيجة استدعاء الأداة. يمكن أن يكون التعليق result إحدى القيم التالية فقط:
structResult object (Struct)
contentList object (FunctionResultSubcontentList)
stringResult string
تمثيل JSON
{
  "name": string,
  "isError": boolean,

  // result
  "structResult": {
    object (Struct)
  },
  "contentList": {
    object (FunctionResultSubcontentList)
  },
  "stringResult": string
  // Union type
}

FunctionResultSubcontentList

الحقول
contents[] object (FunctionResultSubcontent)
تمثيل JSON
{
  "contents": [
    {
      object (FunctionResultSubcontent)
    }
  ]
}

FunctionResultSubcontent

الحقول
type Union type
يمكن أن يكون التعليق type إحدى القيم التالية فقط:
text object (TextContent)
image object (ImageContent)
تمثيل JSON
{

  // type
  "text": {
    object (TextContent)
  },
  "image": {
    object (ImageContent)
  }
  // Union type
}

CodeExecutionResultContent

محتوى نتيجة تنفيذ الرمز البرمجي

الحقول
result string

الحقل مطلوب. ناتج تنفيذ الرمز البرمجي

isError boolean

تُستخدَم لتحديد ما إذا كان تنفيذ الرمز البرمجي قد أدّى إلى حدوث خطأ.

تمثيل JSON
{
  "result": string,
  "isError": boolean
}

UrlContextResultContent

محتوى نتيجة سياق عنوان URL

الحقول
result[] object (UrlContextResult)

الحقل مطلوب. نتائج سياق عنوان URL

isError boolean

تُستخدَم لتحديد ما إذا كان سياق عنوان URL قد أدّى إلى حدوث خطأ.

تمثيل JSON
{
  "result": [
    {
      object (UrlContextResult)
    }
  ],
  "isError": boolean
}

UrlContextResult

نتيجة سياق عنوان URL

الحقول
url string

عنوان URL الذي تم استرجاعه.

status enum (Status)

حالة استرداد عنوان URL.

تمثيل JSON
{
  "url": string,
  "status": enum (Status)
}

GoogleSearchResultContent

محتوى نتيجة بحث من Google

الحقول
result[] object (GoogleSearchResult)

الحقل مطلوب. نتائج بحث Google

isError boolean

تُستخدَم لتحديد ما إذا كان البحث على Google قد أدّى إلى حدوث خطأ.

تمثيل JSON
{
  "result": [
    {
      object (GoogleSearchResult)
    }
  ],
  "isError": boolean
}

GoogleSearchResult

نتيجة بحث Google.

الحقول
searchSuggestions string

مقتطف من محتوى الويب يمكن تضمينه في صفحة ويب أو WebView في تطبيق

تمثيل JSON
{
  "searchSuggestions": string
}

McpServerToolResultContent

محتوى نتيجة أداة MCPServer

الحقول
name string

اسم الأداة التي يتم استدعاؤها لتنفيذ طلب استخدام الأداة المحدّد هذا.

serverName string

تمثّل هذه السمة اسم خادم MCP المستخدَم.

result Union type
الناتج من طلب خادم MCP يمكن أن يكون نصًا بسيطًا أو محتوًى وافيًا. يمكن أن يكون التعليق result إحدى القيم التالية فقط:
structResult object (Struct)
contentList object (FunctionResultSubcontentList)
stringResult string
تمثيل JSON
{
  "name": string,
  "serverName": string,

  // result
  "structResult": {
    object (Struct)
  },
  "contentList": {
    object (FunctionResultSubcontentList)
  },
  "stringResult": string
  // Union type
}

FileSearchResultContent

محتوى نتيجة البحث في الملفات

الحقول
result[] object (FileSearchResult)

اختياريّ. نتائج البحث عن الملفات

تمثيل JSON
{
  "result": [
    {
      object (FileSearchResult)
    }
  ]
}

FileSearchResult

لا يتضمّن هذا النوع أي حقول.

نتيجة البحث عن الملفات

GoogleMapsResultContent

محتوى نتائج "خرائط Google"

الحقول
result[] object (GoogleMapsResult)

الحقل مطلوب. نتائج "خرائط Google"

تمثيل JSON
{
  "result": [
    {
      object (GoogleMapsResult)
    }
  ]
}

GoogleMapsResult

نتيجة "خرائط Google"

الحقول
places[] object (Places)

الأماكن التي تم العثور عليها

widgetContextToken string

اسم المورد لرمز مميّز سياقي لتطبيق "خرائط Google" المصغّر

تمثيل JSON
{
  "places": [
    {
      object (Places)
    }
  ],
  "widgetContextToken": string
}

أماكن

الحقول
placeId string

معرّف المكان بالتنسيق places/{placeId}

name string

تمثّل هذه السمة عنوان المكان.

url string

يشير إلى معرّف الموارد المنتظم (URI) للمكان.

reviewSnippets[] object (ReviewSnippet)

مقتطفات من المراجعات تُستخدَم لإنشاء إجابات حول ميزات مكان معيّن في "خرائط Google"

تمثيل JSON
{
  "placeId": string,
  "name": string,
  "url": string,
  "reviewSnippets": [
    {
      object (ReviewSnippet)
    }
  ]
}

ContentList

قائمة بالمحتوى

الحقول
contents[] object (Content)

محتوى القائمة

تمثيل JSON
{
  "contents": [
    {
      object (Content)
    }
  ]
}

CreateInteractionRequest

مَعلمات الإعداد لإنشاء تفاعل

الحقول
stream boolean

الإدخال فقط تُستخدَم لتحديد ما إذا كان سيتم بث التفاعل.

store boolean

الإدخال فقط تحديد ما إذا كان سيتم تخزين الرد والطلب لاستردادهما لاحقًا

interaction object (Interaction)

التفاعل المطلوب إنشاؤه

background boolean

الإدخال فقط تحديد ما إذا كان سيتم تشغيل التفاعل مع النموذج في الخلفية

تمثيل JSON
{
  "stream": boolean,
  "store": boolean,
  "interaction": {
    object (Interaction)
  },
  "background": boolean
}

التفاعل

الردّ على InteractionService.CreateInteraction

الحقول
id string

الحقل مطلوب. النتائج فقط. معرّف فريد لإكمال التفاعل.

status enum (Status)

الحقل مطلوب. النتائج فقط. تمثّل هذه السمة حالة التفاعل.

created string

الحقل مطلوب. النتائج فقط. تمثّل هذه السمة الوقت الذي تم فيه إنشاء الردّ بتنسيق ISO 8601 (YYYY-MM-DDThh:mm:ssZ).

updated string

الحقل مطلوب. النتائج فقط. تمثّل هذه السمة الوقت الذي تم فيه آخر تعديل على الردّ بتنسيق ISO 8601 (YYYY-MM-DDThh:mm:ssZ).

role
(deprecated)
string

النتائج فقط. دور التفاعل

outputs[]
(deprecated)
object (Content)

النتائج فقط. الردود من النموذج

systemInstruction string

تعليمات النظام للتفاعل

tools[] object (Tool)

قائمة بتعريفات الأدوات التي قد يستدعيها النموذج أثناء التفاعل

usage object (Usage)

النتائج فقط. إحصاءات حول استخدام الرمز المميز لطلب التفاعل.

responseModalities[]
(deprecated)
enum (ResponseModality)

أنواع الردود المطلوبة (TEXT أو IMAGE أو AUDIO).

responseMimeType
(deprecated)
string

نوع MIME الخاص بالردّ. هذه السمة مطلوبة في حال ضبط responseFormat.

previousInteractionId string

رقم تعريف التفاعل السابق، إن وُجد.

environmentId string

النتائج فقط. رقم تعريف البيئة للتفاعل. لا تتم تعبئة هذا الحقل إلا إذا تم ضبط إعدادات البيئة في الطلب.

serviceTier enum (ServiceTier)

فئة الخدمة للتفاعل

webhookConfig object (WebhookConfig)

اختياريّ. إعدادات Webhook لتلقّي الإشعارات عند اكتمال التفاعل

steps[] object (Step)

الحقل مطلوب. النتائج فقط. تمثّل هذه السمة الخطوات التي يتضمّنها التفاعل.

input Union type
تمثّل هذه السمة الإدخال الخاص بالتفاعل. يمكن أن يكون التعليق input إحدى القيم التالية فقط:
contentList
(deprecated)
object (ContentList)

مدخلات التفاعل

stringContent string

تمثّل هذه السمة إدخالاً لسلسلة نصية للتفاعل، وسيتمّ معالجتها كإدخال نصي واحد.

turnList
(deprecated)
object (TurnList)

نوبات التفاعل

stepList object (StepList)

الإدخال فقط تمثّل هذه السمة خطوات التفاعل.

content object (Content)

محتوى التفاعل

response_format_config Union type
يمكن أن يكون التعليق response_format_config إحدى القيم التالية فقط:
responseFormat
(deprecated)
object (Value)

يفرض أن يكون الردّ الذي يتم إنشاؤه عبارة عن عنصر JSON يتوافق مع مخطط JSON المحدّد في هذا الحقل.

responseFormatList object (ResponseFormatList)
responseFormatSingleton object (ResponseFormat)
request_type Union type
تمثّل هذه السمة نوع الطلب للتفاعل. يمكن أن يكون التعليق request_type إحدى القيم التالية فقط:
modelInteraction object (ModelInteraction)

التفاعل لإنشاء الإكمال باستخدام النماذج

agentInteraction object (AgentInteraction)

التفاعل لإنشاء الإكمال باستخدام الوكلاء

environment Union type
إعدادات البيئة للتفاعل يمكن أن يكون التعليق environment إحدى القيم التالية فقط:
envId string

رقم تعريف البيئة للتفاعل. يمكن أن تكون القيمة هي "remote" للبيئة التلقائية.

remoteEnvironment object (EnvironmentConfig)
localEnvironment object (LocalEnvironmentConfig)

تتوفّر بيئة الوكيل على اتصال العميل: يتم تسليم عمليات البيئة المضمّنة (عمليات نظام الملفات وتنفيذ الأوامر) إلى العميل لتنفيذها، بدلاً من تنفيذها في بيئة اختبار معزولة يديرها الخادم. لا يمكن استخدامها مع remoteEnvironment. (بشكل مستقل عن أي أدوات وظائف يحدّدها العميل، والتي يتم تنفيذها دائمًا على العميل بغض النظر عن هذا الحقل)

تمثيل JSON
{
  "id": string,
  "status": enum (Status),
  "created": string,
  "updated": string,
  "role": string,
  "outputs": [
    {
      object (Content)
    }
  ],
  "systemInstruction": string,
  "tools": [
    {
      object (Tool)
    }
  ],
  "usage": {
    object (Usage)
  },
  "responseModalities": [
    enum (ResponseModality)
  ],
  "responseMimeType": string,
  "previousInteractionId": string,
  "environmentId": string,
  "serviceTier": enum (ServiceTier),
  "webhookConfig": {
    object (WebhookConfig)
  },
  "steps": [
    {
      object (Step)
    }
  ],

  // input
  "contentList": {
    object (ContentList)
  },
  "stringContent": string,
  "turnList": {
    object (TurnList)
  },
  "stepList": {
    object (StepList)
  },
  "content": {
    object (Content)
  }
  // Union type

  // response_format_config
  "responseFormat": {
    object (Value)
  },
  "responseFormatList": {
    object (ResponseFormatList)
  },
  "responseFormatSingleton": {
    object (ResponseFormat)
  }
  // Union type

  // request_type
  "modelInteraction": {
    object (ModelInteraction)
  },
  "agentInteraction": {
    object (AgentInteraction)
  }
  // Union type

  // environment
  "envId": string,
  "remoteEnvironment": {
    object (EnvironmentConfig)
  },
  "localEnvironment": {
    object (LocalEnvironmentConfig)
  }
  // Union type
}

TurnList

قائمة بالمنعطفات

الحقول
turns[] object (Turn)
تمثيل JSON
{
  "turns": [
    {
      object (Turn)
    }
  ]
}

Turn

الحقول
role string

مَن بدأ هذا الدور. يجب أن يكون مستخدمًا للإدخال أو نموذجًا لمخرجات النموذج.

content Union type
يمكن أن يكون التعليق content إحدى القيم التالية فقط:
contentList object (ContentList)

محتوى الدور مصفوفة من عناصر المحتوى

contentString string

محتوى الجولة سلسلة واحدة

تمثيل JSON
{
  "role": string,

  // content
  "contentList": {
    object (ContentList)
  },
  "contentString": string
  // Union type
}

StepList

قائمة بالخطوات

الحقول
steps[] object (Step)

تمثّل هذه السمة خطوات القائمة.

تمثيل JSON
{
  "steps": [
    {
      object (Step)
    }
  ]
}

الخطوة

خطوة في التفاعل

الحقول
type Union type
يمكن أن يكون التعليق type إحدى القيم التالية فقط:
thought object (ThoughtStep)
toolCall object (ToolCallStep)
toolResult object (ToolResultStep)
userInput object (UserInputStep)

لا تستخدم هذه الحقول، فهي مخصّصة لملف JSON الخاص بالجهات الخارجية فقط.

modelOutput object (ModelOutputStep)
text
(deprecated)
object (LegacyTextContent)
image
(deprecated)
object (LegacyImageContent)
audio
(deprecated)
object (LegacyAudioContent)
document
(deprecated)
object (LegacyDocumentContent)
video
(deprecated)
object (LegacyVideoContent)
تمثيل JSON
{

  // type
  "thought": {
    object (ThoughtStep)
  },
  "toolCall": {
    object (ToolCallStep)
  },
  "toolResult": {
    object (ToolResultStep)
  },
  "userInput": {
    object (UserInputStep)
  },
  "modelOutput": {
    object (ModelOutputStep)
  },
  "text": {
    object (LegacyTextContent)
  },
  "image": {
    object (LegacyImageContent)
  },
  "audio": {
    object (LegacyAudioContent)
  },
  "document": {
    object (LegacyDocumentContent)
  },
  "video": {
    object (LegacyVideoContent)
  }
  // Union type
}

ThoughtStep

خطوة تفكير

الحقول
signature string (bytes format)

تجزئة التوقيع للتحقّق من صحة البيانات في الخلفية

سلسلة مرمّزة باستخدام Base64

summary[] object (Content)

ملخّص الفكرة

تمثيل JSON
{
  "signature": string,
  "summary": [
    {
      object (Content)
    }
  ]
}

ToolCallStep

خطوة طلب استخدام الأداة

الحقول
id string

الحقل مطلوب. معرّف فريد لاستدعاء الأداة المحدّد هذا.

signature string (bytes format)

تجزئة التوقيع للتحقّق من صحة البيانات في الخلفية

سلسلة مرمّزة باستخدام Base64

type Union type
يمكن أن يكون التعليق type إحدى القيم التالية فقط:
functionCall object (FunctionCallStep)
codeExecutionCall object (CodeExecutionCallStep)
urlContextCall object (UrlContextCallStep)
mcpServerToolCall object (McpServerToolCallStep)
googleSearchCall object (GoogleSearchCallStep)
fileSearchCall object (FileSearchCallStep)
googleMapsCall object (GoogleMapsCallStep)
retrievalCall object (RetrievalCallStep)
تمثيل JSON
{
  "id": string,
  "signature": string,

  // type
  "functionCall": {
    object (FunctionCallStep)
  },
  "codeExecutionCall": {
    object (CodeExecutionCallStep)
  },
  "urlContextCall": {
    object (UrlContextCallStep)
  },
  "mcpServerToolCall": {
    object (McpServerToolCallStep)
  },
  "googleSearchCall": {
    object (GoogleSearchCallStep)
  },
  "fileSearchCall": {
    object (FileSearchCallStep)
  },
  "googleMapsCall": {
    object (GoogleMapsCallStep)
  },
  "retrievalCall": {
    object (RetrievalCallStep)
  }
  // Union type
}

FunctionCallStep

خطوة استدعاء أداة الدالة

الحقول
name string

الحقل مطلوب. تمثّل هذه السمة اسم الأداة المطلوب استدعاؤها.

arguments object (Struct)

الحقل مطلوب. الوسيطات التي سيتم تمريرها إلى الدالة

تمثيل JSON
{
  "name": string,
  "arguments": {
    object (Struct)
  }
}

UrlContextCallStep

خطوة طلب سياق عنوان URL

الحقول
arguments object (UrlContextCallStepArguments)

الحقل مطلوب. الوسيطات التي سيتم تمريرها إلى سياق عنوان URL

تمثيل JSON
{
  "arguments": {
    object (UrlContextCallStepArguments)
  }
}

UrlContextCallStepArguments

الوسيطات التي سيتم تمريرها إلى سياق عنوان URL

الحقول
urls[] string

تمثّل هذه السمة عناوين URL المطلوب استرجاعها.

تمثيل JSON
{
  "urls": [
    string
  ]
}

McpServerToolCallStep

خطوة طلب استخدام أداة MCPServer

الحقول
name string

الحقل مطلوب. اسم الأداة التي تم استدعاؤها

serverName string

الحقل مطلوب. تمثّل هذه السمة اسم خادم MCP المستخدَم.

arguments object (Struct)

الحقل مطلوب. عنصر JSON الخاص بوسيطات الدالة

تمثيل JSON
{
  "name": string,
  "serverName": string,
  "arguments": {
    object (Struct)
  }
}

GoogleSearchCallStep

خطوة المكالمة على "بحث Google"

الحقول
arguments object (GoogleSearchCallStepArguments)

الحقل مطلوب. الوسيطات التي يجب تمريرها إلى "بحث Google"

searchType enum (SearchType)

نوع البحث المستند إلى بيانات مفعَّل.

تمثيل JSON
{
  "arguments": {
    object (GoogleSearchCallStepArguments)
  },
  "searchType": enum (SearchType)
}

GoogleSearchCallStepArguments

الوسيطات التي يجب تمريرها إلى "بحث Google"

الحقول
queries[] string

طلبات البحث على الويب التي يتم إجراؤها لمتابعة البحث على الويب

تمثيل JSON
{
  "queries": [
    string
  ]
}

FileSearchCallStep

لا يتضمّن هذا النوع أي حقول.

خطوة مكالمة "البحث في الملفات"

GoogleMapsCallStep

خطوة الاتصال في "خرائط Google"

الحقول
arguments object (GoogleMapsCallStepArguments)

الوسيطات التي سيتم تمريرها إلى أداة "خرائط Google"

تمثيل JSON
{
  "arguments": {
    object (GoogleMapsCallStepArguments)
  }
}

GoogleMapsCallStepArguments

الوسيطات التي سيتم تمريرها إلى أداة "خرائط Google"

الحقول
queries[] string

طلبات البحث التي سيتم تنفيذها

تمثيل JSON
{
  "queries": [
    string
  ]
}

ToolResultStep

خطوة نتيجة الأداة

الحقول
callId string

الحقل مطلوب. معرّف يجب أن يتطابق مع المعرّف من مربّع استدعاء الدالة

signature string (bytes format)

تجزئة التوقيع للتحقّق من صحة البيانات في الخلفية

سلسلة مرمّزة باستخدام Base64

type Union type
يمكن أن يكون التعليق type إحدى القيم التالية فقط:
functionResult object (FunctionResultStep)
codeExecutionResult object (CodeExecutionResultStep)
urlContextResult object (UrlContextResultStep)
googleSearchResult object (GoogleSearchResultStep)
mcpServerToolResult object (McpServerToolResultStep)
fileSearchResult object (FileSearchResultStep)
googleMapsResult object (GoogleMapsResultStep)
retrievalResult object (RetrievalResultStep)
تمثيل JSON
{
  "callId": string,
  "signature": string,

  // type
  "functionResult": {
    object (FunctionResultStep)
  },
  "codeExecutionResult": {
    object (CodeExecutionResultStep)
  },
  "urlContextResult": {
    object (UrlContextResultStep)
  },
  "googleSearchResult": {
    object (GoogleSearchResultStep)
  },
  "mcpServerToolResult": {
    object (McpServerToolResultStep)
  },
  "fileSearchResult": {
    object (FileSearchResultStep)
  },
  "googleMapsResult": {
    object (GoogleMapsResultStep)
  },
  "retrievalResult": {
    object (RetrievalResultStep)
  }
  // Union type
}

FunctionResultStep

نتيجة استدعاء أداة دالة

الحقول
name string

تمثّل هذه السمة اسم الأداة التي تم استدعاؤها.

isError boolean

تُستخدَم لتحديد ما إذا كان استدعاء الأداة قد نتج عنه خطأ.

result object (Value)

الحقل مطلوب. نتيجة استدعاء الأداة.

تمثيل JSON
{
  "name": string,
  "isError": boolean,
  "result": {
    object (Value)
  }
}

UrlContextResultStep

خطوة نتيجة سياق عنوان URL

الحقول
result[] object (UrlContextResultItem)

الحقل مطلوب. نتائج سياق عنوان URL

isError boolean

تُستخدَم لتحديد ما إذا كان سياق عنوان URL قد أدّى إلى حدوث خطأ.

تمثيل JSON
{
  "result": [
    {
      object (UrlContextResultItem)
    }
  ],
  "isError": boolean
}

UrlContextResultItem

نتيجة سياق عنوان URL

الحقول
url string

عنوان URL الذي تم جلبه.

status enum (Status)

حالة استرداد عنوان URL.

تمثيل JSON
{
  "url": string,
  "status": enum (Status)
}

GoogleSearchResultStep

خطوة نتيجة البحث من Google

الحقول
result[] object (GoogleSearchResultItem)

الحقل مطلوب. نتائج بحث Google

isError boolean

تُستخدَم لتحديد ما إذا كان البحث على Google قد أدّى إلى حدوث خطأ.

تمثيل JSON
{
  "result": [
    {
      object (GoogleSearchResultItem)
    }
  ],
  "isError": boolean
}

GoogleSearchResultItem

نتيجة بحث Google.

الحقول
searchSuggestions string

مقتطف من محتوى الويب يمكن تضمينه في صفحة ويب أو WebView في تطبيق

تمثيل JSON
{
  "searchSuggestions": string
}

McpServerToolResultStep

خطوة نتيجة أداة MCPServer

الحقول
name string

اسم الأداة التي يتم استدعاؤها لتنفيذ طلب استخدام الأداة المحدّد هذا.

serverName string

تمثّل هذه السمة اسم خادم MCP المستخدَم.

result object (Value)

الحقل مطلوب. الناتج من طلب خادم MCP يمكن أن يكون نصًا بسيطًا أو محتوًى وافيًا.

تمثيل JSON
{
  "name": string,
  "serverName": string,
  "result": {
    object (Value)
  }
}

FileSearchResultStep

لا يتضمّن هذا النوع أي حقول.

خطوة نتيجة البحث عن الملفات

GoogleMapsResultStep

خطوة نتيجة "خرائط Google"

الحقول
result[] object (GoogleMapsResultItem)
تمثيل JSON
{
  "result": [
    {
      object (GoogleMapsResultItem)
    }
  ]
}

GoogleMapsResultItem

نتيجة "خرائط Google"

الحقول
places[] object (GoogleMapsResultPlaces)
widgetContextToken string
تمثيل JSON
{
  "places": [
    {
      object (GoogleMapsResultPlaces)
    }
  ],
  "widgetContextToken": string
}

GoogleMapsResultPlaces

الحقول
placeId string
name string
url string
reviewSnippets[] object (ReviewSnippet)
تمثيل JSON
{
  "placeId": string,
  "name": string,
  "url": string,
  "reviewSnippets": [
    {
      object (ReviewSnippet)
    }
  ]
}

UserInputStep

الإدخال الذي يقدّمه المستخدم

الحقول
content Union type
يمكن أن يكون التعليق content إحدى القيم التالية فقط:
contentList object (ContentList)

محتوى الخطوة مصفوفة من عناصر المحتوى

contentString string

محتوى الخطوة سلسلة واحدة

تمثيل JSON
{

  // content
  "contentList": {
    object (ContentList)
  },
  "contentString": string
  // Union type
}

ModelOutputStep

الناتج الذي يصدره النموذج

الحقول
content[] object (Content)
تمثيل JSON
{
  "content": [
    {
      object (Content)
    }
  ]
}

ResponseFormatList

الحقول
responseFormats[] object (ResponseFormat)
تمثيل JSON
{
  "responseFormats": [
    {
      object (ResponseFormat)
    }
  ]
}

ResponseFormat

الحقول
type Union type
يمكن أن يكون التعليق type إحدى القيم التالية فقط:
audio object (AudioResponseFormat)
text object (TextResponseFormat)
image object (ImageResponseFormat)
video object (VideoResponseFormat)
structValue object (Struct)

تمّ تفعيل قيم المصنّفات المتعدّدة في GAOS

تمثيل JSON
{

  // type
  "audio": {
    object (AudioResponseFormat)
  },
  "text": {
    object (TextResponseFormat)
  },
  "image": {
    object (ImageResponseFormat)
  },
  "video": {
    object (VideoResponseFormat)
  },
  "structValue": {
    object (Struct)
  }
  // Union type
}

TextResponseFormat

إعدادات تنسيق إخراج النص

الحقول
mimeType enum (MimeType)

نوع MIME الخاص بالناتج النصي.

schema object (Struct)

مخطّط JSON الذي يجب أن يتوافق معه الناتج. ينطبق ذلك فقط عندما يكون mimeType هو application/json.

تمثيل JSON
{
  "mimeType": enum (MimeType),
  "schema": {
    object (Struct)
  }
}

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

VideoResponseFormat

إعدادات تنسيق إخراج الفيديو

الحقول
delivery enum (Delivery)

تحدّد هذه السمة طريقة عرض الفيديو.

aspectRatio enum (AspectRatio)

نسبة العرض إلى الارتفاع لإخراج الفيديو

duration string (Duration format)

تمثّل هذه السمة مدة الفيديو الناتج.

مدة بالثواني مع ما يصل إلى تسعة أرقام كسور، وتنتهي بـ "s". مثال: "3.5s".

تمثيل JSON
{
  "delivery": enum (Delivery),
  "aspectRatio": enum (AspectRatio),
  "duration": string
}

ModelInteraction

التفاعل لإنشاء الإكمال باستخدام النماذج

الحقول
model string

اسم Model المستخدَم لإنشاء الإكمال.

generationConfig object (GenerationConfig)

الإدخال فقط مَعلمات الإعداد للتفاعل مع النموذج

تمثيل JSON
{
  "model": string,
  "generationConfig": {
    object (GenerationConfig)
  }
}

GenerationConfig

مَعلمات الضبط لتفاعلات النموذج

الحقول
temperature number

تتحكّم هذه السمة في عشوائية الناتج.

topP number

الحد الأقصى للاحتمال التراكمي للرموز المميّزة التي يجب أخذها في الاعتبار عند أخذ العيّنات.

seed integer

البيانات الأولية المستخدَمة في فك الترميز لضمان إمكانية إعادة الإنتاج

stopSequences[] string

قائمة بسلاسل الأحرف التي ستوقف التفاعل مع الإخراج

thinkingLevel enum (ThinkingLevel)

مستوى الرموز المميزة للأفكار التي يجب أن ينشئها النموذج

thinkingSummaries enum (ThinkingSummaries)

تحديد ما إذا كان سيتم تضمين ملخّصات الأفكار في الردّ.

maxOutputTokens integer

الحد الأقصى لعدد الرموز المميّزة التي يمكن تضمينها في الرد.

speechConfig[] object (SpeechConfig)

إعدادات التفاعل مع الكلام

imageConfig
(deprecated)
object (ImageConfig)

إعدادات التفاعل مع الصور

videoConfig object (VideoConfig)

إعدادات إنشاء الفيديوهات

tool_choice Union type
إعدادات اختيار الأداة يمكن أن يكون التعليق tool_choice إحدى القيم التالية فقط:
toolChoiceMode enum (ToolChoiceType)

وضع اختيار الأداة

toolChoiceConfig object (ToolChoiceConfig)

إعدادات اختيار الأداة

تمثيل JSON
{
  "temperature": number,
  "topP": number,
  "seed": integer,
  "stopSequences": [
    string
  ],
  "thinkingLevel": enum (ThinkingLevel),
  "thinkingSummaries": enum (ThinkingSummaries),
  "maxOutputTokens": integer,
  "speechConfig": [
    {
      object (SpeechConfig)
    }
  ],
  "imageConfig": {
    object (ImageConfig)
  },
  "videoConfig": {
    object (VideoConfig)
  },

  // tool_choice
  "toolChoiceMode": enum (ToolChoiceType),
  "toolChoiceConfig": {
    object (ToolChoiceConfig)
  }
  // Union type
}

ToolChoiceConfig

إعدادات اختيار الأداة التي تحتوي على الأدوات المسموح بها

الحقول
allowedTools object (AllowedTools)

الأدوات المسموح بها

تمثيل JSON
{
  "allowedTools": {
    object (AllowedTools)
  }
}

SpeechConfig

إعدادات التفاعل الصوتي

الحقول
voice string

صوت المتحدث

language string

لغة الكلام

speaker string

اسم المتحدث، ويجب أن يتطابق مع اسم المتحدث الوارد في الطلب

تمثيل JSON
{
  "voice": string,
  "language": string,
  "speaker": string
}

ImageConfig

إعدادات التفاعل مع الصور

الحقول
aspectRatio string

نسبة العرض إلى الارتفاع للصورة المطلوب إنشاؤها نسب العرض إلى الارتفاع المتاحة: 1:1 و2:3 و3:2 و3:4 و4:3 و9:16 و16:9 و21:9

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

imageSize string

تحدّد هذه السمة حجم الصور التي يتم إنشاؤها. القيم المسموح بها هي 1K و2K و4K. في حال عدم تحديدها، سيستخدم النموذج القيمة التلقائية 1K.

تمثيل JSON
{
  "aspectRatio": string,
  "imageSize": string
}

VideoConfig

خيارات الإعداد لإنشاء الفيديوهات

الحقول
task enum (Task)

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

تمثيل JSON
{
  "task": enum (Task)
}

EnvironmentConfig

إعدادات بيئة مخصّصة

الحقول
sources[] object (Source)
environmentId string

اختياريّ. رقم تعريف البيئة للتفاعل. في حال تحديدها، سيعدّل الطلب البيئة الحالية بدلاً من إنشاء بيئة جديدة.

network Union type
إعدادات الشبكة للبيئة يمكن أن يكون التعليق network إحدى القيم التالية فقط:
networkAllowlist object (EnvironmentNetworkEgressAllowlist)

السماح بنطاقات محدّدة فقط

networkMode enum (NetworkMode)

وضع خروج الشبكة

تمثيل JSON
{
  "sources": [
    {
      object (Source)
    }
  ],
  "environmentId": string,

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

EnvironmentNetworkEgressAllowlist

إعدادات خروج الشبكة للبيئة

الحقول
allowlist[] object (EgressRule)

قائمة بالنطاقات المسموح بها وإعداداتها

تمثيل JSON
{
  "allowlist": [
    {
      object (EgressRule)
    }
  ]
}

EgressRule

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

الحقول
domain string

نمط النطاق الذي يجب مطابقته لهذه القاعدة استخدِم اسم مضيف مطابقًا تمامًا (مثلاً، github.com) أو بادئة حرف بدل (مثلاً، *.googleapis.com) أو * لمطابقة جميع النطاقات.

transform map (key: string, value: string)

العناوين المطلوب إدراجها في الطلبات التي تتطابق مع هذه القاعدة المفتاح: اسم العنوان (مثلاً، "Authorization"). القيمة: قيمة العنوان (مثل "Bearer your-token")

عنصر يحتوي على قائمة بأزواج "key": value مثال: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

تمثيل JSON
{
  "domain": string,
  "transform": {
    string: string,
    ...
  }
}

المصدر

مصدر سيتم تركيبه في البيئة

الحقول
type enum (Type)
source string

مصدر البيئة بالنسبة إلى GCS، هذا هو مسار GCS. بالنسبة إلى GitHub، هذا هو مسار GitHub.

target string

المكان الذي يجب أن يظهر فيه المصدر في البيئة

content string

المحتوى المضمّن إذا كانت قيمة type هي INLINE

encoding string

ترميز اختياري للمحتوى المضمّن (مثل base64)

تمثيل JSON
{
  "type": enum (Type),
  "source": string,
  "target": string,
  "content": string,
  "encoding": string
}

LocalEnvironmentConfig

لا يتضمّن هذا النوع أي حقول.

إعدادات بيئة تعمل على اتصال العميل بدلاً من وضع الحماية الذي يديره الخادم

عند ضبطها (من خلال Interaction.local_environment)، يتم التعامل مع نظام الملفات والصدفة في البرنامج على أنّهما متوفّران على الجهاز: يتم تعليق عمليات البيئة المضمّنة في البرنامج (مثل قراءة الملفات أو إدراجها أو تعديلها أو تنفيذ الأوامر) على الخادم وإعادتها إلى الجهاز لتنفيذها، مع عرض نتائجها في دورة لاحقة. يستبعد ذلك استخدام EnvironmentConfig (remoteEnvironment) يديره الخادم، لأنّ البيئة تكون إما على العميل أو في بيئة الاختبار المعزولة للخادم، وليس كليهما.

لا يتحكّم هذا الإعداد إلا في البيئة المضمّنة للوكيل. يتم دائمًا تنفيذ أدوات الدوال التي يحدّدها العميل على العميل بغض النظر عن هذا الحقل.

الأداة

أداة يمكن أن يستخدمها النموذج.

الحقول
type Union type
الأداة التي سيتم استخدامها يمكن أن يكون التعليق type إحدى القيم التالية فقط:
function object (Function)

دالة يمكن أن يستخدمها النموذج.

codeExecution object (CodeExecution)

أداة يمكن أن يستخدمها النموذج لتنفيذ الرمز البرمجي

urlContext object (UrlContext)

أداة يمكن أن يستخدمها النموذج لجلب سياق عنوان URL.

computerUse object (ComputerUse)

أداة تتيح للنموذج التفاعل مباشرةً مع الكمبيوتر

mcpServer object (McpServer)

خادم MCP هو خادم يمكن للنموذج استدعاؤه لتنفيذ إجراءات.

googleMaps object (GoogleMaps)

أداة يمكن للنموذج استخدامها للبحث في "خرائط Google"

retrieval object (Retrieval)

أداة يمكن للنموذج استخدامها لاسترداد الملفات

تمثيل JSON
{

  // type
  "function": {
    object (Function)
  },
  "codeExecution": {
    object (CodeExecution)
  },
  "urlContext": {
    object (UrlContext)
  },
  "computerUse": {
    object (ComputerUse)
  },
  "mcpServer": {
    object (McpServer)
  },
  "googleSearch": {
    object (GoogleSearch)
  },
  "fileSearch": {
    object (FileSearch)
  },
  "googleMaps": {
    object (GoogleMaps)
  },
  "retrieval": {
    object (Retrieval)
  }
  // Union type
}

الوظيفة

أداة يمكن أن يستخدمها النموذج.

الحقول
name string

اسم الدالة

description string

تمثّل هذه السمة وصفًا للدالة.

parameters object (Value)

مخطط JSON الخاص بمعلَمات الدالة.

تمثيل JSON
{
  "name": string,
  "description": string,
  "parameters": {
    object (Value)
  }
}

UrlContext

لا يتضمّن هذا النوع أي حقول.

أداة يمكن أن يستخدمها النموذج لجلب سياق عنوان URL.

McpServer

خادم MCP هو خادم يمكن للنموذج استدعاؤه لتنفيذ إجراءات.

الحقول
name string

اسم MCPServer

url string

عنوان URL الكامل لنقطة نهاية MCPServer مثال: "https://api.example.com/mcp"

headers map (key: string, value: string)

اختياري: حقول لعناوين المصادقة ومهلات الانتظار وما إلى ذلك، إذا لزم الأمر

عنصر يحتوي على قائمة بأزواج "key": value مثال: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

allowedTools[] object (AllowedTools)

الأدوات المسموح بها

تمثيل JSON
{
  "name": string,
  "url": string,
  "headers": {
    string: string,
    ...
  },
  "allowedTools": [
    {
      object (AllowedTools)
    }
  ]
}

GoogleSearch

أداة يمكن أن يستخدمها النموذج للبحث على Google

الحقول
searchTypes[] enum (SearchType)

أنواع البحث المستند إلى معلومات أساسية التي يجب تفعيلها.

تمثيل JSON
{
  "searchTypes": [
    enum (SearchType)
  ]
}

FileSearch

أداة يمكن للنموذج استخدامها للبحث في الملفات

الحقول
fileSearchStoreNames[] string

أسماء متاجر البحث عن الملفات

topK integer

عدد أجزاء الاسترجاع الدلالي المطلوب استرجاعها.

metadataFilter string

فلتر البيانات الوصفية الذي سيتم تطبيقه على المستندات والأجزاء التي يتم استرجاعها دلاليًا.

تمثيل JSON
{
  "fileSearchStoreNames": [
    string
  ],
  "topK": integer,
  "metadataFilter": string
}

GoogleMaps

أداة يمكن أن يستخدمها النموذج للاتصال بخدمة "خرائط Google"

الحقول
enableWidget boolean

تحديد ما إذا كان سيتم عرض رمز مميّز لسياق التطبيق المصغّر في نتيجة استدعاء الأداة ضمن الردّ.

latitude number

تمثّل هذه السمة خط العرض للموقع الجغرافي للمستخدم.

longitude number

تمثّل هذه السمة خط الطول للموقع الجغرافي للمستخدم.

تمثيل JSON
{
  "enableWidget": boolean,
  "latitude": number,
  "longitude": number
}

الاستخدام

إحصاءات حول استخدام الرمز المميز لطلب التفاعل.

الحقول
totalInputTokens integer

عدد الرموز المميزة في الطلب (السياق).

inputTokensByModality[] object (ModalityTokens)

تفصيل لاستخدام الرموز المميزة للإدخال حسب نوع البيانات

totalCachedTokens integer

عدد الرموز المميّزة في الجزء المخزّن مؤقتًا من الطلب (المحتوى المخزّن مؤقتًا)

cachedTokensByModality[] object (ModalityTokens)

تفاصيل استخدام الرمز المميز المخزّن مؤقتًا حسب طريقة الدفع

totalOutputTokens integer

إجمالي عدد الرموز المميزة في جميع الردود التي تم إنشاؤها

outputTokensByModality[] object (ModalityTokens)

تفاصيل استخدام الرموز المميزة للناتج حسب طريقة العرض

totalToolUseTokens integer

عدد الرموز المميزة المتوفّرة في طلبات استخدام الأدوات

toolUseTokensByModality[] object (ModalityTokens)

تفصيل لاستخدام الرموز المميزة الخاصة باستخدام الأدوات حسب نوع البيانات

totalThoughtTokens integer

عدد الرموز المميّزة للأفكار في نماذج التفكير

totalTokens integer

إجمالي عدد الرموز المميّزة لطلب التفاعل (الطلب + الردود + الرموز المميّزة الداخلية الأخرى)

groundingToolCount[] object (GroundingToolCount)

عدد أدوات التأسيس

تمثيل JSON
{
  "totalInputTokens": integer,
  "inputTokensByModality": [
    {
      object (ModalityTokens)
    }
  ],
  "totalCachedTokens": integer,
  "cachedTokensByModality": [
    {
      object (ModalityTokens)
    }
  ],
  "totalOutputTokens": integer,
  "outputTokensByModality": [
    {
      object (ModalityTokens)
    }
  ],
  "totalToolUseTokens": integer,
  "toolUseTokensByModality": [
    {
      object (ModalityTokens)
    }
  ],
  "totalThoughtTokens": integer,
  "totalTokens": integer,
  "groundingToolCount": [
    {
      object (GroundingToolCount)
    }
  ]
}

ModalityTokens

عدد الرموز المميزة لنمط استجابة واحد

الحقول
modality enum (ResponseModality)

الوسيط المرتبط بعدد الرموز المميزة.

tokens integer

عدد الرموز المميّزة للوسائط

تمثيل JSON
{
  "modality": enum (ResponseModality),
  "tokens": integer
}

GroundingToolCount

عدد أدوات التأريض.

الحقول
type enum (Type)

نوع أداة التأسيس المرتبطة بالعدد

count integer

عدد أدوات التأريض.

تمثيل JSON
{
  "type": enum (Type),
  "count": integer
}

WebhookConfig

رسالة لإعداد أحداث الويب هوك لطلب معيّن

الحقول
uris[] string

اختياريّ. في حال ضبطها، سيتم استخدام معرّفات الموارد المنتظمة (URI) الخاصة بخطافات الويب هذه لأحداث خطافات الويب بدلاً من خطافات الويب المسجّلة.

userMetadata object (Struct format)

اختياريّ. بيانات المستخدم الوصفية التي سيتم عرضها عند كل عملية إرسال حدث إلى خطافات الويب.

تمثيل JSON
{
  "uris": [
    string
  ],
  "userMetadata": {
    object
  }
}

SafetySetting

إعداد أمان يؤثر في سلوك الحظر المتعلق بالأمان

يتألف [SafetySetting][google.cloud.aiplatform.master.SafetySetting] من [فئة][google.cloud.aiplatform.master.SafetySetting.category] ضرر و[حدّ][google.cloud.aiplatform.master.SafetySetting.threshold] لتلك الفئة.

الحقول
type enum (HarmCategory)

الحقل مطلوب. نوع فئة المحتوى الضار المطلوب حظره.

threshold enum (HarmBlockThreshold)

الحقل مطلوب. الحدّ الأدنى لحظر المحتوى إذا تجاوز احتمال الضرر هذا الحد، سيتم حظر المحتوى.

method enum (HarmBlockMethod)

اختياريّ. طريقة حظر المحتوى في حال عدم تحديدها، يكون السلوك التلقائي هو استخدام نتيجة الاحتمالية.

تمثيل JSON
{
  "type": enum (HarmCategory),
  "threshold": enum (HarmBlockThreshold),
  "method": enum (HarmBlockMethod)
}

إرسال المحتوى

وضع عرض الإعلانات لإخراج الصوت

عمليات التعداد
DELIVERY_UNSPECIFIED القيمة التلقائية هذه القيمة غير مستخدَمة.
INLINE يتم عرض بيانات الصوت بشكل مضمّن في الردّ.
URI يتم عرض البيانات الصوتية كمعرّف موارد موحّد (URI).

البيئة

تمثّل هذه السمة البيئة التي يتم تشغيلها، مثل متصفّح الويب.

عمليات التعداد
ENVIRONMENT_UNSPECIFIED القيمة التلقائية هي "المتصفّح".
BROWSER يعمل في متصفّح ويب.
MOBILE تعمل في بيئة الأجهزة الجوّالة.
DESKTOP تعمل في بيئة كمبيوتر مكتبي.

HarmBlockMethod

طريقة حظر المحتوى

عمليات التعداد
HARM_BLOCK_METHOD_UNSPECIFIED لم يتم تحديد طريقة حظر المحتوى الضار.
SEVERITY تستخدم طريقة الحظر بسبب الضرر كلاً من نتائج الاحتمالية والخطورة.
PROBABILITY تستخدِم طريقة الحظر بسبب الضرر نتيجة الاحتمالية.

HarmBlockThreshold

عتبات حظر المحتوى استنادًا إلى احتمال الضرر

عمليات التعداد
HARM_BLOCK_THRESHOLD_UNSPECIFIED لم يتم تحديد الحدّ الأدنى للحظر بسبب الضرر.
BLOCK_LOW_AND_ABOVE حظر المحتوى الذي تبلغ احتمالية ضرره منخفضة أو أعلى
BLOCK_MEDIUM_AND_ABOVE حظر المحتوى الذي تبلغ احتمالية الضرر فيه متوسطة أو أعلى
BLOCK_ONLY_HIGH حظر المحتوى الذي يرجّح أن يتسبّب بضرر كبير
BLOCK_NONE عدم حظر أي محتوى، بغض النظر عن احتمال ضرره
OFF إيقاف فلتر الأمان بالكامل

ImageSize

أحجام الصور المتوافقة لإخراج الصور

عمليات التعداد
IMAGE_SIZE_UNSPECIFIED القيمة التلقائية هذه القيمة غير مستخدَمة.
IMAGE_SIZE_FIVE_TWELVE حجم الصورة 512 بكسل
IMAGE_SIZE_ONE_K حجم الصورة 1K
IMAGE_SIZE_TWO_K حجم الصورة 2K
IMAGE_SIZE_FOUR_K حجم الصورة بدقة 4K

اللغة

لغات البرمجة المتوافقة مع الرمز البرمجي الذي تم إنشاؤه

عمليات التعداد
LANGUAGE_UNSPECIFIED لغة غير محدّدة يجب عدم استخدام هذه القيمة.
PYTHON الإصدار 3.10 من Python أو إصدار أحدث، مع توفُّر numpy وsimpy

MediaResolution

درجة دقة الوسائط التي يتم إدخالها (الصور/الفيديو)

عمليات التعداد
MEDIA_RESOLUTION_UNSPECIFIED القيمة التلقائية هذه القيمة غير مستخدَمة.
LOW درجة الدقة منخفضة.
MEDIUM دقة متوسطة
HIGH دقة عالية
ULTRA_HIGH دقة فائقة

MimeType

عمليات التعداد
TYPE_UNSPECIFIED
TYPE_WAV تنسيق الصوت WAV
TYPE_MP3 تنسيق الصوت MP3
TYPE_AIFF تنسيق الصوت AIFF
TYPE_AAC تنسيق الصوت AAC
TYPE_OGG تنسيق الصوت OGG
TYPE_FLAC تنسيق الصوت FLAC
TYPE_MPEG تنسيق الصوت MPEG
TYPE_M4A تنسيق الصوت M4A
TYPE_L16 تنسيق الصوت L16
TYPE_OPUS تنسيق الصوت OPUS
TYPE_ALAW تنسيق الصوت ALAW
TYPE_MULAW تنسيق الصوت MULAW

الوضع

تحدّد هذه السمة عمق جلسة البحث ومدى شموليتها.

عمليات التعداد
MODE_UNSPECIFIED القيمة التلقائية هذه القيمة غير مستخدَمة.
MODE_SCAN فحص سريع باستخدام أداة التصنيف الأولية فقط
MODE_VERIFY يتم إجراء التصنيف ثم التحقيق المفصّل.

NetworkMode

وضع خروج الشبكة لإعدادات غير تلك المُضافة إلى القائمة المسموح بها

عمليات التعداد
NETWORK_MODE_UNSPECIFIED القيمة التلقائية غير مستخدَمة
DISABLED يتم حظر جميع عمليات الخروج من الشبكة.

ResponseModality

تمثّل هذه السمة طريقة عرض الردّ.

عمليات التعداد
RESPONSE_MODALITY_UNSPECIFIED القيمة التلقائية هذه القيمة غير مستخدَمة.
TEXT تشير إلى أنّ النموذج يجب أن يعرض نصًا.
IMAGE تشير إلى أنّ النموذج يجب أن يعرض صورًا.
AUDIO تشير إلى أنّ النموذج يجب أن يعرض صوتًا.
VIDEO تشير إلى أنّ النموذج يجب أن يعرض فيديو.
DOCUMENT تشير إلى أنّ النموذج يجب أن يعرض المستندات.

ReviewSnippet

تتضمّن مقتطفًا من مراجعة مستخدم تجيب عن سؤال حول ميزات مكان معيّن في "خرائط Google".

الحقول
title string

تمثّل هذه السمة عنوان المراجعة.

url string

رابط يتوافق مع مراجعة المستخدم على "خرائط Google".

reviewId string

رقم تعريف مقتطف من المراجعة.

تمثيل JSON
{
  "title": string,
  "url": string,
  "reviewId": string
}

SafetyPolicy

عمليات التعداد
SAFETY_POLICY_UNSPECIFIED سياسة أمان غير محدّدة
FINANCIAL_TRANSACTIONS سياسة الأمان للمعاملات المالية
SENSITIVE_DATA_MODIFICATION سياسة الأمان لتعديل البيانات الحسّاسة
COMMUNICATION_TOOL سياسة الأمان لأدوات التواصل (مثل Gmail وChat وMeet)
ACCOUNT_CREATION سياسة السلامة المتعلّقة بإنشاء الحسابات
DATA_MODIFICATION سياسة الأمان لتعديل البيانات
LEGAL_TERMS_AND_AGREEMENTS سياسة الأمان للأحكام والاتفاقيات القانونية

المخطط

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

الحقول
type enum (Type)

الحقل مطلوب. نوع البيانات

format string

اختياريّ. تنسيق البيانات يُسمح بأي قيمة، ولكنّ معظمها لا يؤدي إلى تشغيل أي وظائف خاصة.

title string

اختياريّ. تمثّل هذه السمة عنوان المخطط.

description string

اختياريّ. وصف موجز للمَعلمة يمكن أن يحتوي ذلك على أمثلة على الاستخدام. قد يتم تنسيق وصف المَعلمة على شكل Markdown.

nullable boolean

اختياريّ. تشير إلى ما إذا كان يمكن أن تكون القيمة فارغة.

enum[] string

اختياريّ. القيم المحتملة لعنصر Type.STRING بتنسيق 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)

اختياريّ. حقول المخطط لنوع STRING الحدّ الأدنى لطول 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

اختياريّ. حقول المخطط من النوع INTEGER وNUMBER الحدّ الأدنى لقيمة النوع INTEGER و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
}

النوع

يحتوي النوع على قائمة بأنواع بيانات OpenAPI كما هو محدّد في https://spec.openapis.org/oas/v3.0.3#data-types

عمليات التعداد
TYPE_UNSPECIFIED لم يتم تحديدها، ويجب عدم استخدامها.
STRING نوع السلسلة
NUMBER نوع الرقم
INTEGER نوع العدد الصحيح
BOOLEAN النوع المنطقي
ARRAY نوع المصفوفة
OBJECT نوع العنصر
NULL نوع القيمة الخالية

نوع البحث

أنواع البحث المستند إلى معلومات أساسية التي يجب تفعيلها.

عمليات التعداد
SEARCH_TYPE_UNSPECIFIED نوع البحث غير محدَّد. يجب عدم استخدام هذه القيمة.

بنية

يمثّل Struct قيمة بيانات منظَّمة تتألف من حقول يتم ربطها بقيم ذات أنواع ديناميكية.

الحقول
fields[] object (Field)

حقول ذات أنواع ديناميكية قائمة بدلاً من خريطة لأنّ النماذج اللغوية الكبيرة حساسة للترتيب، ونريد أن نمنح المستخدمين إمكانية التحكّم الكامل.

تمثيل JSON
{
  "fields": [
    {
      object (Field)
    }
  ]
}

الحقل

تمثّل حقلًا واحدًا في بنية.

الحقول
name string
value object (Value)
تمثيل JSON
{
  "name": string,
  "value": {
    object (Value)
  }
}

المهمة

مهام إنشاء الفيديو المتوافقة

عمليات التعداد
TASK_UNSPECIFIED مهمة غير محدّدة يتم استنتاج المهمة من طلب الإدخال والوسائط.
TEXT_TO_VIDEO ينشئ فيديوهات استنادًا إلى طلب نصي فقط.
IMAGE_TO_VIDEO ينشئ فيديوهات من صورة مصدر واحدة أو اثنتين. تحدّد الصورة الأولى الإطار الأوّلي، وتحدّد الصورة الثانية الاختيارية الإطار النهائي.
REFERENCE_TO_VIDEO تُنشئ فيديوهات باستخدام وسائط مرجعية (مثل الصور أو الصوت أو الفيديو).
EDIT تعدّل هذه الطريقة فيديو إدخال حاليًا.

ThinkingLevel

مستوى الرموز المميزة للأفكار التي يجب أن ينشئها النموذج

عمليات التعداد
THINKING_LEVEL_UNSPECIFIED القيمة التلقائية هذه القيمة غير مستخدَمة.
THINKING_LEVEL_MINIMAL لا يتطلّب الأمر تفكيرًا كبيرًا.
THINKING_LEVEL_LOW مستوى التفكير منخفض.
THINKING_LEVEL_MEDIUM مستوى التفكير المتوسط
THINKING_LEVEL_HIGH مستوى التفكير العالي

ThinkingSummaries

تحديد ما إذا كان سيتم تضمين ملخّصات الأفكار في الردّ.

عمليات التعداد
THINKING_SUMMARIES_UNSPECIFIED القيمة التلقائية هذه القيمة غير مستخدَمة.
THINKING_SUMMARIES_AUTO ملخّصات التفكير التلقائي
THINKING_SUMMARIES_NONE لا تتوفّر ملخّصات التفكير.

الأداة

تفاصيل الأداة التي قد يستخدمها النموذج لإنشاء الرد

Tool هي جزء من الرمز البرمجي يتيح للنظام التفاعل مع أنظمة خارجية لتنفيذ إجراء أو مجموعة من الإجراءات خارج نطاق معرفة النموذج.

المعرّف التالي: 16

الحقول
functionDeclarations[] object (FunctionDeclaration)

اختياريّ. قائمة FunctionDeclarations متاحة للنموذج ويمكن استخدامها في استدعاء الدوال.

لا ينفّذ النموذج أو النظام الوظيفة. بدلاً من ذلك، قد يتم عرض الدالة المحدّدة كـ FunctionCall مع وسيطات من جهة العميل لتنفيذها. قد يقرّر النموذج استدعاء مجموعة فرعية من هذه الدوال عن طريق ملء FunctionCall في الردّ. قد تتضمّن نوبة المحادثة التالية FunctionResponse مع سياق إنشاء Content.role "الوظيفة" لنوبة النموذج التالية.

googleSearchRetrieval object (GoogleSearchRetrieval)

اختياريّ. أداة استرجاع مدعومة من &quot;بحث Google&quot;

codeExecution object (CodeExecution)

اختياريّ. تتيح هذه السمة للنموذج تنفيذ الرمز البرمجي كجزء من عملية الإنشاء.

computerUse object (ComputerUse)

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

urlContext object (UrlContext)

اختياريّ. أداة للمساعدة في استرداد سياق عنوان URL

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، أو أن يحتوي على شرطات سفلية ونقطتين رأسيتين ونقاط وشرطات، وبحد أقصى 128 حرفًا.

description string

الحقل مطلوب. وصف موجز للدالة

behavior enum (Behavior)

اختياريّ. تحدّد هذه السمة سلوك الدالة. لا تتوافق هذه السمة حاليًا إلا مع الطريقة BidiGenerateContent.

parameters object (Schema)

اختياريّ. تصف هذه السمة المَعلمات الخاصة بهذه الدالة. تعكس هذه السمة مفتاح السلسلة "عنصر المَعلمة" في Open API 3.03: اسم المَعلمة. أسماء المَعلمات حسّاسة لحالة الأحرف. قيمة المخطط: المخطط الذي يحدّد النوع المستخدَم للمَعلمة.

parametersJsonSchema value (Value format)

اختياريّ. تصف هذه السمة المَعلمات الخاصة بالدالة بتنسيق JSON Schema. يجب أن يصف المخطط كائنًا تكون خصائصه هي مَعلمات الدالة. على سبيل المثال:

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

لا يمكن استخدام هذا الحقل مع parameters.

response object (Schema)

اختياريّ. تصف هذه السمة الناتج من هذه الدالة بتنسيق JSON Schema. تعكس هذه السمة "عنصر الرد" في Open API 3.03. يحدّد المخطط نوع القيمة المستخدَمة في قيمة استجابة الدالة.

responseJsonSchema value (Value format)

اختياريّ. تصف هذه السمة الناتج من هذه الدالة بتنسيق JSON Schema. القيمة المحدّدة بواسطة المخطط هي قيمة استجابة الدالة.

لا يمكن استخدام هذا الحقل مع 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" في Model من Google

الحقول
timeRangeFilter object (Interval)

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

searchTypes object (SearchTypes)

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

تمثيل JSON
{
  "timeRangeFilter": {
    object (Interval)
  },
  "searchTypes": {
    object (SearchTypes)
  }
}

الفاصل الزمني

يمثّل فاصلاً زمنيًا محدّدًا يتم ترميزه بطابع زمني للبداية (مشمولة) وطابع زمني للنهاية (غير مشمولة).

يجب أن تكون البداية مساوية أو أقدم من النهاية. إذا كانت البداية مساوية للنهاية، يكون الفاصل فارغًا (أي لا يطابق أي وقت). وإذا لم يتم تحديد البداية والنهاية، يطابق الفاصل أي وقت.

الحقول
startTime string (Timestamp format)

اختياريّ. يمثّل بداية الفاصل الزمني (مشمولة).

إذا تم تحديد هذا الحقل، يجب أن يكون أي طابع زمني يطابق هذا الفاصل مساويًا أو لاحقًا لوقت البداية.

يستخدم المعيار RFC 3339، حيث يكون الناتج الذي يتم إنشاؤه مُمثلاً بالتوقيت العالمي المنسَّق مع حرف Z في النهاية ويستخدم الأرقام الجزئية 0 أو 3 أو 6 أو 9. تُقبل أيضًا المعادلات الأخرى التي لا تستخدم حرف 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 في النهاية ويستخدم الأرقام الجزئية 0 أو 3 أو 6 أو 9. تُقبل أيضًا المعادلات الأخرى التي لا تستخدم حرف 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

اختياريّ. يتم تضمين الدوال المحدّدة مسبقًا في طلب النموذج النهائي تلقائيًا. يمكن استبعاد بعضها بشكل صريح من تضمينها تلقائيًا. يمكن أن يخدم ذلك غرضَين: 1. استخدام مساحة إجراءات أكثر تقييدًا أو مختلفة 2. تحسين تعريفات / تعليمات الدوال المحدّدة مسبقًا

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

لا يتضمّن هذا النوع أي حقول.

أداة للمساعدة في استرداد سياق عنوان URL

FileSearch

أداة FileSearch التي تسترجع المعرفة من مجموعات Semantic Retrieval. يتم استيراد الملفات إلى مجموعات Semantic Retrieval باستخدام ImportFile API.

الحقول
fileSearchStoreNames[] string

الحقل مطلوب. أسماء fileSearchStores التي سيتم استردادها. مثلاً: fileSearchStores/my-file-search-store-123

metadataFilter string

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

topK integer

اختياريّ. عدد أجزاء الاسترجاع الدلالي المطلوب استرجاعها.

تمثيل JSON
{
  "fileSearchStoreNames": [
    string
  ],
  "metadataFilter": string,
  "topK": integer
}

McpServer

خادم MCP هو خادم يمكن للنموذج استدعاؤه لتنفيذ إجراءات. وهو خادم ينفّذ بروتوكول MCP. رقم التعريف التالي: 6

الحقول
name string

اسم MCPServer

transport Union type
بروتوكول النقل الذي سيتم استخدامه للاتصال بخادم MCPServer يمكن أن يكون التعليق transport إحدى القيم التالية فقط:
streamableHttpTransport object (StreamableHttpTransport)

نظام نقل يمكنه بث طلبات واستجابات HTTP.

تمثيل JSON
{
  "name": string,

  // transport
  "streamableHttpTransport": {
    object (StreamableHttpTransport)
  }
  // Union type
}

StreamableHttpTransport

نظام نقل يمكنه بث طلبات واستجابات HTTP. رقم التعريف التالي: 6

الحقول
url string

عنوان URL الكامل لنقطة نهاية 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" يتضمّن سياقًا جغرافيًا مكانيًا مرتبطًا بالأماكن التي يشير إليها النموذج في الردّ.

تمثيل JSON
{
  "enableWidget": boolean
}

ToolChoiceType

نوع اختيار الأداة

عمليات التعداد
TOOL_CHOICE_TYPE_UNSPECIFIED القيمة التلقائية هذه القيمة غير مستخدَمة.
AUTO اختيار الأداة المتكيِّف
ANY أي أداة تختارها
NONE لم يتم اختيار أي أداة.
VALIDATED اختيار أداة تم التحقّق من صحتها

القيمة

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

الحقول
kind Union type
نوع القيمة يمكن أن يكون التعليق kind إحدى القيم التالية فقط:
nullValue null

تمثّل قيمة فارغة.

numberValue number

تمثّل قيمة مزدوجة.

stringValue string

تمثّل قيمة سلسلة.

boolValue boolean

تمثّل قيمة منطقية.

structValue object (Struct)

تمثّل قيمة منظَّمة.

listValue object (ListValue)

تمثّل هذه السمة Value متكرّرة.

contentValue object (Content)

يمثّل المحتوى الوافٍ (النص والصورة وما إلى ذلك).

تمثيل JSON
{

  // kind
  "nullValue": null,
  "numberValue": number,
  "stringValue": string,
  "boolValue": boolean,
  "structValue": {
    object (Struct)
  },
  "listValue": {
    object (ListValue)
  },
  "contentValue": {
    object (Content)
  }
  // Union type
}

ListValue

ListValue هو برنامج تضمين حول حقل متكرّر من القيم.

الحقول
values[] object (Value)

حقل متكرّر للقيم ذات الأنواع الديناميكية

تمثيل JSON
{
  "values": [
    {
      object (Value)
    }
  ]
}

VisualizationMode

تعداد لوضع العرض المرئي. سنوفّر في النهاية وضعًا تفاعليًا يمكن للمستخدم من خلاله اختيار ما إذا كان يريد تضمين المحتوى المرئي بتنسيق HTML في الردّ.

عمليات التعداد
UNSPECIFIED وضع العرض المرئي التلقائي سيتم ضبطها تلقائيًا على AUTO.
OFF لا تضمِّن تصورات.
AUTO تضمين التصورات تلقائيًا

مورد REST: ‏ auth_tokens

المورد: AuthToken

طلب لإنشاء رمز مميّز مؤقت للمصادقة

الحقول
name string

النتائج فقط. المعرّف. الرمز المميّز نفسه

expireTime string (Timestamp format)

اختياريّ. الإدخال فقط غير قابل للتغيير وقت اختياري يتم بعده رفض الرسائل في جلسات BidiGenerateContent عند استخدام الرمز المميّز الناتج. (قد يغلق Gemini الجلسة بشكل استباقي بعد هذا الوقت).

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

يستخدم المعيار RFC 3339، حيث يكون الناتج الذي يتم إنشاؤه مُمثلاً بالتوقيت العالمي المنسَّق مع حرف Z في النهاية ويستخدم الأرقام الجزئية 0 أو 3 أو 6 أو 9. تُقبل أيضًا المعادلات الأخرى التي لا تستخدم حرف 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 الجديدة التي تستخدم الرمز المميز الناتج من هذا الطلب

إذا لم يتم ضبط هذا الحقل، سيتم ضبطه تلقائيًا على 60 ثانية في المستقبل. في حال ضبط هذا الحقل، يجب أن تكون القيمة أقل من 20 ساعة في المستقبل.

يستخدم المعيار RFC 3339، حيث يكون الناتج الذي يتم إنشاؤه مُمثلاً بالتوقيت العالمي المنسَّق مع حرف Z في النهاية ويستخدم الأرقام الجزئية 0 أو 3 أو 6 أو 9. تُقبل أيضًا المعادلات الأخرى التي لا تستخدم حرف 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 في هذا الطلب. يتم تجاهل رسالة الإعداد من عملية الربط المباشر بواجهة برمجة التطبيقات.

إذا لم يكن fieldMask فارغًا، ستؤدي الحقول المطابقة من bidiGenerateContentSetup إلى الكتابة فوق الحقول من رسالة الإعداد في عملية الربط بواجهة برمجة التطبيقات المباشرة.

هذه قائمة قيم مفصولة بفاصلة تتضمّن الأسماء المؤهَّلة بالكامل للحقول. مثال: "user.displayName,photo"

config Union type
إعدادات خاصة بطريقة الحصول على الرمز المميز الناتج. يمكن أن يكون التعليق config إحدى القيم التالية فقط:
bidiGenerateContentSetup object (BidiGenerateContentSetup)

اختياريّ. الإدخال فقط غير قابل للتغيير إعدادات خاصة بـ BidiGenerateContent

uses integer

اختياريّ. الإدخال فقط غير قابل للتغيير عدد المرات التي يمكن فيها استخدام الرمز المميز إذا كانت هذه القيمة صفرًا، لن يتم تطبيق أي حدّ. لا يُحتسب استئناف جلسة Live API كاستخدام. إذا لم يتم تحديد قيمة، تكون القيمة التلقائية هي 1.

تمثيل 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)

اختياريّ. تضبط هذه السمة تبادل السجلّ بين العميل والخادم.

تمثيل 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)
  }
}

GenerationConfig

خيارات الإعداد لإنشاء النماذج والمخرجات لا يمكن ضبط جميع المَعلمات لكل نموذج.

الحقول
stopSequences[] string

اختياريّ. مجموعة تسلسلات الأحرف (حتى 5) التي ستؤدي إلى إيقاف إنشاء المخرجات. في حال تحديد هذا الحقل، ستتوقف واجهة برمجة التطبيقات عند ظهور 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 لمزيد من التفاصيل.

_responseJsonSchema
(deprecated)
value (Value format)

اختياريّ. مخطط الناتج للردّ الذي تم إنشاؤه. هذا بديل عن responseSchema يقبل مخطط JSON.

في حال ضبطها، يجب حذف responseSchema، ولكن يجب تضمين responseMimeType.

على الرغم من إمكانية إرسال مخطط JSON الكامل، لا تتوفّر جميع الميزات. على وجه التحديد، لا تتوفّر سوى السمات التالية:

  • $id
  • $defs
  • $ref
  • $anchor
  • type
  • format
  • title
  • description
  • enum (للنصوص والأرقام)
  • items
  • prefixItems
  • minItems
  • maxItems
  • minimum
  • maximum
  • anyOf
  • oneOf (يتم تفسيرها على النحو نفسه الذي يتم به تفسير anyOf)
  • properties
  • additionalProperties
  • required

يمكن أيضًا ضبط السمة غير العادية propertyOrdering.

يتم فك المراجع الدورية إلى حدّ معيّن، وبالتالي لا يمكن استخدامها إلا في السمات غير المطلوبة. (لا تكفي الخصائص التي تقبل القيم الخالية). إذا تم ضبط $ref على مخطط فرعي، لا يمكن ضبط أي خصائص أخرى، باستثناء تلك التي تبدأ بـ $.

responseJsonSchema value (Value format)

اختياريّ. تفصيل داخلي استخدِم responseJsonSchema بدلاً من هذا الحقل.

responseModalities[] enum (Modality)

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

قد يتضمّن النموذج عدة مجموعات من الوسائط المتوافقة. إذا لم تتطابق الوسائط المطلوبة مع أي من المجموعات المتوافقة، سيظهر خطأ.

القائمة الفارغة تعادل طلب النص فقط.

candidateCount integer

اختياريّ. عدد الردود التي تم إنشاؤها والمطلوب عرضها. إذا لم يتم ضبط هذا الحقل، سيتم ضبطه تلقائيًا على 1. يُرجى العِلم أنّ هذه الميزة لا تعمل مع نماذج الجيل السابق (عائلة Gemini 1.0).

maxOutputTokens integer

اختياريّ. الحد الأقصى لعدد الرموز المميّزة التي يمكن تضمينها في ردّ محتمل

ملاحظة: تختلف القيمة التلقائية حسب الطراز، راجِع السمة Model.output_token_limit التي يتم عرضها من Model من الدالة getModel.

temperature number

اختياريّ. تتحكّم هذه السمة في عشوائية الناتج.

ملاحظة: تختلف القيمة التلقائية حسب الطراز، راجِع السمة Model.temperature التي يتم عرضها من Model من الدالة getModel.

يمكن أن تتراوح القيم بين [0.0, 2.0].

topP number

اختياريّ. الحد الأقصى للاحتمال التراكمي للرموز المميّزة التي يجب أخذها في الاعتبار عند أخذ العيّنات.

يستخدم النموذج اختيار العيّنات بناءً على الاحتمال التراكمي وأعلى k احتمال.

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

ملاحظة: تختلف القيمة التلقائية حسب Model ويتم تحديدها من خلال السمة Model.top_p التي تعرضها الدالة getModel. تشير السمة topK الفارغة إلى أنّ النموذج لا يطبّق أخذ العينات من أعلى k ولا يسمح بضبط topK على الطلبات.

topK integer

اختياريّ. الحد الأقصى لعدد الرموز المميّزة التي يجب أخذها في الاعتبار عند أخذ العيّنات

تستخدم نماذج Gemini اختيار العيّنات بناءً على الاحتمال التراكمي أو مزيجًا من اختيار العيّنات بناءً على أعلى k احتمال واختيار العيّنات بناءً على الاحتمال التراكمي. تأخذ عملية أخذ العيّنات من أعلى k رمز مميّز في الاعتبار مجموعة الرموز المميّزة topK الأكثر احتمالاً. لا تسمح النماذج التي تستخدم اختيار العيّنات بناءً على الاحتمال التراكمي بإعداد أعلى K كلمة محتملة.

ملاحظة: تختلف القيمة التلقائية حسب Model ويتم تحديدها من خلال السمة Model.top_p التي تعرضها الدالة getModel. تشير السمة topK الفارغة إلى أنّ النموذج لا يطبّق أخذ العينات من أعلى k ولا يسمح بضبط topK على الطلبات.

seed integer

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

presencePenalty number

اختياريّ. يتم تطبيق عقوبة الحضور على احتمالات تسجيل الرمز المميز التالي إذا سبق أن ظهر الرمز المميز في الردّ.

هذه العقوبة هي عقوبة ثنائية (مفعلة أو غير مفعلة) ولا تعتمد على عدد المرات التي يتم فيها استخدام الرمز المميز (بعد المرة الأولى). استخدِم frequencyPenalty لفرض غرامة تزداد مع كل استخدام.

ستؤدي العقوبة الإيجابية إلى تثبيط استخدام الرموز المميزة التي سبق استخدامها في الرد، ما يزيد من المفردات.

ستشجّع العقوبة السلبية على استخدام الرموز المميزة التي سبق استخدامها في الردّ، ما يؤدي إلى تقليل المفردات.

frequencyPenalty number

اختياريّ. يتم تطبيق عقوبة عدد مرات الظهور على احتمالات تسجيل الرمز المميز التالي، ويتم ضربها في عدد المرات التي ظهر فيها كل رمز مميز في الرد حتى الآن.

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

تنبيه: ستشجّع العقوبة السالبة النموذج على إعادة استخدام الرموز المميزة بما يتناسب مع عدد المرات التي تم فيها استخدام الرمز المميز. ستؤدي القيم السلبية الصغيرة إلى تقليل مفردات الردّ. ستؤدي القيم السالبة الأكبر إلى بدء النموذج في تكرار رمز مميز شائع إلى أن يصل إلى الحدّ الأقصى وهو maxOutputTokens.

responseLogprobs boolean

اختياريّ. إذا كانت القيمة صحيحة، سيتم تصدير نتائج logprobs في الردّ.

logprobs integer

اختياريّ. لا يسري إلا إذا كان responseLogprobs=True. يحدّد هذا المعلمة عدد logprobs الأعلى، بما في ذلك المرشّح المختار، الذي سيتم عرضه في كل خطوة فك ترميز في Candidate.logprobs_result. يجب أن يكون الرقم في النطاق [0, 20].

enableEnhancedCivicAnswers boolean

اختياريّ. تفعيل الإجابات المحسّنة حول المواضيع المدنية قد لا تكون هذه الميزة متاحة لبعض الطُرز.

speechConfig object (SpeechConfig)

اختياريّ. إعدادات إنشاء الكلام

thinkingConfig object (ThinkingConfig)

اختياريّ. إعدادات ميزات التفكير سيتم عرض خطأ إذا تم ضبط هذا الحقل على نماذج لا تتيح التفكير.

imageConfig object (ImageConfig)

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

mediaResolution enum (MediaResolution)

اختياريّ. في حال تحديدها، سيتم استخدام دقة الوسائط المحدّدة.

enableAffectiveDialog boolean

اختياريّ. في حال تفعيل هذا الخيار، سيرصد النموذج المشاعر ويعدّل ردوده وفقًا لذلك.

responseFormat object (ResponseFormatConfig)

اختياريّ. إعدادات تنسيق إخراج الردّ تسمح هذه السمة بتحديد إعدادات الإخراج لكل نمط بيانات (نص أو صوت أو صورة) في بنية مسطّحة.

translationConfig object (TranslationConfig)

اختياريّ. إعدادات الترجمة

تمثيل 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)
  }
}

نمط البيانات

وسائط الردّ المتوافقة

عمليات التعداد
MODALITY_UNSPECIFIED القيمة التلقائية
TEXT تشير إلى أنّ النموذج يجب أن يعرض نصًا.
IMAGE تشير إلى أنّ النموذج يجب أن يعرض صورًا.
AUDIO تشير إلى أنّ النموذج يجب أن يعرض صوتًا.

SpeechConfig

إعدادات إنشاء الصوت وتحويله إلى نص

الحقول
voiceConfig object (VoiceConfig)

الإعداد في حال إخراج صوت واحد

multiSpeakerVoiceConfig object (MultiSpeakerVoiceConfig)

اختياريّ. إعدادات نظام الصوت المتعدد وهو يستبعد الحقل voiceConfig.

languageCode string

اختياريّ. رمز اللغة BCP-47 التابع لفريق هندسة الإنترنت (IETF) والذي ضبطه المستخدم لاستخدامه في التطبيق تُستخدَم للتعرّف على الكلام وتركيبه.

القيم الصالحة هي: 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
تمثّل هذه السمة إعدادات مكبّر الصوت الذي سيتم استخدامه. يمكن أن يكون التعليق voice_config إحدى القيم التالية فقط:
prebuiltVoiceConfig object (PrebuiltVoiceConfig)

إعدادات الصوت المُعدّ مسبقًا الذي سيتم استخدامه

تمثيل JSON
{

  // voice_config
  "prebuiltVoiceConfig": {
    object (PrebuiltVoiceConfig)
  }
  // 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

السماح للمستخدم بتحديد مقدار التفكير باستخدام تعداد بدلاً من ميزانية عدد صحيح

عمليات التعداد
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 تم ضبط دقة الوسائط على منخفضة (64 رمزًا مميزًا).
MEDIA_RESOLUTION_MEDIUM تم ضبط دقة الوسائط على متوسطة (256 رمزًا مميزًا).
MEDIA_RESOLUTION_HIGH تم ضبط دقة الوسائط على عالية (إعادة ضبط الإطار مع تكبير/تصغير باستخدام 256 رمزًا مميزًا).

ResponseFormatConfig

إعدادات تنسيق إخراج الردّ هذا عنصر مسطّح يضبط فيه كل حقل فرعي اختياري طريقة إخراج معيّنة.

الحقول
text object (TextResponseFormat)

اختياريّ. إعدادات تنسيق إخراج النص

audio object (AudioResponseFormat)

اختياريّ. إعدادات تنسيق مصدر إخراج الصوت

image object (ImageResponseFormat)

اختياريّ. إعدادات تنسيق إخراج الصورة

تمثيل JSON
{
  "text": {
    object (TextResponseFormat)
  },
  "audio": {
    object (AudioResponseFormat)
  },
  "image": {
    object (ImageResponseFormat)
  }
}

TextResponseFormat

إعدادات تنسيق إخراج النص

الحقول
mimeType enum (MimeType)

اختياريّ. نوع MIME الخاص بالناتج النصي.

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 تنسيق الصوت Raw 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 نسبة العرض إلى الارتفاع 1:1
ASPECT_RATIO_TWO_BY_THREE نسبة العرض إلى الارتفاع 2:3
ASPECT_RATIO_THREE_BY_TWO نسبة العرض إلى الارتفاع 3:2
ASPECT_RATIO_THREE_BY_FOUR نسبة العرض إلى الارتفاع 3:4
ASPECT_RATIO_FOUR_BY_THREE نسبة العرض إلى الارتفاع 4:3
ASPECT_RATIO_FOUR_BY_FIVE نسبة العرض إلى الارتفاع 4:5
ASPECT_RATIO_FIVE_BY_FOUR نسبة العرض إلى الارتفاع 5:4
ASPECT_RATIO_NINE_BY_SIXTEEN نسبة العرض إلى الارتفاع 9:16
ASPECT_RATIO_SIXTEEN_BY_NINE نسبة العرض إلى الارتفاع: 16:9
ASPECT_RATIO_TWENTY_ONE_BY_NINE نسبة العرض إلى الارتفاع: 21:9
ASPECT_RATIO_ONE_BY_EIGHT نسبة العرض إلى الارتفاع 1:8
ASPECT_RATIO_EIGHT_BY_ONE نسبة العرض إلى الارتفاع 8:1
ASPECT_RATIO_ONE_BY_FOUR نسبة العرض إلى الارتفاع 1:4
ASPECT_RATIO_FOUR_BY_ONE نسبة العرض إلى الارتفاع 4:1

ImageSize

أحجام الصور المتوافقة لإخراج الصور

عمليات التعداد
IMAGE_SIZE_UNSPECIFIED القيمة التلقائية هذه القيمة غير مستخدَمة.
IMAGE_SIZE_FIVE_TWELVE حجم الصورة 512 بكسل
IMAGE_SIZE_ONE_K حجم الصورة 1K
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
}

RealtimeInputConfig

تضبط هذه السياسة سلوك الإدخال في الوقت الفعلي في BidiGenerateContent.

الحقول
automaticActivityDetection object (AutomaticActivityDetection)

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

activityHandling enum (ActivityHandling)

اختياريّ. تحدّد هذه السمة تأثير النشاط.

turnCoverage enum (TurnCoverage)

اختياريّ. تحدّد هذه السمة الإدخال الذي يتم تضمينه في رد المستخدم.

تمثيل JSON
{
  "automaticActivityDetection": {
    object (AutomaticActivityDetection)
  },
  "activityHandling": enum (ActivityHandling),
  "turnCoverage": enum (TurnCoverage)
}

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، بينما يكون TURN_INCLUDES_AUDIO_ACTIVITY_AND_ALL_VIDEO هو الإعداد التلقائي بالنسبة إلى Gemini 3.1 والإصدارات الأحدث.
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
آلية ضغط قدرة الاستيعاب المستخدَمة يمكن أن يكون التعليق compression_mechanism إحدى القيم التالية فقط:
slidingWindow object (SlidingWindow)

آلية النافذة المنزلقة

triggerTokens string (int64 format)

عدد الرموز المميزة (قبل تنفيذ جولة) المطلوبة لتفعيل ضغط نافذة السياق

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

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

تمثيل JSON
{

  // compression_mechanism
  "slidingWindow": {
    object (SlidingWindow)
  }
  // Union type
  "triggerTokens": string
}

SlidingWindow

تعمل طريقة SlidingWindow من خلال تجاهل المحتوى في بداية قدرة الاستيعاب. سيبدأ السياق الناتج دائمًا عند بداية دور المستخدم. ستبقى تعليمات النظام وأي BidiGenerateContentSetup.prefix_turns في بداية النتيجة دائمًا.

الحقول
targetTokens string (int64 format)

عدد الرموز المميزة المستهدَفة التي يجب الاحتفاظ بها. القيمة التلقائية هي triggerTokens/2.

يؤدي تجاهل أجزاء من قدرة الاستيعاب إلى زيادة مؤقتة في وقت الاستجابة، لذا يجب معايرة هذه القيمة لتجنُّب عمليات الضغط المتكررة.

تمثيل JSON
{
  "targetTokens": string
}

AudioTranscriptionConfig

إعدادات تحويل الصوت إلى نص

الحقول
adaptationPhrases[]
(deprecated)
string

اختياريّ. قائمة بالعبارات المستخدَمة لتكييف الكلام، ما يؤدي إلى تحسين نموذج التعرّف التلقائي على الكلام (ASR) للتعرّف على هذه المصطلحات المحدّدة.

customVocabulary[] string

اختياريّ. قائمة بعبارات المفردات المخصّصة لتوجيه نموذج التعرّف على الكلام نحو التعرّف على مصطلحات معيّنة (أسماء المنتجات والأسماء الصحيحة والمصطلحات الفنية).

language_config Union type
إعدادات اللغة لتحويل الصوت إلى نص بالنسبة إلى نماذج التعرّف التلقائي على الكلام، يجب ضبط هذه السمة، وإلا سيتم عرض رسالة خطأ. يمكن أن يكون التعليق language_config إحدى القيم التالية فقط:
languageAuto object (LanguageAuto)

اختياريّ. سيتعرّف النموذج على اللغة تلقائيًا.

languageHints object (LanguageHints)

اختياريّ. تحدّد هذه السمة لغة واحدة أو أكثر في الصوت.

تمثيل JSON
{
  "adaptationPhrases": [
    string
  ],
  "customVocabulary": [
    string
  ],

  // language_config
  "languageAuto": {
    object (LanguageAuto)
  },
  "languageHints": {
    object (LanguageHints)
  }
  // Union type
}

LanguageAuto

لا يتضمّن هذا النوع أي حقول.

تشير إلى أنّه يجب التعرّف تلقائيًا على لغة الصوت.

LanguageHints

تقدّم تلميحات للنموذج بشأن اللغات المحتملة في الصوت.

الحقول
languageCodes[] string

الحقل مطلوب. رموز اللغة BCP-47

تمثيل JSON
{
  "languageCodes": [
    string
  ]
}

HistoryConfig

إعدادات السجلّ

يتم تضمين هذه الرسالة في إعدادات الجلسة على النحو التالي: BidiGenerateContentSetup.history_config. تضبط هذه السمة تبادل رسائل السجلّ.

الحقول
initialHistoryInClientContent boolean

اختياريّ. إذا كانت القيمة true، سينتظر الخادم بعد إرسال setupComplete، وسيعالج أولاً clientContent رسالة إلى أن تصبح قيمة turnComplete هي true. لن يؤدي هذا السجلّ الأوّلي إلى بدء مكالمة مع النموذج، وقد ينتهي بالدور MODEL. بعد turnComplete، يتم عرض true، ويمكن للعميل بدء المحادثة في الوقت الفعلي من خلال realtimeInput.

تمثيل JSON
{
  "initialHistoryInClientContent": boolean
}

الطريقة: auth_tokens.create

تنشئ هذه الدالة رمزًا مميزًا يمكن استخدامه لتقييد سلوك جلسة BidiGenerateContent.

نقطة نهاية

post https://generativelanguage.googleapis.com/v1beta/auth_tokens

نص الطلب

يحتوي نص الطلب على مثال AuthToken.

الحقول
expireTime string (Timestamp format)

اختياريّ. الإدخال فقط غير قابل للتغيير وقت اختياري يتم بعده رفض الرسائل في جلسات BidiGenerateContent عند استخدام الرمز المميّز الناتج. (قد يغلق Gemini الجلسة بشكل استباقي بعد هذا الوقت).

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

يستخدم المعيار RFC 3339، حيث يكون الناتج الذي يتم إنشاؤه مُمثلاً بالتوقيت العالمي المنسَّق مع حرف Z في النهاية ويستخدم الأرقام الجزئية 0 أو 3 أو 6 أو 9. تُقبل أيضًا المعادلات الأخرى التي لا تستخدم حرف 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 الجديدة التي تستخدم الرمز المميز الناتج من هذا الطلب

إذا لم يتم ضبط هذا الحقل، سيتم ضبطه تلقائيًا على 60 ثانية في المستقبل. في حال ضبط هذا الحقل، يجب أن تكون القيمة أقل من 20 ساعة في المستقبل.

يستخدم المعيار RFC 3339، حيث يكون الناتج الذي يتم إنشاؤه مُمثلاً بالتوقيت العالمي المنسَّق مع حرف Z في النهاية ويستخدم الأرقام الجزئية 0 أو 3 أو 6 أو 9. تُقبل أيضًا المعادلات الأخرى التي لا تستخدم حرف 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 في هذا الطلب. يتم تجاهل رسالة الإعداد من عملية الربط المباشر بواجهة برمجة التطبيقات.

إذا لم يكن fieldMask فارغًا، ستؤدي الحقول المطابقة من bidiGenerateContentSetup إلى الكتابة فوق الحقول من رسالة الإعداد في عملية الربط بواجهة برمجة التطبيقات المباشرة.

هذه قائمة قيم مفصولة بفاصلة تتضمّن الأسماء المؤهَّلة بالكامل للحقول. مثال: "user.displayName,photo"

config Union type
إعدادات خاصة بطريقة الحصول على الرمز المميز الناتج. يمكن أن يكون التعليق config إحدى القيم التالية فقط:
bidiGenerateContentSetup object (BidiGenerateContentSetup)

اختياريّ. الإدخال فقط غير قابل للتغيير إعدادات خاصة بـ BidiGenerateContent

uses integer

اختياريّ. الإدخال فقط غير قابل للتغيير عدد المرات التي يمكن فيها استخدام الرمز المميز إذا كانت هذه القيمة صفرًا، لن يتم تطبيق أي حدّ. لا يُحتسب استئناف جلسة Live API كاستخدام. إذا لم يتم تحديد قيمة، تكون القيمة التلقائية هي 1.

نص الاستجابة

إذا كانت الاستجابة ناجحة، سيحتوي نصها على مثال تم إنشاؤه حديثًا AuthToken.