Gemini 생각

Gemini 2.5 시리즈 모델은 응답 생성 중에 내부 '사고 과정'을 사용합니다. 이 과정은 추론 능력을 향상시키고 여러 단계의 계획을 사용하여 복잡한 작업을 해결하는 데 도움이 됩니다. 따라서 이러한 모델은 계획이나 사고가 필요한 코딩, 고급 수학, 데이터 분석 등의 작업에 특히 적합합니다.

이 가이드에서는 Gemini API를 사용하여 Gemini의 사고 기능을 사용하는 방법을 보여줍니다.

사고 모델 사용

사고 기능이 있는 모델은 Google AI Studio 및 Gemini API를 통해 사용할 수 있습니다. 2.5 시리즈 모델은 프롬프트에 따라 언제, 얼마나 생각할지 자동으로 결정할 수 있으므로 API와 AI 스튜디오 모두에서 기본적으로 생각 기능이 사용 설정되어 있습니다. 대부분의 사용 사례에서는 생각을 계속하는 것이 좋습니다. 그러나 생각을 사용 중지하려면 thinkingBudget 매개변수를 0으로 설정하면 됩니다.

기본 요청 보내기

Python

from google import genai

client = genai.Client(api_key="GOOGLE_API_KEY")
prompt = "Explain the concept of Occam's Razor and provide a simple, everyday example."
response = client.models.generate_content(
    model="gemini-2.5-flash-preview-04-17",
    contents=prompt
)

print(response.text)

자바스크립트

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

const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });

async function main() {
  const prompt = "Explain the concept of Occam's Razor and provide a simple, everyday example.";

  const response = await ai.models.generateContent({
    model: "gemini-2.5-flash-preview-04-17",
    contents: prompt,
  });

  console.log(response.text);
}

main();

Go

// import packages here

func main() {
  ctx := context.Background()
  client, err := genai.NewClient(ctx, option.WithAPIKey(os.Getenv("GOOGLE_API_KEY")))
  if err != nil {
    log.Fatal(err)
  }
  defer client.Close()

  model := client.GenerativeModel("gemini-2.5-flash-preview-04-17")
  resp, err := model.GenerateContent(ctx, genai.Text("Explain the concept of Occam's Razor and provide a simple, everyday example."))
  if err != nil {
    log.Fatal(err)
  }
  fmt.Println(resp.Text())
}

REST

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-preview-04-17:generateContent?key=$GOOGLE_API_KEY" \
 -H 'Content-Type: application/json' \
 -X POST \
 -d '{
   "contents": [
     {
       "parts": [
         {
           "text": "Explain the concept of Occam\''s Razor and provide a simple, everyday example."
         }
       ]
     }
   ]
 }'
 ```

사고 모델에 예산 설정

thinkingBudget 매개변수는 모델이 대답을 생성할 때 사용할 수 있는 사고 토큰 수를 안내합니다. 일반적으로 토큰 수가 많을수록 복잡한 작업 해결에 필요한 자세한 사고를 사용할 수 있습니다. thinkingBudget는 0~24576 범위의 정수여야 합니다. 사고 예산을 0으로 설정하면 사고가 사용 중지됩니다.

프롬프트에 따라 모델이 토큰 예산을 오버플로하거나 언더플로할 수 있습니다.

Python

from google import genai
from google.genai import types

client = genai.Client()

response = client.models.generate_content(
    model="gemini-2.5-flash-preview-04-17",
    contents="Explain the Occam's Razor concept and provide everyday examples of it",
    config=types.GenerateContentConfig(
        thinking_config=types.ThinkingConfig(thinking_budget=1024)
    ),
)

print(response.text)

자바스크립트

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

const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });

async function main() {
  const response = await ai.models.generateContent({
    model: "gemini-2.5-flash-preview-04-17",
    contents: "Explain the Occam's Razor concept and provide everyday examples of it",
    config: {
      thinkingConfig: {
        thinkingBudget: 1024,
      },
    },
  });

  console.log(response.text);
}

main();

REST

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-preview-04-17:generateContent?key=$GOOGLE_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
  "contents": [
    {
      "parts": [
        {
          "text": "Explain the Occam\''s Razor concept and provide everyday examples of it"
        }
      ]
    }
  ],
  "generationConfig": {
    "thinkingConfig": {
          "thinkingBudget": 1024
    }
  }
}'

사고 모델을 사용한 도구

사고 모델을 Gemini의 도구 및 기능과 결합하여 텍스트 생성 외의 작업을 실행할 수 있습니다. 이를 통해 외부 시스템과 상호작용하거나, 코드를 실행하거나, 실시간 정보에 액세스하여 결과를 추론 및 최종 응답에 통합할 수 있습니다.

  • 검색 도구를 사용하면 모델이 외부 검색엔진을 쿼리하여 최신 정보 또는 학습 데이터 이외의 정보를 찾을 수 있습니다. 최근 사건이나 매우 구체적인 주제에 관한 질문에 유용합니다.

  • 코드 실행 도구를 사용하면 모델이 Python 코드를 생성하고 실행하여 계산을 수행하거나, 데이터를 조작하거나, 알고리즘으로 가장 잘 처리되는 문제를 해결할 수 있습니다. 모델은 코드의 출력을 수신하고 응답에 이를 사용할 수 있습니다.

  • 구조화된 출력을 사용하면 Gemini가 자동 처리에 적합한 구조화된 출력 형식인 JSON으로 응답하도록 제한할 수 있습니다. 이는 특히 모델의 출력을 애플리케이션에 통합하는 데 유용합니다.

  • 함수 호출은 사고 모델을 외부 도구 및 API에 연결하므로 적절한 함수를 호출할 시점과 제공할 매개변수를 추론할 수 있습니다.

권장사항

이 섹션에는 사고 모델을 효율적으로 사용하는 방법에 관한 안내가 포함되어 있습니다. 늘 그렇듯이 프롬프트 안내 및 권장사항을 따르면 최상의 결과를 얻을 수 있습니다.

디버깅 및 조종

  • 추론 검토: 사고 모델에서 예상한 응답을 받지 못하는 경우 Gemini의 추론 과정을 신중하게 분석하는 것이 도움이 될 수 있습니다. 태스크를 분류하고 결론에 도달한 방법을 확인하고 이 정보를 사용하여 올바른 결과를 얻을 수 있습니다.

  • 추론에 관한 안내 제공: 특히 긴 출력을 원하는 경우 프롬프트에 안내를 제공하여 모델이 사용하는 생각의 양을 제한하는 것이 좋습니다. 이렇게 하면 응답에 더 많은 토큰 출력을 예약할 수 있습니다.

작업 복잡성

  • 쉬운 작업 (생각을 사용하지 않을 수 있음): 간단한 요청의 경우 간단한 사실 검색이나 분류와 같은 복잡한 추론이 필요하지 않으며 생각할 필요가 없습니다. 예를 들면 다음과 같습니다.
    • "DeepMind은 어디에서 설립되었나요?"
    • "이 이메일은 회의를 요청하는 건가요 아니면 정보를 제공하는 건가요?"
  • 중간 작업 (기본값/약간의 생각): 많은 일반적인 요청은 어느 정도의 단계별 처리 또는 더 깊은 이해를 통해 도움이 됩니다. Gemini는 다음과 같은 작업에 사고 기능을 유연하게 사용할 수 있습니다.
    • 광합성과 성장을 비유해 봅니다.
    • 전기 자동차와 하이브리드 자동차를 비교 및 대조합니다.
  • 어려운 작업 (최대 사고 능력): 매우 복잡한 과제의 경우 AI는 전체 추론 및 계획 기능을 사용해야 하며, 답변을 제공하기 전에 여러 내부 단계를 거치는 경우가 많습니다. 예를 들면 다음과 같습니다.
    • AIME 2025의 문제 1을 풀어봅니다. 17b가 97b의 약수인 모든 정수 b > 9의 합계를 구합니다.
    • 사용자 인증을 비롯하여 실시간 주식 시장 데이터를 시각화하는 웹 애플리케이션의 Python 코드를 작성합니다. 최대한 효율적으로 진행합니다.

다음 단계