Gemini 2.5 Flash ‘thinking_level not supported’ ์˜ค๋ฅ˜์˜ 3๊ฐ€์ง€ ๊ทผ๋ณธ ์›์ธ

gemini-2.5-flash๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ Thinking level is not supported for this model ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”๋ฐ, gemini-3-flash-preview๋กœ ๋ฐ”๊พธ๋ฉด ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋‚˜์š”? ์ด๋Š” Google Gemini API๊ฐ€ ๋ชจ๋ธ ์„ธ๋Œ€ ์—…๊ทธ๋ ˆ์ด๋“œ ๊ณผ์ •์—์„œ ๋„์ž…ํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ ์„ค๊ณ„์˜ ๋ณ€ํ™” ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” Gemini 2.5์™€ 3.0์˜ ์‚ฌ๊ณ  ๋ชจ๋“œ ํŒŒ๋ผ๋ฏธํ„ฐ ์ง€์›์— ๊ด€ํ•œ ๊ทผ๋ณธ์ ์ธ ์ฐจ์ด์ ์„ ์ฒด๊ณ„์ ์œผ๋กœ ๋ถ„์„ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

ํ•ต์‹ฌ ๊ฐ€์น˜: ์ด ๊ธ€์„ ์ฝ๊ณ  ๋‚˜๋ฉด Gemini 2.5์™€ 3.0 ์‹œ๋ฆฌ์ฆˆ ๋ชจ๋ธ์˜ ์‚ฌ๊ณ  ๋ชจ๋“œ ํŒŒ๋ผ๋ฏธํ„ฐ ์„ค๊ณ„์— ๋‹ด๊ธด ๋ณธ์งˆ์ ์ธ ์ฐจ์ด๋ฅผ ์ดํ•ดํ•˜๊ณ , ์˜ฌ๋ฐ”๋ฅธ ํŒŒ๋ผ๋ฏธํ„ฐ ์„ค์ • ๋ฐฉ๋ฒ•์„ ์ตํ˜€ ํŒŒ๋ผ๋ฏธํ„ฐ ํ˜ผ์šฉ์œผ๋กœ ์ธํ•œ API ํ˜ธ์ถœ ์‹คํŒจ๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

gemini-2-5-flash-thinking-level-not-supported-ko ๅ›พ็คบ

Gemini ์‚ฌ๊ณ  ๋ชจ๋“œ ํŒŒ๋ผ๋ฏธํ„ฐ ์ง„ํ™” ํ•ต์‹ฌ ์š”์ 

๋ชจ๋ธ ์‹œ๋ฆฌ์ฆˆ ์ง€์› ํŒŒ๋ผ๋ฏธํ„ฐ ํŒŒ๋ผ๋ฏธํ„ฐ ํƒ€์ž… ์‚ฌ์šฉ ๊ฐ€๋Šฅ ๋ฒ”์œ„ ๊ธฐ๋ณธ๊ฐ’ ๋น„ํ™œ์„ฑํ™” ๊ฐ€๋Šฅ ์—ฌ๋ถ€
Gemini 2.5 Pro thinking_budget ์ •์ˆ˜ (128-32768) ์ •๋ฐ€ํ•œ ํ† ํฐ ์˜ˆ์‚ฐ 8192 โŒ ๋น„ํ™œ์„ฑํ™” ๋ถˆ๊ฐ€
Gemini 2.5 Flash thinking_budget ์ •์ˆ˜ (0-24576) ๋˜๋Š” -1 ์ •๋ฐ€ํ•œ ํ† ํฐ ์˜ˆ์‚ฐ ๋˜๋Š” ๋™์  -1 (๋™์ ) โœ… ๋น„ํ™œ์„ฑํ™” ๊ฐ€๋Šฅ (0์œผ๋กœ ์„ค์ •)
Gemini 2.5 Flash-Lite thinking_budget ์ •์ˆ˜ (512-24576) ์ •๋ฐ€ํ•œ ํ† ํฐ ์˜ˆ์‚ฐ 0 (๋น„ํ™œ์„ฑํ™”) โœ… ๊ธฐ๋ณธ ๋น„ํ™œ์„ฑํ™”
Gemini 3.0 Pro thinking_level ์—ด๊ฑฐํ˜• ("low"/"high") ์‹œ๋งจํ‹ฑ ๋ ˆ๋ฒจ "high" โŒ ์™„์ „ ๋น„ํ™œ์„ฑํ™” ๋ถˆ๊ฐ€
Gemini 3.0 Flash thinking_level ์—ด๊ฑฐํ˜• ("minimal"/"low"/"medium"/"high") ์‹œ๋งจํ‹ฑ ๋ ˆ๋ฒจ "high" โš ๏ธ "minimal"๋งŒ ๊ฐ€๋Šฅ

Gemini 2.5 vs 3.0 ์‚ฌ๊ณ  ๋ชจ๋“œ ํŒŒ๋ผ๋ฏธํ„ฐ ์„ค๊ณ„ ์ฐจ์ด

ํ•ต์‹ฌ ์ฐจ์ด์ : Gemini 2.5 ์‹œ๋ฆฌ์ฆˆ๋Š” thinking_budget(ํ† ํฐ ์˜ˆ์‚ฐ์ œ)์„ ์‚ฌ์šฉํ•˜๊ณ , Gemini 3.0 ์‹œ๋ฆฌ์ฆˆ๋Š” thinking_level(์‹œ๋งจํ‹ฑ ๋ ˆ๋ฒจ์ œ)์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๋‘ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ์„œ๋กœ ์™„์ „ํžˆ ํ˜ธํ™˜๋˜์ง€ ์•Š์œผ๋ฉฐ, ์ž˜๋ชป๋œ ๋ชจ๋ธ ๋ฒ„์ „์— ์‚ฌ์šฉํ•˜๋ฉด 400 Bad Request ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

Google์ด Gemini 3.0์—์„œ thinking_level์„ ๋„์ž…ํ•œ ํ•ต์‹ฌ ์ด์œ ๋Š” ์„ค์ •์˜ ๋ณต์žก์„ฑ์„ ์ค„์ด๊ณ  ์ถ”๋ก  ํšจ์œจ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด์„œ์ž…๋‹ˆ๋‹ค. Gemini 2.5์˜ ํ† ํฐ ์˜ˆ์‚ฐ์ œ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์‚ฌ๊ณ  ํ† ํฐ ์ˆ˜๋ฅผ ์ •๋ฐ€ํ•˜๊ฒŒ ์˜ˆ์ธกํ•ด์•ผ ํ–ˆ์ง€๋งŒ, Gemini 3.0์˜ ๋ ˆ๋ฒจ์ œ๋Š” ์ด๋Ÿฌํ•œ ๋ณต์žก์„ฑ์„ 4๊ฐ€์ง€ ์‹œ๋งจํ‹ฑ ๋ ˆ๋ฒจ๋กœ ์ถ”์ƒํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ชจ๋ธ ๋‚ด๋ถ€์—์„œ ์ตœ์ ์˜ ํ† ํฐ ์˜ˆ์‚ฐ์„ ์ž๋™์œผ๋กœ ํ• ๋‹นํ•˜๋ฉฐ, ์ถ”๋ก  ์†๋„๋ฅผ 2๋ฐฐ๊นŒ์ง€ ํ–ฅ์ƒ์‹œ์ผฐ์Šต๋‹ˆ๋‹ค.

๐Ÿ’ก ๊ธฐ์ˆ  ํŒ: ์‹ค์ œ ๊ฐœ๋ฐœ ์‹œ์—๋Š” APIYI(apiyi.com) ํ”Œ๋žซํผ์„ ํ†ตํ•ด ๋ชจ๋ธ ์ „ํ™˜ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•ด ๋ณด์‹œ๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”Œ๋žซํผ์€ ํ†ตํ•ฉ API ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜์—ฌ Gemini 2.5์™€ 3.0 ์ „ ์‹œ๋ฆฌ์ฆˆ ๋ชจ๋ธ์„ ์ง€์›ํ•˜๋ฏ€๋กœ, ๋‹ค์–‘ํ•œ ์‚ฌ๊ณ  ๋ชจ๋“œ ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ํ˜ธํ™˜์„ฑ๊ณผ ์‹ค์ œ ํšจ๊ณผ๋ฅผ ๋น ๋ฅด๊ฒŒ ๊ฒ€์ฆํ•˜๊ธฐ์— ๋งค์šฐ ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๊ทผ๋ณธ ์›์ธ 1: Gemini 2.5 ์‹œ๋ฆฌ์ฆˆ๋Š” thinking_level ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค

API ํŒŒ๋ผ๋ฏธํ„ฐ ์„ค๊ณ„์˜ ์„ธ๋Œ€ ๊ฐ„ ๊ฒฉ๋ฆฌ

Gemini 2.5 ์‹œ๋ฆฌ์ฆˆ ๋ชจ๋ธ(Pro, Flash, Flash-Lite ํฌํ•จ)์€ API ์„ค๊ณ„ ๋‹จ๊ณ„์—์„œ thinking_level ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ „ํ˜€ ์ธ์‹ํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. gemini-2.5-flash๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ thinking_level ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋ฉด API๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ด์š”.

{
  "error": {
    "message": "Thinking level is not supported for this model.",
    "type": "upstream_error",
    "code": 400
  }
}

์˜ค๋ฅ˜ ๋ฐœ์ƒ ๋ฉ”์ปค๋‹ˆ์ฆ˜:

  • Gemini 2.5 ๋ชจ๋ธ์˜ API ๊ฒ€์ฆ ๋ ˆ์ด์–ด์—๋Š” thinking_level ํŒŒ๋ผ๋ฏธํ„ฐ ์ •์˜๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • thinking_level์ด ํฌํ•จ๋œ ๋ชจ๋“  ์š”์ฒญ์€ ์ฆ‰์‹œ ๊ฑฐ๋ถ€๋˜๋ฉฐ, thinking_budget์œผ๋กœ ๋งคํ•‘ํ•˜๋ ค๋Š” ์‹œ๋„์กฐ์ฐจ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์ด๋Š” ํ•˜๋“œ์ฝ”๋”ฉ๋œ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฒฉ๋ฆฌ๋กœ, ์ž๋™ ์ „ํ™˜์ด๋‚˜ ํ•˜์œ„ ํ˜ธํ™˜์„ฑ์ด ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Gemini 2.5 ์‹œ๋ฆฌ์ฆˆ์˜ ์˜ฌ๋ฐ”๋ฅธ ํŒŒ๋ผ๋ฏธํ„ฐ: thinking_budget

Gemini 2.5 Flash ํŒŒ๋ผ๋ฏธํ„ฐ ๊ทœ๊ฒฉ:

# ์˜ฌ๋ฐ”๋ฅธ ์„ค์ • ์˜ˆ์‹œ
extra_body = {
    "thinking_budget": -1  # ๋™์  ์‚ฌ๊ณ  ๋ชจ๋“œ
}

# ๋˜๋Š” ์‚ฌ๊ณ  ๋ชจ๋“œ ๋น„ํ™œ์„ฑํ™”
extra_body = {
    "thinking_budget": 0  # ์™„์ „ ๋น„ํ™œ์„ฑํ™”
}

# ๋˜๋Š” ์ •๋ฐ€ ์ œ์–ด
extra_body = {
    "thinking_budget": 2048  # ์ •ํ™•ํžˆ 2048 ํ† ํฐ ์˜ˆ์‚ฐ ํ• ๋‹น
}

Gemini 2.5 Flash์˜ thinking_budget ๊ฐ’ ๋ฒ”์œ„:

๊ฐ’ ์˜๋ฏธ ์ถ”์ฒœ ์‹œ๋‚˜๋ฆฌ์˜ค
0 ์‚ฌ๊ณ  ๋ชจ๋“œ ์™„์ „ ๋น„ํ™œ์„ฑํ™” ๋‹จ์ˆœ ์ง€์‹œ ์ˆ˜ํ–‰, ๊ณ ์ฒ˜๋ฆฌ๋Ÿ‰(High-throughput) ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜
-1 ๋™์  ์‚ฌ๊ณ  ๋ชจ๋“œ (์ตœ๋Œ€ 8192 ํ† ํฐ) ์ผ๋ฐ˜์ ์ธ ์ƒํ™ฉ, ๋ณต์žก๋„์— ๋”ฐ๋ฅธ ์ž๋™ ์ ์‘
512-24576 ์ •๋ฐ€ ํ† ํฐ ์˜ˆ์‚ฐ ๋น„์šฉ ๋ฏผ๊ฐํ˜• ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ์ •๋ฐ€ํ•œ ์ œ์–ด๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ

gemini-2-5-flash-thinking-level-not-supported-ko ๅ›พ็คบ

๐ŸŽฏ ์„ ํƒ ๊ฐ€์ด๋“œ: Gemini 2.5 Flash๋กœ ์ „ํ™˜ํ•  ๋•Œ๋Š” ๋จผ์ € APIYI(apiyi.com) ํ”Œ๋žซํผ์„ ํ†ตํ•ด thinking_budget ๊ฐ’์— ๋”ฐ๋ฅธ ์‘๋‹ต ํ’ˆ์งˆ๊ณผ ์ง€์—ฐ ์‹œ๊ฐ„์˜ ๋ณ€ํ™”๋ฅผ ํ…Œ์ŠคํŠธํ•ด ๋ณด๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”Œ๋žซํผ์€ ํŒŒ๋ผ๋ฏธํ„ฐ ์„ค์ •์„ ๋น ๋ฅด๊ฒŒ ๋ณ€๊ฒฝํ•˜๋ฉฐ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์–ด, ๋น„์ฆˆ๋‹ˆ์Šค ์‹œ๋‚˜๋ฆฌ์˜ค์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ์˜ˆ์‚ฐ ๊ฐ’์„ ์ฐพ๊ธฐ์— ๋งค์šฐ ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๊ทผ๋ณธ ์›์ธ 2: Gemini 3.0 ์‹œ๋ฆฌ์ฆˆ๋Š” thinking_budget ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค

ํŒŒ๋ผ๋ฏธํ„ฐ ์„ค๊ณ„์˜ ์ „๋ฐฉ ๋น„ํ˜ธํ™˜์„ฑ

Google ๊ณต์‹ ๋ฌธ์„œ์—์„œ๋Š” Gemini 3.0์ด ํ•˜์œ„ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด ์—ฌ์ „ํžˆ thinking_budget ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ—ˆ์šฉํ•œ๋‹ค๊ณ  ๋ช…์‹œํ•˜๊ณ  ์žˆ์ง€๋งŒ, ์‹ค์ œ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • thinking_budget ์‚ฌ์šฉ ์‹œ ์„ฑ๋Šฅ ์ €ํ•˜ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ
  • ๊ณต์‹ ๋ฌธ์„œ์—์„œ thinking_level ์‚ฌ์šฉ์„ ๊ฐ•๋ ฅํžˆ ๊ถŒ์žฅ
  • ์ผ๋ถ€ API ๊ตฌํ˜„์—์„œ๋Š” thinking_budget์„ ์™„์ „ํžˆ ๊ฑฐ๋ถ€ํ•  ์ˆ˜ ์žˆ์Œ

Gemini 3.0 Flash์˜ ์˜ฌ๋ฐ”๋ฅธ ํŒŒ๋ผ๋ฏธํ„ฐ: thinking_level

# ์˜ฌ๋ฐ”๋ฅธ ์„ค์ • ์˜ˆ์‹œ
extra_body = {
    "thinking_level": "medium"  # ์ค‘๊ฐ„ ๊ฐ•๋„ ์ถ”๋ก 
}

# ๋˜๋Š” ์ตœ์†Œ ์‚ฌ๊ณ  (๋น„ํ™œ์„ฑํ™”์— ๊ฐ€๊นŒ์›€)
extra_body = {
    "thinking_level": "minimal"  # ์ตœ์†Œ ์‚ฌ๊ณ  ๋ชจ๋“œ
}

# ๋˜๋Š” ๊ณ ๊ฐ•๋„ ์ถ”๋ก  (๊ธฐ๋ณธ๊ฐ’)
extra_body = {
    "thinking_level": "high"  # ์‹ฌ์ธต ์ถ”๋ก 
}

Gemini 3.0 Flash์˜ thinking_level ๋“ฑ๊ธ‰ ์„ค๋ช…:

๋“ฑ๊ธ‰ ์ถ”๋ก  ๊ฐ•๋„ ์ง€์—ฐ ์‹œ๊ฐ„ ๋น„์šฉ ์ถ”์ฒœ ์‹œ๋‚˜๋ฆฌ์˜ค
"minimal" ๊ฑฐ์˜ ์ถ”๋ก  ์—†์Œ ์ตœ์ € ์ตœ์ € ๋‹จ์ˆœ ์ง€์‹œ ์ˆ˜ํ–‰, ๊ณ ์ฒ˜๋ฆฌ๋Ÿ‰
"low" ์–•์€ ์ˆ˜์ค€์˜ ์ถ”๋ก  ๋‚ฎ์Œ ๋‚ฎ์Œ ์ฑ—๋ด‡, ๊ฐ€๋ฒผ์šด QA
"medium" ์ค‘๊ฐ„ ์ˆ˜์ค€์˜ ์ถ”๋ก  ์ค‘๊ฐ„ ์ค‘๊ฐ„ ์ผ๋ฐ˜์ ์ธ ์ถ”๋ก  ์ž‘์—…, ์ฝ”๋“œ ์ƒ์„ฑ
"high" ์‹ฌ์ธต ์ถ”๋ก  ๋†’์Œ ๋†’์Œ ๋ณต์žกํ•œ ๋ฌธ์ œ ํ•ด๊ฒฐ, ์‹ฌ์ธต ๋ถ„์„ (๊ธฐ๋ณธ๊ฐ’)

Gemini 3.0 Pro์˜ ํŠน์ˆ˜ ์ œํ•œ ์‚ฌํ•ญ

์ค‘์š”: Gemini 3.0 Pro๋Š” ์‚ฌ๊ณ  ๋ชจ๋“œ๋ฅผ ์™„์ „ํžˆ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. thinking_level: "low"๋กœ ์„ค์ •ํ•˜๋”๋ผ๋„ ์ผ์ • ์ˆ˜์ค€์˜ ์ถ”๋ก  ๋Šฅ๋ ฅ์€ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ตœ๋Œ€ ์†๋„๋ฅผ ์œ„ํ•ด '์ œ๋กœ ์‚ฌ๊ณ ' ์‘๋‹ต์ด ํ•„์š”ํ•˜๋‹ค๋ฉด Gemini 2.5 Flash์˜ thinking_budget: 0์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

# Gemini 3.0 Pro ์‚ฌ์šฉ ๊ฐ€๋Šฅ ๋“ฑ๊ธ‰ (2๊ฐ€์ง€๋งŒ ์ง€์›)
extra_body = {
    "thinking_level": "low"   # ์ตœ์ € ๋“ฑ๊ธ‰ (์—ฌ์ „ํžˆ ์ถ”๋ก  ์ˆ˜ํ–‰)
}

# ๋˜๋Š”
extra_body = {
    "thinking_level": "high"  # ๊ธฐ๋ณธ ๊ณ ๊ฐ•๋„ ์ถ”๋ก 
}

๐Ÿ’ฐ ๋น„์šฉ ์ตœ์ ํ™”: ๋น„์šฉ์— ๋ฏผ๊ฐํ•œ ํ”„๋กœ์ ํŠธ์—์„œ ๋น„์šฉ ์ ˆ๊ฐ์„ ์œ„ํ•ด ์‚ฌ๊ณ  ๋ชจ๋“œ๋ฅผ ์™„์ „ํžˆ ๋น„ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•œ๋‹ค๋ฉด, APIYI(apiyi.com) ํ”Œ๋žซํผ์„ ํ†ตํ•ด Gemini 2.5 Flash API๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ํ”Œ๋žซํผ์€ ์œ ์—ฐํ•œ ๊ณผ๊ธˆ ๋ฐฉ์‹๊ณผ ํ•ฉ๋ฆฌ์ ์ธ ๊ฐ€๊ฒฉ์„ ์ œ๊ณตํ•˜๋ฏ€๋กœ ์ •๋ฐ€ํ•œ ๋น„์šฉ ์ œ์–ด๊ฐ€ ํ•„์š”ํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค์— ๋งค์šฐ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

๊ทผ๋ณธ ์›์ธ 3: ์ด๋ฏธ์ง€ ๋ชจ๋ธ ๋ฐ ํŠน์ˆ˜ ๋ณ€์ฒด ๋ชจ๋ธ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ์ œํ•œ

Gemini 2.5 Flash Image ๋ชจ๋ธ์€ ์‚ฌ๊ณ  ๋ชจ๋“œ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์•„์š”

์ค‘์š”ํ•œ ๋ฐœ๊ฒฌ: gemini-2.5-flash-image์™€ ๊ฐ™์€ ๋น„์ „ ๋ชจ๋ธ์€ thinking_budget์ด๋‚˜ thinking_level ๋“ฑ ๊ทธ ์–ด๋–ค ์‚ฌ๊ณ  ๋ชจ๋“œ ํŒŒ๋ผ๋ฏธํ„ฐ๋„ ์ „ํ˜€ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์˜ค๋ฅ˜ ์˜ˆ์‹œ:

# gemini-2.5-flash-image ํ˜ธ์ถœ ์‹œ
response = client.chat.completions.create(
    model="gemini-2.5-flash-image",
    messages=[{"role": "user", "content": "์ด ์ด๋ฏธ์ง€ ๋ถ„์„ํ•ด์ค˜"}],
    extra_body={
        "thinking_budget": -1  # โŒ ์˜ค๋ฅ˜: ์ด๋ฏธ์ง€ ๋ชจ๋ธ์€ ์ง€์›ํ•˜์ง€ ์•Š์Œ
    }
)
# ์˜ค๋ฅ˜ ๋ฐ˜ํ™˜: "This model doesn't support thinking"

์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•:

# ์ด๋ฏธ์ง€ ๋ชจ๋ธ์„ ํ˜ธ์ถœํ•  ๋•Œ๋Š” ์‚ฌ๊ณ  ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜์ง€ ๋งˆ์„ธ์š”
response = client.chat.completions.create(
    model="gemini-2.5-flash-image",
    messages=[{"role": "user", "content": "์ด ์ด๋ฏธ์ง€ ๋ถ„์„ํ•ด์ค˜"}],
    # โœ… thinking_budget ๋˜๋Š” thinking_level์„ ์ „๋‹ฌํ•˜์ง€ ์•Š์Œ
)

Gemini 2.5 Flash-Lite์˜ ํŠน๋ณ„ํ•œ ๊ธฐ๋ณธ๊ฐ’

Gemini 2.5 Flash-Lite์™€ ํ‘œ์ค€ Flash ๋ฒ„์ „์˜ ํ•ต์‹ฌ ์ฐจ์ด์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์•„์š”:

  • ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ๊ณ  ๋ชจ๋“œ๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋จ (thinking_budget: 0)
  • ์‚ฌ๊ณ  ๋ชจ๋“œ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด thinking_budget์„ 0์ด ์•„๋‹Œ ๊ฐ’์œผ๋กœ ๋ช…์‹œ์ ์œผ๋กœ ์„ค์ •ํ•ด์•ผ ํ•จ
  • ์ง€์›๋˜๋Š” ์˜ˆ์‚ฐ ๋ฒ”์œ„: 512~24,576 ํ† ํฐ
# Gemini 2.5 Flash-Lite ์‚ฌ๊ณ  ๋ชจ๋“œ ํ™œ์„ฑํ™”
extra_body = {
    "thinking_budget": 512  # 0์ด ์•„๋‹Œ ์ตœ์†Œ๊ฐ’์œผ๋กœ ๊ฐ€๋ฒผ์šด ์‚ฌ๊ณ  ํ™œ์„ฑํ™”
}

gemini-2-5-flash-thinking-level-not-supported-ko ๅ›พ็คบ

๋ชจ๋ธ thinking_budget thinking_level ์ด๋ฏธ์ง€ ์ง€์› ์‚ฌ๊ณ  ๊ธฐ๋ณธ ์ƒํƒœ
gemini-2.5-pro โœ… ์ง€์› (128-32768) โŒ ๋ฏธ์ง€์› โŒ ๊ธฐ๋ณธ ํ™œ์„ฑํ™” (8192)
gemini-2.5-flash โœ… ์ง€์› (0-24576, -1) โŒ ๋ฏธ์ง€์› โŒ ๊ธฐ๋ณธ ํ™œ์„ฑํ™” (๋™์ )
gemini-2.5-flash-lite โœ… ์ง€์› (512-24576) โŒ ๋ฏธ์ง€์› โŒ ๊ธฐ๋ณธ ๋น„ํ™œ์„ฑํ™” (0)
gemini-2.5-flash-image โŒ ๋ฏธ์ง€์› โŒ ๋ฏธ์ง€์› โœ… ์‚ฌ๊ณ  ๋ชจ๋“œ ์—†์Œ
gemini-3.0-pro โš ๏ธ ํ˜ธํ™˜๋˜์ง€๋งŒ ๊ถŒ์žฅ ์•ˆ ํ•จ โœ… ๊ถŒ์žฅ (low/high) โŒ ๊ธฐ๋ณธ high
gemini-3.0-flash โš ๏ธ ํ˜ธํ™˜๋˜์ง€๋งŒ ๊ถŒ์žฅ ์•ˆ ํ•จ โœ… ๊ถŒ์žฅ (minimal/low/medium/high) โŒ ๊ธฐ๋ณธ high

๐Ÿš€ ๋น ๋ฅธ ์‹œ์ž‘: APIYI ํ”Œ๋žซํผ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ ๋ชจ๋ธ์˜ ์‚ฌ๊ณ  ํŒŒ๋ผ๋ฏธํ„ฐ ํ˜ธํ™˜์„ฑ์„ ๋น ๋ฅด๊ฒŒ ํ…Œ์ŠคํŠธํ•ด ๋ณด์„ธ์š”. ์ด ํ”Œ๋žซํผ์€ ๋ณต์žกํ•œ ์„ค์ • ์—†์ด ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” Gemini ์ „์ฒด ์‹œ๋ฆฌ์ฆˆ ๋ชจ๋ธ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, 5๋ถ„ ์•ˆ์— ํ†ตํ•ฉ ๋ฐ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฒ€์ฆ์„ ๋งˆ์น  ์ˆ˜ ์žˆ๋‹ต๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ์ฑ… 1: ๋ชจ๋ธ ๋ฒ„์ „์— ๋”ฐ๋ฅธ ๋งค๊ฐœ๋ณ€์ˆ˜ ์ ์‘ ํ•จ์ˆ˜

์ง€๋Šฅํ˜• ๋งค๊ฐœ๋ณ€์ˆ˜ ์„ ํƒ๊ธฐ (์ „ ์‹œ๋ฆฌ์ฆˆ ๋ชจ๋ธ ์ง€์›)

def get_gemini_thinking_config(model_name: str, intensity: str = "medium") -> dict:
    """
    Gemini ๋ชจ๋ธ ์ด๋ฆ„์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ์˜ฌ๋ฐ”๋ฅธ ์‚ฌ๊ณ  ๋ชจ๋“œ(Thinking Mode) ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    Args:
        model_name: Gemini ๋ชจ๋ธ ์ด๋ฆ„
        intensity: ์‚ฌ๊ณ  ๊ฐ•๋„ ("none", "minimal", "low", "medium", "high", "dynamic")

    Returns:
        extra_body์— ์‚ฌ์šฉํ•  ๋งค๊ฐœ๋ณ€์ˆ˜ ๋”•์…”๋„ˆ๋ฆฌ. ๋ชจ๋ธ์ด ์‚ฌ๊ณ  ๋ชจ๋“œ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋ฉด ๋นˆ ๋”•์…”๋„ˆ๋ฆฌ ๋ฐ˜ํ™˜
    """

    # Gemini 3.0 ๋ชจ๋ธ ๋ฆฌ์ŠคํŠธ
    gemini_3_models = [
        "gemini-3.0-flash-preview", "gemini-3.0-pro-preview",
        "gemini-3-flash", "gemini-3-pro"
    ]

    # Gemini 2.5 ํ‘œ์ค€ ๋ชจ๋ธ ๋ฆฌ์ŠคํŠธ
    gemini_2_5_models = [
        "gemini-2.5-flash", "gemini-2.5-pro",
        "gemini-2.5-flash-lite", "gemini-2-flash", "gemini-2-pro"
    ]

    # ์ด๋ฏธ์ง€ ๋ชจ๋ธ ๋ฆฌ์ŠคํŠธ (์‚ฌ๊ณ  ๋ชจ๋“œ ๋ฏธ์ง€์›)
    image_models = [
        "gemini-2.5-flash-image", "gemini-flash-image",
        "gemini-pro-vision"
    ]

    # ์ด๋ฏธ์ง€ ๋ชจ๋ธ ์—ฌ๋ถ€ ํ™•์ธ
    if any(img_model in model_name for img_model in image_models):
        print(f"โš ๏ธ ๊ฒฝ๊ณ : {model_name}์€(๋Š”) ์‚ฌ๊ณ  ๋ชจ๋“œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋นˆ ๊ตฌ์„ฑ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.")
        return {}

    # Gemini 3.0 ์‹œ๋ฆฌ์ฆˆ๋Š” thinking_level ์‚ฌ์šฉ
    if any(m in model_name for m in gemini_3_models):
        level_map = {
            "none": "minimal",      # 3.0์€ ์™„์ „ํžˆ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ minimal ์‚ฌ์šฉ
            "minimal": "minimal",
            "low": "low",
            "medium": "medium",
            "high": "high",
            "dynamic": "high"
        }

        # Gemini 3.0 Pro๋Š” low์™€ high๋งŒ ์ง€์›
        if "pro" in model_name.lower():
            if intensity in ["none", "minimal", "low"]:
                return {"thinking_level": "low"}
            else:
                return {"thinking_level": "high"}

        # Gemini 3.0 Flash๋Š” 4๊ฐ€์ง€ ๋ ˆ๋ฒจ ๋ชจ๋‘ ์ง€์›
        return {"thinking_level": level_map.get(intensity, "medium")}

    # Gemini 2.5 ์‹œ๋ฆฌ์ฆˆ๋Š” thinking_budget ์‚ฌ์šฉ
    elif any(m in model_name for m in gemini_2_5_models):
        budget_map = {
            "none": 0,           # ์™„์ „ํžˆ ๋น„ํ™œ์„ฑํ™”
            "minimal": 512,      # ์ตœ์†Œ ์˜ˆ์‚ฐ
            "low": 2048,         # ๋‚ฎ์€ ๊ฐ•๋„
            "medium": 8192,      # ์ค‘๊ฐ„ ๊ฐ•๋„
            "high": 16384,       # ๋†’์€ ๊ฐ•๋„
            "dynamic": -1        # ๋™์  ์ ์‘
        }

        budget = budget_map.get(intensity, -1)

        # Gemini 2.5 Pro๋Š” ๋น„ํ™œ์„ฑํ™” ๋ฏธ์ง€์› (์ตœ์†Œ 128)
        if "pro" in model_name.lower() and budget == 0:
            print(f"โš ๏ธ ๊ฒฝ๊ณ : {model_name}์€(๋Š”) ์‚ฌ๊ณ  ๋น„ํ™œ์„ฑํ™”๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ตœ์†Œ๊ฐ’์ธ 128๋กœ ์ž๋™ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.")
            budget = 128

        # Gemini 2.5 Flash-Lite์˜ ์ตœ์†Œ๊ฐ’์€ 512
        if "lite" in model_name.lower() and budget > 0 and budget < 512:
            print(f"โš ๏ธ ๊ฒฝ๊ณ : {model_name}์˜ ์ตœ์†Œ ์˜ˆ์‚ฐ์€ 512์ž…๋‹ˆ๋‹ค. ์ž๋™์œผ๋กœ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.")
            budget = 512

        return {"thinking_budget": budget}

    else:
        print(f"โš ๏ธ ๊ฒฝ๊ณ : ์•Œ ์ˆ˜ ์—†๋Š” ๋ชจ๋ธ {model_name}์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ Gemini 3.0 ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.")
        return {"thinking_level": "medium"}


# ์‚ฌ์šฉ ์˜ˆ์‹œ
import openai

client = openai.OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.apiyi.com/v1"
)

# Gemini 2.5 Flash ํ…Œ์ŠคํŠธ
model_2_5 = "gemini-2.5-flash"
config_2_5 = get_gemini_thinking_config(model_2_5, intensity="dynamic")
print(f"{model_2_5} ์„ค์ •: {config_2_5}")
# ์ถœ๋ ฅ: gemini-2.5-flash ์„ค์ •: {'thinking_budget': -1}

response_2_5 = client.chat.completions.create(
    model=model_2_5,
    messages=[{"role": "user", "content": "์–‘์ž ์–ฝํž˜์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ค˜"}],
    extra_body=config_2_5
)

# Gemini 3.0 Flash ํ…Œ์ŠคํŠธ
model_3_0 = "gemini-3.0-flash-preview"
config_3_0 = get_gemini_thinking_config(model_3_0, intensity="medium")
print(f"{model_3_0} ์„ค์ •: {config_3_0}")
# ์ถœ๋ ฅ: gemini-3.0-flash-preview ์„ค์ •: {'thinking_level': 'medium'}

response_3_0 = client.chat.completions.create(
    model=model_3_0,
    messages=[{"role": "user", "content": "์–‘์ž ์–ฝํž˜์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ค˜"}],
    extra_body=config_3_0
)

# ์ด๋ฏธ์ง€ ๋ชจ๋ธ ํ…Œ์ŠคํŠธ
model_image = "gemini-2.5-flash-image"
config_image = get_gemini_thinking_config(model_image, intensity="high")
print(f"{model_image} ์„ค์ •: {config_image}")
# ์ถœ๋ ฅ: โš ๏ธ ๊ฒฝ๊ณ : gemini-2.5-flash-image์€(๋Š”) ์‚ฌ๊ณ  ๋ชจ๋“œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋นˆ ๊ตฌ์„ฑ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
# ์ถœ๋ ฅ: gemini-2.5-flash-image ์„ค์ •: {}

๐Ÿ’ก ์ตœ์„ ์˜ ๊ด€ํ–‰: Gemini ๋ชจ๋ธ์„ ๋™์ ์œผ๋กœ ์ „ํ™˜ํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด๋ผ๋ฉด, APIYI(apiyi.com) ํ”Œ๋žซํผ์„ ํ†ตํ•ด ๋งค๊ฐœ๋ณ€์ˆ˜ ์ ์‘ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•ด ๋ณด์‹œ๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•ด์š”. ์ด ํ”Œ๋žซํผ์€ Gemini 2.5์™€ 3.0 ์‹œ๋ฆฌ์ฆˆ ๋ชจ๋ธ์„ ๋ชจ๋‘ ์ง€์›ํ•˜๋ฏ€๋กœ, ๋‹ค์–‘ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜ ์„ค์ •์— ๋”ฐ๋ฅธ ์‘๋‹ต ํ’ˆ์งˆ๊ณผ ๋น„์šฉ ์ฐจ์ด๋ฅผ ๊ฐ„ํŽธํ•˜๊ฒŒ ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ์ฑ… 2: Gemini 2.5์—์„œ 3.0์œผ๋กœ์˜ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ „๋žต

์‚ฌ๊ณ  ๋ชจ๋“œ ๋งค๊ฐœ๋ณ€์ˆ˜ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋Œ€์กฐํ‘œ

Gemini 2.5 Flash ์„ค์ • Gemini 3.0 Flash ๋“ฑ๊ฐ€ ์„ค์ • ์ง€์—ฐ ์‹œ๊ฐ„ ๋น„๊ต ๋น„์šฉ ๋น„๊ต
thinking_budget: 0 thinking_level: "minimal" 3.0์ด ๋” ๋น ๋ฆ„ (์•ฝ 2๋ฐฐ) ๋น„์Šทํ•จ
thinking_budget: 512 thinking_level: "low" 3.0์ด ๋” ๋น ๋ฆ„ ๋น„์Šทํ•จ
thinking_budget: 2048 thinking_level: "low" 3.0์ด ๋” ๋น ๋ฆ„ ๋น„์Šทํ•จ
thinking_budget: 8192 thinking_level: "medium" 3.0์ด ๋” ๋น ๋ฆ„ ์•ฝ๊ฐ„ ๋†’์Œ
thinking_budget: 16384 thinking_level: "high" 3.0์ด ๋” ๋น ๋ฆ„ ์•ฝ๊ฐ„ ๋†’์Œ
thinking_budget: -1 (๋™์ ) thinking_level: "high" (๊ธฐ๋ณธ) 3.0์ด ๋ˆˆ์— ๋„๊ฒŒ ๋น ๋ฆ„ 3.0์ด ๋” ๋†’์Œ

๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ฝ”๋“œ ์˜ˆ์‹œ

def migrate_to_gemini_3(old_model: str, old_config: dict) -> tuple[str, dict]:
    """
    Gemini 2.5์—์„œ Gemini 3.0์œผ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•ฉ๋‹ˆ๋‹ค.

    Args:
        old_model: Gemini 2.5 ๋ชจ๋ธ ์ด๋ฆ„
        old_config: Gemini 2.5์˜ extra_body ์„ค์ •

    Returns:
        (์ƒˆ ๋ชจ๋ธ ์ด๋ฆ„, ์ƒˆ ์„ค์ • ๋”•์…”๋„ˆ๋ฆฌ)
    """
    # ๋ชจ๋ธ ์ด๋ฆ„ ๋งคํ•‘
    model_map = {
        "gemini-2.5-flash": "gemini-3.0-flash-preview",
        "gemini-2.5-pro": "gemini-3.0-pro-preview",
        "gemini-2-flash": "gemini-3-flash",
        "gemini-2-pro": "gemini-3-pro"
    }

    new_model = model_map.get(old_model, "gemini-3.0-flash-preview")

    # ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ณ€ํ™˜
    if "thinking_budget" in old_config:
        budget = old_config["thinking_budget"]

        # thinking_level๋กœ ๋ณ€ํ™˜
        if budget == 0:
            new_level = "minimal"
        elif budget <= 2048:
            new_level = "low"
        elif budget <= 8192:
            new_level = "medium"
        else:
            new_level = "high"

        # Gemini 3.0 Pro๋Š” low/high๋งŒ ์ง€์›
        if "pro" in new_model and new_level in ["minimal", "medium"]:
            new_level = "low" if new_level == "minimal" else "high"

        new_config = {"thinking_level": new_level}
    else:
        # ๊ธฐ๋ณธ ์„ค์ •
        new_config = {"thinking_level": "medium"}

    return new_model, new_config


# ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์˜ˆ์‹œ
old_model = "gemini-2.5-flash"
old_config = {"thinking_budget": -1}

new_model, new_config = migrate_to_gemini_3(old_model, old_config)
print(f"๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ „: {old_model} {old_config}")
print(f"๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ›„: {new_model} {new_config}")
# ์ถœ๋ ฅ:
# ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ „: gemini-2.5-flash {'thinking_budget': -1}
# ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ›„: gemini-3.0-flash-preview {'thinking_level': 'high'}

# ์ƒˆ ์„ค์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ํ˜ธ์ถœ
response = client.chat.completions.create(
    model=new_model,
    messages=[{"role": "user", "content": "์งˆ๋ฌธ ๋‚ด์šฉ"}],
    extra_body=new_config
)

๐ŸŽฏ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ œ์•ˆ: Gemini 2.5์—์„œ 3.0์œผ๋กœ ์ „ํ™˜ํ•  ๋•Œ๋Š” ๋จผ์ € APIYI(apiyi.com) ํ”Œ๋žซํผ์„ ํ†ตํ•ด A/B ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•ด ๋ณด์‹œ๋Š” ๊ฒƒ์ด ์ข‹์•„์š”. ์ด ํ”Œ๋žซํผ์€ ๋ชจ๋ธ ๋ฒ„์ „์„ ๋น ๋ฅด๊ฒŒ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์–ด ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ „ํ›„์˜ ์‘๋‹ต ํ’ˆ์งˆ, ์ง€์—ฐ ์‹œ๊ฐ„, ๋น„์šฉ ์ฐจ์ด๋ฅผ ๋น„๊ตํ•˜๊ธฐ์— ๋งค์šฐ ํŽธ๋ฆฌํ•˜๋ฉฐ, ์•ˆ์ •์ ์ธ ์ „ํ™˜์„ ๋„์™€์ค๋‹ˆ๋‹ค.

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

Q1: ์ œ ์ฝ”๋“œ๊ฐ€ Gemini 3.0์—์„œ๋Š” ์ž˜ ์ž‘๋™ํ•˜๋Š”๋ฐ, 2.5๋กœ ๋ฐ”๊พธ๋ฉด ์™œ ์—๋Ÿฌ๊ฐ€ ๋‚˜๋‚˜์š”?

์›์ธ: ์ฝ”๋“œ์—์„œ thinking_level ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด๋Š” Gemini 3.0 ์ „์šฉ ํŒŒ๋ผ๋ฏธํ„ฐ์ด๋ฉฐ, 2.5 ์‹œ๋ฆฌ์ฆˆ์—์„œ๋Š” ์ „ํ˜€ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•:

# ์ž˜๋ชป๋œ ์ฝ”๋“œ (3.0 ์ „์šฉ)
extra_body = {
    "thinking_level": "medium"  # โŒ 2.5์—์„œ๋Š” ์ธ์‹ํ•˜์ง€ ๋ชปํ•จ
}

# ์˜ฌ๋ฐ”๋ฅธ ์ฝ”๋“œ (2.5์šฉ)
extra_body = {
    "thinking_budget": 8192  # โœ… 2.5๋Š” budget์„ ์‚ฌ์šฉํ•จ
}

์œ„์—์„œ ์–ธ๊ธ‰ํ•œ get_gemini_thinking_config() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž๋™์œผ๋กœ ์ตœ์ ํ™”ํ•˜๊ฑฐ๋‚˜, APIYI(apiyi.com) ํ”Œ๋žซํผ์„ ํ†ตํ•ด ํŒŒ๋ผ๋ฏธํ„ฐ ํ˜ธํ™˜์„ฑ์„ ๋น ๋ฅด๊ฒŒ ๊ฒ€์ฆํ•ด ๋ณด์‹œ๋Š” ๊ฒƒ์„ ์ถ”์ฒœ๋“œ๋ ค์š”.

Q2: Gemini 2.5 Flash์™€ Gemini 3.0 Flash์˜ ์„ฑ๋Šฅ ์ฐจ์ด๋Š” ์–ด๋А ์ •๋„์ธ๊ฐ€์š”?

Google ๊ณต์‹ ๋ฐ์ดํ„ฐ์™€ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

ํ•ญ๋ชฉ Gemini 2.5 Flash Gemini 3.0 Flash ํ–ฅ์ƒ ํญ
์ถ”๋ก  ์†๋„ ๊ธฐ์ค€ 2๋ฐฐ ๋” ๋น ๋ฆ„ +100%
์ง€์—ฐ ์‹œ๊ฐ„ ๊ธฐ์ค€ ํ˜„์ €ํžˆ ๊ฐ์†Œ ์•ฝ -50%
์‚ฌ๊ณ  ํšจ์œจ ๊ณ ์ • ์˜ˆ์‚ฐ ๋˜๋Š” ๋™์  ์ž๋™ ์ตœ์ ํ™” ํ’ˆ์งˆ ํ–ฅ์ƒ
๋น„์šฉ ๊ธฐ์ค€ ์•ฝ๊ฐ„ ๋†’์Œ (๊ณ ํ’ˆ์งˆ) +10-20%

ํ•ต์‹ฌ ์ฐจ์ด์ : Gemini 3.0์€ ๋™์  ์‚ฌ๊ณ  ํ• ๋‹น ๋ฐฉ์‹์„ ์ฑ„ํƒํ•˜์—ฌ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ํ•„์š”ํ•œ ๋งŒํผ ์‚ฌ๊ณ ํ•˜๋Š” ๋ฐ˜๋ฉด, 2.5์˜ ๊ณ ์ • ์˜ˆ์‚ฐ ๋ฐฉ์‹์€ ๊ณผ๋„ํ•˜๊ฒŒ ์‚ฌ๊ณ ํ•˜๊ฑฐ๋‚˜ ์‚ฌ๊ณ ๊ฐ€ ๋ถ€์กฑํ•ด์งˆ ์ˆ˜ ์žˆ๋Š” ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์‹ค์‹œ๊ฐ„ ์„ฑ๋Šฅ ๋ชจ๋‹ˆํ„ฐ๋ง๊ณผ ๋น„์šฉ ๋ถ„์„์„ ์ œ๊ณตํ•˜๋Š” APIYI(apiyi.com) ํ”Œ๋žซํผ์—์„œ ์‹ค์ œ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•ด ๋ณด์„ธ์š”. ๋ชจ๋ธ๋ณ„ ์‹ค์ œ ์„ฑ๋Šฅ์„ ๊ฐ„ํŽธํ•˜๊ฒŒ ๋น„๊ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Q3: Gemini 3.0์—์„œ ์‚ฌ๊ณ  ๋ชจ๋“œ๋ฅผ ์™„์ „ํžˆ ๋Œ ์ˆ˜ ์žˆ๋‚˜์š”?

์ค‘์š”: Gemini 3.0 Pro๋Š” ์‚ฌ๊ณ  ๋ชจ๋“œ๋ฅผ ์™„์ „ํžˆ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. thinking_level: "low"๋กœ ์„ค์ •ํ•˜๋”๋ผ๋„ ๊ฐ€๋ฒผ์šด ์ถ”๋ก  ๋Šฅ๋ ฅ์€ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์˜ต์…˜:

  • Gemini 3.0 Flash: thinking_level: "minimal"์„ ์‚ฌ์šฉํ•˜๋ฉด ์ œ๋กœ(0) ์‚ฌ๊ณ ์— ๊ฐ€๊น๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. (๋‹จ, ๋ณต์žกํ•œ ์ฝ”๋”ฉ ์ž‘์—… ์‹œ์—๋Š” ์—ฌ์ „ํžˆ ๊ฐ€๋ฒผ์šด ์‚ฌ๊ณ ๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)
  • Gemini 3.0 Pro: ์ตœํ•˜ thinking_level: "low"๊นŒ์ง€๋งŒ ์„ค์ • ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์™„์ „ํ•œ ๋น„ํ™œ์„ฑํ™”๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ:

# Gemini 2.5 Flash๋งŒ ์™„์ „ ๋น„ํ™œ์„ฑํ™”๋ฅผ ์ง€์›ํ•จ
model = "gemini-2.5-flash"
extra_body = {
    "thinking_budget": 0  # ์‚ฌ๊ณ  ๋ชจ๋“œ ์™„์ „ ๋น„ํ™œ์„ฑํ™”
}

๊ทน๊ฐ•์˜ ์†๋„๊ฐ€ ํ•„์š”ํ•˜๊ณ  ์ถ”๋ก  ๋Šฅ๋ ฅ์ด ํ•„์š” ์—†๋Š” ์ƒํ™ฉ(๋‹จ์ˆœ ์ง€์‹œ ์ˆ˜ํ–‰ ๋“ฑ)์ด๋ผ๋ฉด, APIYI(apiyi.com)๋ฅผ ํ†ตํ•ด Gemini 2.5 Flash๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  thinking_budget: 0์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ถ”์ฒœ๋“œ๋ ค์š”.

Q4: Gemini ์ด๋ฏธ์ง€ ๋ชจ๋ธ๋„ ์‚ฌ๊ณ  ๋ชจ๋“œ๋ฅผ ์ง€์›ํ•˜๋‚˜์š”?

์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  Gemini ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ ๋ชจ๋ธ(gemini-2.5-flash-image, gemini-pro-vision ๋“ฑ)์€ ์‚ฌ๊ณ  ๋ชจ๋“œ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ž˜๋ชป๋œ ์˜ˆ์‹œ:

# โŒ ์ด๋ฏธ์ง€ ๋ชจ๋ธ์€ ์–ด๋–ค ์‚ฌ๊ณ  ํŒŒ๋ผ๋ฏธํ„ฐ๋„ ์ง€์›ํ•˜์ง€ ์•Š์Œ
response = client.chat.completions.create(
    model="gemini-2.5-flash-image",
    messages=[...],
    extra_body={
        "thinking_budget": -1  # ์—๋Ÿฌ ์œ ๋ฐœ
    }
)

์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•:

# โœ… ์ด๋ฏธ์ง€ ๋ชจ๋ธ ํ˜ธ์ถœ ์‹œ์—๋Š” ์‚ฌ๊ณ  ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜์ง€ ์•Š์Œ
response = client.chat.completions.create(
    model="gemini-2.5-flash-image",
    messages=[...],
    # extra_body๋ฅผ ์•„์˜ˆ ๋ณด๋‚ด์ง€ ์•Š๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ๋น„์‚ฌ๊ณ  ํŒŒ๋ผ๋ฏธํ„ฐ๋งŒ ์ „๋‹ฌ
)

๊ธฐ์ˆ ์  ์ด์œ : ์ด๋ฏธ์ง€ ๋ชจ๋ธ์˜ ์ถ”๋ก  ์•„ํ‚คํ…์ฒ˜๋Š” ์‹œ๊ฐ์  ์ดํ•ด์— ์ง‘์ค‘๋˜์–ด ์žˆ์–ด, ์–ธ์–ด ๋ชจ๋ธ์˜ ์‚ฌ๊ณ  ์‚ฌ์Šฌ(Chain of Thought) ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํฌํ•จํ•˜๊ณ  ์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์š”์•ฝ

Gemini 2.5 Flash์—์„œ thinking_level not supported ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ํ•ต์‹ฌ ์š”์•ฝ:

  1. ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฒฉ๋ฆฌ: Gemini 2.5๋Š” thinking_budget๋งŒ, 3.0์€ thinking_level๋งŒ ์ง€์›ํ•˜๋ฉฐ ์„œ๋กœ ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  2. ๋ชจ๋ธ ์‹๋ณ„: ๋ชจ๋ธ ์ด๋ฆ„์œผ๋กœ ๋ฒ„์ „์„ ํŒ๋‹จํ•˜์„ธ์š”. 2.5 ์‹œ๋ฆฌ์ฆˆ๋Š” thinking_budget์„, 3.0 ์‹œ๋ฆฌ์ฆˆ๋Š” thinking_level์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  3. ์ด๋ฏธ์ง€ ๋ชจ๋ธ ์ œํ•œ: ๋ชจ๋“  ์ด๋ฏธ์ง€ ๋ชจ๋ธ(์˜ˆ: gemini-2.5-flash-image)์€ ์–ด๋– ํ•œ ์‚ฌ๊ณ  ๋ชจ๋“œ ํŒŒ๋ผ๋ฏธํ„ฐ๋„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  4. ๋น„ํ™œ์„ฑํ™” ์ฐจ์ด: ์˜ค์ง Gemini 2.5 Flash๋งŒ ์‚ฌ๊ณ  ๋ชจ๋“œ ์™„์ „ ๋น„ํ™œ์„ฑํ™”(thinking_budget: 0)๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฉฐ, 3.0 ์‹œ๋ฆฌ์ฆˆ๋Š” minimal์ด ์ตœํ•˜ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.
  5. ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ „๋žต: 2.5์—์„œ 3.0์œผ๋กœ ์ „ํ™˜ํ•  ๋•Œ๋Š” thinking_budget์„ thinking_level๋กœ ๋งคํ•‘ํ•˜๊ณ , ์„ฑ๋Šฅ๊ณผ ๋น„์šฉ ๋ณ€ํ™”๋ฅผ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์–‘ํ•œ ๋ชจ๋ธ์˜ ์‚ฌ๊ณ  ํŒŒ๋ผ๋ฏธํ„ฐ ํ˜ธํ™˜์„ฑ๊ณผ ์‹ค์ œ ํšจ๊ณผ๋ฅผ APIYI(apiyi.com)์—์„œ ๋น ๋ฅด๊ฒŒ ํ™•์ธํ•ด ๋ณด์„ธ์š”. Gemini ์ „ ์‹œ๋ฆฌ์ฆˆ ๋ชจ๋ธ์„ ์ง€์›ํ•˜๋ฉฐ, ํ†ตํ•ฉ ์ธํ„ฐํŽ˜์ด์Šค์™€ ์œ ์—ฐํ•œ ๊ณผ๊ธˆ ๋ฐฉ์‹์„ ํ†ตํ•ด ๋น ๋ฅธ ๋น„๊ต ํ…Œ์ŠคํŠธ์™€ ์šด์˜ ํ™˜๊ฒฝ ๋ฐฐํฌ์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.


์ž‘์„ฑ์ž: APIYI ๊ธฐ์ˆ  ํŒ€ | ๊ธฐ์ˆ ์ ์ธ ๋ฌธ์˜๊ฐ€ ์žˆ์œผ์‹œ๋ฉด APIYI(apiyi.com)๋ฅผ ๋ฐฉ๋ฌธํ•˜์—ฌ ๋” ๋งŽ์€ ๋Œ€๊ทœ๋ชจ ์–ธ์–ด ๋ชจ๋ธ ์—ฐ๋™ ์†”๋ฃจ์…˜์„ ํ™•์ธํ•ด ๋ณด์„ธ์š”.

Similar Posts