Gemini 3 및 2.5 시리즈 모델은 추론 및 다단계 계획 기능을 크게 개선하는 "사고 과정"을 사용하므로 코딩, 고급 수학, 데이터 분석과 같은 복잡한 작업에 매우 효과적입니다.
사고 모델을 사용하면 Gemini가 대답하기 전에 내부적으로 추론합니다. 상호작용 API는 steps 배열에서 함수 호출, 사용자 입력 또는 모델 출력과 함께 시간순으로 표시되는 전용 단계인 thought 단계를 통해 이 추론을 표시합니다.
모든 사고 단계에는 두 개의 필드가 포함됩니다.
| 필드 | 필수 | 설명 |
|---|---|---|
signature |
✅ 예 | 모델의 내부 추론 상태를 암호화하여 나타낸 것입니다. 모델이 최소한의 추론을 수행할 때도 항상 표시됩니다. |
summary |
❌ 아니요 | 추론을 요약하는 콘텐츠 (텍스트 또는 이미지) 배열입니다. thinking_summaries 구성, 모델이 충분한 추론을 수행했는지 여부 또는 콘텐츠 유형에 따라 비어 있을 수 있습니다 (예: 이미지 잠재 공간에는 텍스트 요약이 없을 수 있음). |
사고와의 상호작용
사고 모델과의 상호작용을 시작하는 것은 다른 상호작용 요청과 유사합니다. model 필드에서 사고 지원 모델 중 하나를 지정합니다.
Python
from google import genai
client = genai.Client()
interaction = client.interactions.create(
model="gemini-3.6-flash",
input="Explain the concept of Occam's Razor and provide a simple, everyday example."
)
print(interaction.output_text)
JavaScript
import { GoogleGenAI } from "@google/genai";
const client = new GoogleGenAI({});
const interaction = await client.interactions.create({
model: "gemini-3.6-flash",
input: "Explain the concept of Occam's Razor and provide a simple, everyday example."
});
console.log(interaction.output_text);
REST
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "gemini-3.6-flash",
"input": "Explain the concept of Occam'\''s Razor and provide a simple example."
}'
사고 요약
사고 요약은 모델의 내부 추론 과정에 대한 인사이트를 제공합니다.
기본적으로 최종 출력만 반환됩니다. thinking_summaries를 사용하여 사고 요약을 사용 설정할 수 있습니다.
Python
from google import genai
client = genai.Client()
interaction = client.interactions.create(
model="gemini-3.6-flash",
input="What is the sum of the first 50 prime numbers?",
generation_config={
"thinking_summaries": "auto"
}
)
for step in interaction.steps:
if step.type == "thought":
print("Thought summary:")
if step.summary:
for content_block in step.summary:
if content_block.type == "text":
print(content_block.text)
print()
elif step.type == "model_output":
for content_block in step.content:
if content_block.type