Gemini 생각

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

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

사고 모델 사용

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

기본 요청 보내기

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();
// 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())
}
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으로 설정하면 사고가 중지됩니다.

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

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();
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 코드를 작성합니다. 최대한 효율적으로 진행합니다.

다음 단계