Gemini 3.5 Flash में नया क्या है

Gemini 3.5 Flash, सामान्य तौर पर उपलब्ध (जीए) है. यह स्टेबल है और बड़े पैमाने पर प्रोडक्शन में इस्तेमाल किया जा सकता है. यह हमारा सबसे बेहतरीन Flash मॉडल है. यह एजेंटिक एक्ज़ीक्यूशन, कोडिंग, और लंबे समय तक चलने वाले टास्क में, बड़े पैमाने पर बेहतरीन परफ़ॉर्मेंस देता है.

इस गाइड में, Gemini 3.5 Flash में किए गए सुधारों, एपीआई में हुए बदलावों, और माइग्रेशन के बारे में जानकारी दी गई है.

नया मॉडल

मॉडल मॉडल आईडी ब्यौरा
Gemini 3.5 Flash gemini-3.5-flash यह हमारा सबसे बेहतरीन मॉडल है. यह एजेंटिक और कोडिंग से जुड़े टास्क में, बड़े पैमाने पर बेहतरीन परफ़ॉर्मेंस देता है.

Gemini 3.5 Flash, 10 लाख टोकन वाली कॉन्टेक्स्ट विंडो, ज़्यादा से ज़्यादा 65 हज़ार आउटपुट टोकन, सूझ-बूझ वाली सुविधा, और Gemini 3 Flash के जैसे ही टूल और प्लैटफ़ॉर्म की सुविधाओं के साथ काम करता है. फ़िलहाल, कंप्यूटर पर इस्तेमाल करने की सुविधा उपलब्ध नहीं है.

पूरी जानकारी के लिए, मॉडल की खास जानकारी देखें. कीमत की जानकारी के लिए, कीमत तय करने से जुड़ा पेज देखें.

क्विकस्टार्ट

इस गाइड में दिए गए सभी उदाहरणों में, GenerateContent API का इस्तेमाल किया गया है. Interactions API भी काम करता है. इसके लिए भी, कॉन्फ़िगरेशन के वही विकल्प और सुझाव लागू होते हैं.

Python

from google import genai

client = genai.Client()

response = client.models.generate_content(
    model="gemini-3.5-flash",
    contents="Explain how parallel agentic execution works in three sentences.",
)
print(response.text)

JavaScript

import { GoogleGenAI } from "@google/genai";

const ai = new GoogleGenAI({});

async function main() {
  const response = await ai.models.generateContent({
    model: "gemini-3.5-flash",
    contents: "Explain how parallel agentic execution works in three sentences.",
  });
  console.log(response.text);
}

main();

REST

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.5-flash:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H 'Content-Type: application/json' \
  -X POST \
  -d '{
    "contents": [{
      "parts": [{"text": "Explain how parallel agentic execution works in three sentences."}]
    }]
  }'

नया क्या है

  • बेहतरीन परफ़ॉर्मेंस: यह हमारा सबसे बेहतरीन Flash मॉडल है. इसे एजेंटिक और कोडिंग से जुड़े टास्क में, बड़े पैमाने पर बेहतरीन परफ़ॉर्मेंस देने के लिए ऑप्टिमाइज़ किया गया है.
  • एजेंटिक एक्ज़ीक्यूशन: सब-एजेंट डिप्लॉयमेंट, समस्या हल करना, और बड़े पैमाने पर तेज़ी से एजेंटिक लूप बनाना.
  • कोडिंग: कोडिंग के बार-बार होने वाले साइकल, तेज़ी से एक्सप्लोर करना, और प्रोटोटाइप बनाना, ताकि अलग-अलग पाथ को टेस्ट किया जा सके और डाइनैमिक तरीके से समाधान खोजे जा सकें.
  • लंबे समय तक चलने वाले टास्क: मल्टी-स्टेप वर्कफ़्लो और बड़े पैमाने पर टूल का इस्तेमाल.
  • सोचने की प्रोसेस को सेव करना: मॉडल, कई राउंड वाली बातचीत में, बीच-बीच में की गई रीज़निंग को अपने-आप सेव करता है. एपीआई में कोई बदलाव करने की ज़रूरत नहीं है.
  • कोशिश का नया डिफ़ॉल्ट लेवल: सोचने की कोशिश का डिफ़ॉल्ट लेवल, high से बदलकर medium कर दिया गया है. ज़्यादा जानकारी के लिए, कोशिश का नया डिफ़ॉल्ट लेवल देखें.
  • बेहतर low तरीके से सोचना: low लेवल पर, अब कोड और एजेंटिक टास्क के लिए काफ़ी सुधार किया गया है. इन टास्क को कम चरणों में पूरा किया जा सकता है. इससे कम लेटेन्सी और लागत में बेहतर क्वालिटी मिलती है.
  • जीए रिलीज़: बड़े पैमाने पर प्रोडक्शन में इस्तेमाल के लिए स्टेबल मॉडल.

व्यवहार में हुए बदलाव

कोशिश का नया डिफ़ॉल्ट लेवल: medium

सोचने की कोशिश का डिफ़ॉल्ट लेवल अब medium है. इसे Gemini 3 Flash Preview में high से बदलकर किया गया है. medium लेवल पर, कई तरह के टास्क में बहुत अच्छे नतीजे मिलते हैं. साथ ही, यह ज़्यादा तेज़ और किफ़ायती भी है. मुश्किल समस्याओं के लिए, high लेवल पर मॉडल ज़्यादा गहराई से सोचता है.

कोशिश का लेवल कब इस्तेमाल करें
minimal जवाब देने की स्पीड के लिए ऑप्टिमाइज़ किया गया. चैट जैसे इस्तेमाल के उदाहरण, सटीक जानकारी वाले तुरंत जवाब, आसान टूल कॉल.
low कोड और एजेंटिक टास्क के लिए, जिनमें कम लेटेन्सी और कम चरणों की ज़रूरत होती है. यह विश्लेषण और लिखने से जुड़े उन टास्क के लिए भी अच्छा काम करता है जिनमें कुछ सोचने की ज़रूरत होती है.
medium (डिफ़ॉल्ट) ज़्यादातर टास्क के लिए सबसे अच्छी क्वालिटी. मुश्किल कोड और एजेंटिक इस्तेमाल के उदाहरणों के लिए सुझाव दिया जाता है.
high मॉडल की सोचने और टूल इस्तेमाल करने की क्षमता को बढ़ाता है. मुश्किल रीज़निंग, मुश्किल गणित, और सबसे मुश्किल कोड या एजेंट टास्क के लिए सबसे अच्छा है. इससे ज़्यादा समय तक सोचने और फ़ंक्शन कॉल करने की अनुमति मिलती है.

डिफ़ॉल्ट सेटिंग को बदलने के लिए, अपने कॉन्फ़िगरेशन में thinking_level सेट करें:

Python

from google import genai
from google.genai import types

client = genai.Client()

response = client.models.generate_content(
    model="gemini-3.5-flash",
    contents="Prove that the square root of 2 is irrational.",
    config=types.GenerateContentConfig(
        thinking_config=types.ThinkingConfig(thinking_level="high")
    ),
)

print(response.text)

JavaScript

import { GoogleGenAI } from "@google/genai";

const ai = new GoogleGenAI({});

async function main() {
  const response = await ai.models.generateContent({
    model: "gemini-3.5-flash",
    contents: "Prove that the square root of 2 is irrational.",
    config: {
      thinkingConfig: {
        thinkingLevel: "HIGH",
      },
    },
  });
  console.log(response.text);
}

main();

REST

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.5-flash:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H 'Content-Type: application/json' \
  -X POST \
  -d '{
    "contents": [{
      "parts": [{"text": "Prove that the square root of 2 is irrational."}]
    }],
    "generationConfig": {
      "thinkingConfig": {
        "thinkingLevel": "HIGH"
      }
    }
  }'

सोचने की प्रोसेस को सेव करना

मॉडल, कई राउंड वाली बातचीत में, बीच-बीच में की गई रीज़निंग को अपने-आप सेव करता है. बातचीत के इतिहास में मौजूद होने पर, रीज़निंग कॉन्टेक्स्ट आगे बढ़ता है. इससे, मुश्किल मल्टी-स्टेप टास्क में परफ़ॉर्मेंस बेहतर होती है. जैसे, बार-बार डीबग करना और कोड को रीफ़ैक्टर करना. एपीआई में कोई बदलाव करने की ज़रूरत नहीं है:

  • Interactions API: इसमें, सोचने की प्रोसेस अपने-आप सेव हो जाती है. व्यवहार में कोई बदलाव नहीं हुआ है.
  • GenerateContent API: Gemini 3.5 Flash से, मॉडल बातचीत के इतिहास में मौजूद सभी पिछले राउंड के रीज़निंग कॉन्टेक्स्ट का इस्तेमाल करता है, जब बातचीत के इतिहास में सोचने के सिग्नेचर मौजूद होते हैं. इसे चालू करने के लिए, बातचीत का पूरा, बिना बदलाव वाला इतिहास (सोचने के सिग्नेचर शामिल हैं) contents में पास करें. एसडीके, इसे अपने-आप हैंडल करते हैं.

Gemini 3.x में पैरामीटर के अपडेट और सबसे सही तरीके

ये Gemini 3.x के सभी मॉडल पर लागू होते हैं. इनमें Gemini 3.5 Flash भी शामिल है.

  • temperature, top_p, top_k: हमारा सुझाव है कि डिफ़ॉल्ट वैल्यू में बदलाव न करें. Gemini 3 की रीज़निंग की क्षमताओं को डिफ़ॉल्ट सेटिंग के लिए ऑप्टिमाइज़ किया गया है.
  • thinking_budget के बजाय, thinking_level का इस्तेमाल करें.
  • फ़ंक्शन कॉल के जवाब का मिलान: id, name, और जवाब की संख्या पहले किए गए कॉल से मैच होनी चाहिए.
  • मल्टीमोडल फ़ंक्शन के जवाब: मल्टीमोडल कॉन्टेंट को फ़ंक्शन के जवाब में शामिल करें, न कि उसके बाहर.
  • फ़ंक्शन के जवाबों में इनलाइन निर्देश: इन्हें फ़ंक्शन के जवाब के टेक्स्ट में जोड़ें, न कि अलग-अलग हिस्सों के तौर पर.
  • टूल कॉल की संख्या कम करें: एजेंटिक वर्कफ़्लो में टूल कॉल की संख्या कम करने के लिए, सोचने के कम लेवल का इस्तेमाल करें या सिस्टम के निर्देशों के साथ एक्सपेरिमेंट करें.

अपना कोड अपडेट करने का तरीका जानने के लिए, नीचे दिए गए सेक्शन देखें.

सैंपलिंग पैरामीटर (अब इनका इस्तेमाल करने का सुझाव नहीं दिया जाता)

Gemini 3.x के सभी मॉडल के लिए, temperature, top_p, और top_k का इस्तेमाल करने का सुझाव नहीं दिया जाता. Gemini 3 की रीज़निंग की क्षमताओं को डिफ़ॉल्ट सेटिंग के लिए ऑप्टिमाइज़ किया गया है. सभी अनुरोधों से इन पैरामीटर को हटाएं.

# ⚠️ Remove these parameters (not recommended)
config = types.GenerateContentConfig(
    temperature=0.7,
    top_p=0.9,
    top_k=40
)

डिटरमिनिज़म पक्का करने के लिए, हमारा सुझाव है कि आप अपने इस्तेमाल के खास उदाहरण के लिए, साफ़ तौर पर नियम तय करने वाला सिस्टम निर्देश तय करें.

thinking_budget (अब इसका इस्तेमाल करने का सुझाव नहीं दिया जाता)

Gemini 3.x के सभी मॉडल के लिए, thinking_budget पैरामीटर के तौर पर रॉ न्यूमेरिक वैल्यू का इस्तेमाल करने का सुझाव नहीं दिया जाता. इसके बजाय, thinking_level स्ट्रिंग एनम का इस्तेमाल करें.

# ⚠️ Before (not recommended)
config = types.GenerateContentConfig(
    thinking_config=types.ThinkingConfig(thinking_budget=7500)
)

# ✅ After
config = types.GenerateContentConfig(
    thinking_config=types.ThinkingConfig(thinking_level="medium")
)

उपलब्ध वैल्यू: minimal, low, medium (डिफ़ॉल्ट), और high.

फ़ंक्शन कॉल करना: जवाब का सटीक मिलान

Interactions API, फ़ंक्शन के जवाबों के मैच न होने पर पहले से ही गड़बड़ी दिखाता है. GenerateContent API, फ़िलहाल गड़बड़ी नहीं दिखाता. हालांकि, जवाबों के मैच न होने पर, मॉडल ज़्यादातर मामलों में finish_reason: STOP के साथ खाली जवाब देता है. हमेशा इन कन्वेंशन का पालन करें:

आवश्यकता विवरण
id शामिल करें हर FunctionResponse में, उससे जुड़े FunctionCall का id शामिल होना चाहिए
name मैच होना चाहिए जवाब में मौजूद name, कॉल में मौजूद name से मैच होना चाहिए
संख्याएं मैच होनी चाहिए हर FunctionCall के लिए, ठीक एक FunctionResponse लौटाएं

Python

# ✅ Include matching id and name in the function response
final_response = client.models.generate_content(
    model="gemini-3.5-flash",
    config=config,
    contents=[
        *previous_contents,
        response.candidates[0].content,
        types.Content(role="user", parts=[
            types.Part.from_function_response(
                name=tool_call.name,
                response={"result": result},
                id=tool_call.id,
            )
        ]),
    ],
)

JavaScript

// ✅ Include matching id and name in the function response
const functionResponsePart = {
  functionResponse: {
    name: toolCall.name,
    response: { result: result },
    id: toolCall.id,
  },
};

const finalResponse = await ai.models.generateContent({
  model: "gemini-3.5-flash",
  contents: [
    ...previousContents,
    { role: "model", parts: [{ functionCall: toolCall }] },
    { role: "user", parts: [functionResponsePart] },
  ],
  config: config,
});

REST

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.5-flash:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H 'Content-Type: application/json' \
  -X POST \
  -d '{
    "contents": [
      {"role": "user", "parts": [{"text": "..."}]},
      {"role": "model", "parts": [{"functionCall": {"name": "my_function", "args": {...}}}]},
      {"role": "user", "parts": [{"functionResponse": {"name": "my_function", "id": "call_id", "response": {"result": "..."}}}]}
    ]
  }'

मल्टीमोडल फ़ंक्शन के जवाब

हम अक्सर देखते हैं कि क्लाइंट, फ़ंक्शन के जवाब के बाहर इमेज देते हैं. इससे मॉडल का व्यवहार उम्मीद के मुताबिक नहीं होता.जैसे, सोचने की प्रोसेस लीक होना. साथ ही, इससे आउटपुट की क्वालिटी भी कम हो सकती है. इसके बजाय, मल्टीमोडल फ़ंक्शन के जवाबों के एपीआई से जुड़े दस्तावेज़ों में दिए गए सुझाव का पालन करें. साथ ही, मॉडल को भेजे जाने वाले फ़ंक्शन के जवाब के हिस्सों में मल्टीमोडल कॉन्टेंट शामिल करें. मॉडल, ज़्यादा जानकारी वाला जवाब देने के लिए, अपने अगले राउंड में इस मल्टीमोडल कॉन्टेंट को प्रोसेस कर सकता है.

Python

# ✅ Include multimodal content in the function response
final_response = client.models.generate_content(
    model="gemini-3.5-flash",
    config=config,
    contents=[
        *previous_contents,
        response.candidates[0].content,
        types.Content(role="user", parts=[
            types.Part.from_function_response(
                name=tool_call.name,
                response={
                    "result": "instrument.jpg",
                    "image": base64_image_data,
                },
                id=tool_call.id,
            )
        ]),
    ],
)

JavaScript

// ✅ Include multimodal content in the function response
const finalResponse = await ai.models.generateContent({
  model: "gemini-3.5-flash",
  contents: [
    ...previousContents,
    { role: "model", parts: [{ functionCall: toolCall }] },
    {
      role: "user",
      parts: [{
        functionResponse: {
          name: toolCall.name,
          id: toolCall.id,
          response: {
            result: "instrument.jpg",
            image: base64ImageData,
          },
        },
      }],
    },
  ],
  config: config,
});

फ़ंक्शन के जवाबों में इनलाइन निर्देश

हम अक्सर देखते हैं कि क्लाइंट, फ़ंक्शन के जवाबों के साथ-साथ, बाद के Parts के तौर पर अतिरिक्त निर्देश देते हैं. इससे मॉडल का व्यवहार उम्मीद के मुताबिक नहीं होता.जैसे, सोचने की प्रोसेस लीक होना. साथ ही, इससे आउटपुट की क्वालिटी भी कम हो सकती है. इसके बजाय, दो नई लाइनों से अलग करके, फ़ंक्शन के जवाब के टेक्स्ट के आखिर में कोई भी अतिरिक्त निर्देश जोड़ें.

Python

# ✅ Append inline instructions to the end of the function response separated by two newlines
result_text = f"{json.dumps(result)}\n\n<your inline instructions>"

final_response = client.models.generate_content(
    model="gemini-3.5-flash",
    config=config,
    contents=[
        *previous_contents,
        response.candidates[0].content,
        types.Content(role="user", parts=[
            types.Part.from_function_response(
                name=tool_call.name,
                response={"result": result_text},
                id=tool_call.id,
            )
        ]),
    ],
)

JavaScript

// ✅ Append inline instructions to the end of the function response separated by two newlines
const resultText = `${JSON.stringify(result)}\n\n<your inline instructions>`;

const finalResponse = await ai.models.generateContent({
  model: "gemini-3.5-flash",
  contents: [
    ...previousContents,
    { role: "model", parts: [{ functionCall: toolCall }] },
    {
      role: "user",
      parts: [{
        functionResponse: {
          name: toolCall.name,
          id: toolCall.id,
          response: { result: resultText },
        },
      }],
    },
  ],
  config: config,
});

टूल कॉल की संख्या कम करना

अगर आपको टूल कॉल का ज़्यादा इस्तेमाल करने की समस्या आ रही है, तो इन दो तकनीकों से इसे कम किया जा सकता है:

  1. सोचने के लेवल को कम करके शुरू करें (medium, low, या minimal): सोचने के ज़्यादा लेवल पर, मॉडल एक्सप्लोर करने और पुष्टि करने के लिए ज़्यादा टूल का इस्तेमाल करता है. इसलिए, लेवल कम करने से टूल कॉल की संख्या कम हो सकती है.

  2. सिस्टम का निर्देश जोड़ें: अगर सोचने के लेवल को अडजस्ट करने के बाद भी, टूल कॉल का ज़्यादा इस्तेमाल जारी रहता है, तो ऐसा प्रॉम्प्ट इस्तेमाल करें जो टूल के इस्तेमाल को सीमित करता हो. उदाहरण के लिए:

    You have a limited action budget of <n> tool calls. Use them efficiently.
    

माइग्रेशन की चेकलिस्ट

Gemini 3 Flash Preview से माइग्रेट करना

  • मॉडल का नाम अपडेट करें: gemini-3-flash-previewgemini-3.5-flash
  • कीमत की समीक्षा करें. Gemini 3.5 Flash, Gemini 3 Flash Preview से ज़्यादा महंगा है. ज़्यादा जानकारी के लिए, कीमत तय करने से जुड़ा पेज देखें.
  • अपने कॉन्फ़िगरेशन से temperature, top_p, top_k हटाएं. अब इनका इस्तेमाल करने का सुझाव नहीं दिया जाता.
  • thinking_budget को thinking_level से बदलें.
  • FunctionResponse के सभी हिस्सों में id और उससे मैच करने वाला name जोड़ें.
  • अपने प्रॉम्प्ट की जांच करें. कोशिश का डिफ़ॉल्ट लेवल, high से बदलकर medium कर दिया गया है. क्वालिटी, स्पीड, और लागत की पुष्टि करें.
  • सोचने की प्रोसेस को सेव करने की सुविधा, अब डिफ़ॉल्ट रूप से चालू है. रीज़निंग कॉन्टेक्स्ट, राउंड के हिसाब से आगे बढ़ता है. इससे परफ़ॉर्मेंस बेहतर होती है, लेकिन टोकन का इस्तेमाल बढ़ सकता है.
  • टूल कॉल की संख्या कम करें: सोचने के लेवल को कम करके शुरू करें (medium, low, या minimal). अगर टूल कॉल का ज़्यादा इस्तेमाल जारी रहता है, तो टूल के इस्तेमाल को सीमित करने के लिए, सिस्टम का निर्देश जोड़ें.
  • फ़िलहाल, Gemini 3.5 Flash में कंप्यूटर पर इस्तेमाल करने की सुविधा उपलब्ध नहीं है. कंप्यूटर पर इस्तेमाल करने से जुड़े वर्कलोड के लिए, Gemini 3 Flash Preview का इस्तेमाल जारी रखें.

Gemini 2.5 से माइग्रेट करना

ऊपर दी गई सभी बातें लागू होती हैं. इसके अलावा:

  • प्रॉम्प्ट को आसान बनाएं. अगर आपने रीज़निंग को फ़ोर्स करने के लिए, चेन-ऑफ़-थॉट प्रॉम्प्ट इंजीनियरिंग का इस्तेमाल किया है, तो इसके बजाय आसान प्रॉम्प्ट के साथ thinking_level: "medium" या "high" आज़माएं.
  • पीडीएफ़ और मीडिया के वर्कलोड की जांच करें. अगर आपने घने दस्तावेज़ को पार्स करने के लिए, किसी खास व्यवहार पर भरोसा किया है, तो सटीक जानकारी मिलती रहे, इसके लिए media_resolution_high सेटिंग की जांच करें. Gemini 3 की डिफ़ॉल्ट सेटिंग पर माइग्रेट करने से, पीडीएफ़ के लिए टोकन का इस्तेमाल बढ़ सकता है, लेकिन वीडियो के लिए कम हो सकता है. अगर अनुरोध, कॉन्टेक्स्ट विंडो से ज़्यादा हैं, तो साफ़ तौर पर media_resolution कम करें. ज़्यादा जानकारी के लिए, मीडिया रिज़ॉल्यूशन से जुड़े दस्तावेज़ देखें.
  • टूल के मिले-जुले इस्तेमाल का फ़ायदा लें. एक ही अनुरोध में, Google Search, यूआरएल कॉन्टेक्स्ट, कोड एक्ज़ीक्यूशन, और कस्टम फ़ंक्शन का इस्तेमाल किया जा सकता है.
  • अगर मल्टीमोडल फ़ंक्शन के जवाबों का इस्तेमाल किया जा रहा है, तो मल्टीमोडल कॉन्टेंट को फ़ंक्शन के जवाब के हिस्सों में शामिल करें, न कि उनके साथ.
  • अगर फ़ंक्शन के जवाबों के साथ इनलाइन निर्देशों का इस्तेमाल किया जा रहा है, तो उन्हें दो नई लाइनों से अलग करके, फ़ंक्शन के जवाब के टेक्स्ट में जोड़ें, न कि अलग-अलग हिस्सों के तौर पर.
  • Gemini 3.x में, इमेज सेगमेंटेशन की सुविधा उपलब्ध नहीं है. सेगमेंटेशन के वर्कलोड के लिए, Gemini 2.5 Flash का इस्तेमाल जारी रखें. इसमें सोचने की सुविधा बंद होनी चाहिए. इसके अलावा, Gemini Robotics-ER 1.6 का इस्तेमाल भी किया जा सकता है.

Gemini 3 फ़ैमिली की सुविधाएं

Gemini 3.5 Flash में, Gemini 3 फ़ैमिली की सभी सुविधाएं मिलती हैं. हालांकि, इसमें कंप्यूटर पर इस्तेमाल करने की सुविधा उपलब्ध नहीं है. Gemini 3 में जोड़ी गई वे सुविधाएं जो आगे भी उपलब्ध रहेंगी:

अगले चरण