Gemini 3.1 Pro API: 코드 예제 포함 개발자 가이드 (2026)
Gemini 3.1 Pro API 완벽 개발자 가이드. 모델 ID(gemini-3.1-pro-preview-customtools), 가격, Python 및 JavaScript 코드 예제, 커스텀 도구, 함수 호출, 앱 통합 방법을 다룹니다.
요약
| Gemini 3.1 Pro | |
|---|---|
| 모델 ID | gemini-3.1-pro, gemini-3.1-pro-preview-customtools |
| 컨텍스트 윈도우 | 1M 토큰 |
| 입력 가격 | $2/1M 토큰 |
| 출력 가격 | $12/1M 토큰 |
| 주요 기능 | 커스텀 도구, 함수 호출, 그라운딩, 멀티모달 (텍스트 + 이미지 + 오디오 + 비디오) |
| API | Google AI Studio / Vertex AI |
Gemini 3.1 Pro는 2026년 3월에 출시된 Google의 최신 프론티어 모델입니다. 토큰당 가장 저렴한 프론티어 API이며, 네이티브 1M 컨텍스트를 가지고, 커스텀 도구 — 구조화된 스키마로 모델에 외부 함수 접근을 제공하는 새로운 방법을 도입합니다.
모델 ID
Google은 Gemini 3.1 Pro의 두 가지 변형을 제공합니다:
| 모델 ID | 설명 | 상태 |
|---|---|---|
gemini-3.1-pro | 안정 릴리스, 일반 출시 | GA |
gemini-3.1-pro-preview-customtools | 향상된 커스텀 도구 지원 프리뷰 | Preview |
customtools 프리뷰 변형은 복잡한 함수 호출 체인에 대한 안정성이 향상되었습니다 — 도구 호출을 많이 사용하는 앱이라면 이것을 사용하세요. 일반 사용에는 안정된 gemini-3.1-pro를 권장합니다.
# Google AI Studio
model = "gemini-3.1-pro"
# Vertex AI
model = "gemini-3.1-pro@001"
빠른 시작: Python
설치
pip install google-genai
기본 텍스트 생성
from google import genai
client = genai.Client(api_key="YOUR_API_KEY")
response = client.models.generate_content(
model="gemini-3.1-pro",
contents="Explain quantum computing in 3 sentences."
)
print(response.text)
스트리밍
for chunk in client.models.generate_content_stream(
model="gemini-3.1-pro",
contents="Write a Python function to merge two sorted arrays."
):
print(chunk.text, end="")
빠른 시작: JavaScript
설치
npm install @google/genai
기본 텍스트 생성
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({ apiKey: "YOUR_API_KEY" });
const response = await ai.models.generateContent({
model: "gemini-3.1-pro",
contents: "Explain quantum computing in 3 sentences.",
});
console.log(response.text);
스트리밍
const stream = await ai.models.generateContentStream({
model: "gemini-3.1-pro",
contents: "Write a JavaScript function to merge two sorted arrays.",
});
for await (const chunk of stream) {
process.stdout.write(chunk.text);
}
Be first to build with AI
Y Build is the AI-era operating system for startups. Join the waitlist and get early access.
가격
Gemini 3.1 Pro는 2026년 3월 기준 가장 저렴한 프론티어 모델 API입니다.
| Gemini 3.1 Pro | GPT-5.2 | Claude Sonnet 4.6 | |
|---|---|---|---|
| 입력 | $2/1M | $5/1M | $3/1M |
| 출력 | $12/1M | $15/1M | $15/1M |
| 컨텍스트 | 1M | 400K | 1M (beta) |
| 100K 입력 + 20K 출력 비용 | $0.44 | $0.80 | $0.60 |
대규모에서 Gemini 3.1 Pro는 세션당 GPT-5.2보다 약 45% 저렴하고 Sonnet 4.6보다 약 27% 저렴합니다.
무료 요금제
Google AI Studio는 무료 요금제를 제공합니다:
- 분당 60 요청
- 분당 1M 토큰
- 신용카드 불필요
이는 3대 주요 제공업체 중 가장 관대한 무료 API 요금제입니다.
주요 기능
1M 토큰 컨텍스트 윈도우
Gemini 3.1 Pro는 네이티브로 100만 토큰의 컨텍스트를 지원합니다 — 다음과 같은 분량:
- ~700,000 단어의 텍스트
- ~30,000 줄의 코드
- ~1시간의 비디오
- ~11시간의 오디오
확장 컨텍스트를 베타 기능으로 제공하는 경쟁 모델과 달리, Gemini의 1M 컨텍스트는 완전히 GA이며 표준 컨텍스트와 같은 가격입니다.
커스텀 도구 (함수 호출)
커스텀 도구를 사용하면 Gemini가 생성 중에 호출할 수 있는 외부 함수를 정의할 수 있습니다. 모델이 도구를 호출할 시기를 결정하고, 인수를 구조화하고, 결과를 응답에 통합합니다.
이것이 gemini-3.1-pro-preview-customtools 변형이 최적화된 부분입니다.
Google 검색 기반 그라운딩
Gemini는 실시간 Google 검색 결과를 기반으로 응답을 그라운딩할 수 있습니다. 그라운딩을 활성화하면 환각을 줄이고 모델이 최신 정보를 사용하도록 합니다.
네이티브 멀티모달
단일 요청에서 텍스트, 이미지, 오디오, 비디오를 처리합니다. 별도의 비전이나 오디오 모델이 필요 없습니다 — Gemini가 모든 모달리티를 네이티브로 처리합니다.
코드 예제: 커스텀 도구 / 함수 호출
이 예제는 Gemini가 현재 날씨 조건을 가져오기 위해 호출할 수 있는 날씨 도구를 만듭니다.
Python
from google import genai
from google.genai import types
client = genai.Client(api_key="YOUR_API_KEY")
# Define the tool
weather_tool = types.Tool(
function_declarations=[
types.FunctionDeclaration(
name="get_weather",
description="Get the current weather for a city",
parameters=types.Schema(
type=types.Type.OBJECT,
properties={
"city": types.Schema(
type=types.Type.STRING,
description="City name, e.g. 'San Francisco'"
),
"unit": types.Schema(
type=types.Type.STRING,
enum=["celsius", "fahrenheit"],
description="Temperature unit"
),
},
required=["city"],
),
)
]
)
# Send request with tool
response = client.models.generate_content(
model="gemini-3.1-pro-preview-customtools",
contents="What's the weather like in Tokyo?",
config=types.GenerateContentConfig(
tools=[weather_tool],
),
)
# Check if the model wants to call a function
for part in response.candidates[0].content.parts:
if part.function_call:
print(f"Function: {part.function_call.name}")
print(f"Arguments: {part.function_call.args}")
# Output:
# Function: get_weather
# Arguments: {'city': 'Tokyo', 'unit': 'celsius'}
# In production, you'd call your actual weather API here,
# then send the result back to Gemini for a natural language response.
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({ apiKey: "YOUR_API_KEY" });
const weatherTool = {
functionDeclarations: [
{
name: "get_weather",
description: "Get the current weather for a city",
parameters: {
type: "OBJECT",
properties: {
city: {
type: "STRING",
description: "City name, e.g. 'San Francisco'",
},
unit: {
type: "STRING",
enum: ["celsius", "fahrenheit"],
description: "Temperature unit",
},
},
required: ["city"],
},
},
],
};
const response = await ai.models.generateContent({
model: "gemini-3.1-pro-preview-customtools",
contents: "What's the weather like in Tokyo?",
config: {
tools: [weatherTool],
},
});
// Check for function calls in the response
for (const part of response.candidates[0].content.parts) {
if (part.functionCall) {
console.log(`Function: ${part.functionCall.name}`);
console.log(`Arguments:`, part.functionCall.args);
}
}
코드 예제: 멀티모달 (이미지 + 텍스트)
Python
from google import genai
from google.genai import types
import base64
client = genai.Client(api_key="YOUR_API_KEY")
# Read a local image
with open("screenshot.png", "rb") as f:
image_data = f.read()
response = client.models.generate_content(
model="gemini-3.1-pro",
contents=[
types.Content(
parts=[
types.Part(text="What's in this screenshot? Describe the UI elements."),
types.Part(
inline_data=types.Blob(
mime_type="image/png",
data=image_data,
)
),
]
)
],
)
print(response.text)
JavaScript
import { GoogleGenAI } from "@google/genai";
import fs from "fs";
const ai = new GoogleGenAI({ apiKey: "YOUR_API_KEY" });
const imageData = fs.readFileSync("screenshot.png");
const base64Image = imageData.toString("base64");
const response = await ai.models.generateContent({
model: "gemini-3.1-pro",
contents: [
{
parts: [
{ text: "What's in this screenshot? Describe the UI elements." },
{
inlineData: {
mimeType: "image/png",
data: base64Image,
},
},
],
},
],
});
console.log(response.text);
API 비교: Gemini 3.1 Pro vs GPT-5.2 vs Claude Sonnet 4.6
| 기능 | Gemini 3.1 Pro | GPT-5.2 | Claude Sonnet 4.6 |
|---|---|---|---|
| 입력 가격 | $2/1M | $5/1M | $3/1M |
| 출력 가격 | $12/1M | $15/1M | $15/1M |
| 컨텍스트 윈도우 | 1M (GA) | 400K | 1M (beta) |
| 함수 호출 | 예 (커스텀 도구) | 예 | 예 (tool use) |
| 멀티모달 | 텍스트 + 이미지 + 오디오 + 비디오 | 텍스트 + 이미지 + 오디오 | 텍스트 + 이미지 |
| 그라운딩 | Google 검색 | 웹 브라우징 | 네이티브 그라운딩 없음 |
| 스트리밍 | 예 | 예 | 예 |
| 배치 API | 예 | 예 | 예 |
| 무료 요금제 | 60 RPM, 1M TPM | 제한적 | 제한적 |
| SDK 언어 | Python, JS, Go, Dart, Swift | Python, JS | Python, JS |
| 코딩 (SWE-bench) | 76.8% | 80.0% | 79.6% |
| 컴퓨터 사용 | N/A | 38.2% | 72.5% |
| 수학 (AIME) | ~88% | 100% | ~90% |
각 API를 선택할 때
Gemini 3.1 Pro를 선택할 때:- 비용이 주요 관심사일 때 (가장 저렴한 프론티어 API)
- 네이티브 비디오 또는 오디오 처리가 필요할 때
- 프로덕션에서 1M 컨텍스트가 필요할 때 (GA, 베타 아님)
- Google 검색 그라운딩이 필요할 때
- Google Cloud에서 구축할 때
- 수학 중심의 추론이 중요할 때
- OpenAI 생태계에 있을 때
- 보장된 JSON 스키마의 구조화된 출력이 필요할 때
- 간단한 쿼리의 속도가 가장 중요할 때
- 코딩과 에이전트 작업이 주요 사용 사례일 때
- 컴퓨터 사용 / 브라우저 자동화가 필요할 때
- 사무 생산성 작업 (문서, 스프레드시트)
- 프롬프트 인젝션 저항이 중요할 때 (에이전트 안전)
앱에 Gemini 3.1 Pro 통합하기
Y Build와 함께 사용
Y Build로 제품을 구축하고 있다면, 백엔드에 Gemini API를 직접 통합할 수 있습니다. Y Build 프로젝트는 Cloudflare Workers에 배포되며, 낮은 지연 시간으로 Gemini API를 호출할 수 있습니다.// In a Y Build project (Cloudflare Worker)
export async function onRequest(context) {
const response = await fetch(
"https://generativelanguage.googleapis.com/v1beta/models/gemini-3.1-pro:generateContent",
{
method: "POST",
headers: {
"Content-Type": "application/json",
"x-goog-api-key": context.env.GEMINI_API_KEY,
},
body: JSON.stringify({
contents: [{ parts: [{ text: "Your prompt here" }] }],
}),
}
);
const data = await response.json();
return new Response(JSON.stringify(data));
}
속도 제한
| 등급 | 요청/분 | 토큰/분 |
|---|---|---|
| Free | 60 | 1,000,000 |
| Pay-as-you-go | 1,000 | 4,000,000 |
| Enterprise | 맞춤형 | 맞춤형 |
자주 묻는 질문
gemini-3.1-pro-preview-customtools란?
Gemini 3.1 Pro의 커스텀 도구 및 함수 호출에 최적화된 프리뷰 변형입니다. 모델이 여러 도구 호출을 연결해야 할 때 안정성이 향상되었습니다. 앱이 함수 호출에 크게 의존한다면 사용하세요. 일반 텍스트 생성에는 안정된 gemini-3.1-pro 모델 ID를 사용하세요.
Gemini 3.1 Pro가 GPT-5.2보다 나은가요?
작업에 따라 다릅니다. Gemini 3.1 Pro는 더 저렴하고, 더 큰 컨텍스트 윈도우를 가지며, 더 많은 모달리티(비디오, 오디오)를 지원합니다. GPT-5.2는 코딩 벤치마크와 수학 추론에서 더 높은 점수를 받습니다. 예산 내 멀티모달 앱에는 Gemini가 우세합니다. 순수 추론 작업에는 GPT-5.2가 앞섭니다.
Gemini 3.1 Pro와 Claude Sonnet 4.6을 비교하면?
Gemini가 더 저렴하고 ($2/$12 vs $3/$15 / 백만 토큰) 네이티브 비디오/오디오 지원이 있습니다. Claude Sonnet 4.6은 코딩(SWE-bench 79.6% vs 76.8%), 컴퓨터 사용(72.5% vs N/A), 사무 작업에서 더 뛰어납니다. 멀티모달과 비용에는 Gemini를. 코딩과 에이전트에는 Claude를 선택하세요.
Gemini 3.1 Pro를 무료로 사용할 수 있나요?
네. Google AI Studio는 분당 60 요청과 분당 100만 토큰의 무료 요금제를 제공합니다. 신용카드가 필요 없습니다. 이는 개발, 테스트, 저트래픽 프로덕션 앱에 충분합니다.
Google AI Studio와 Vertex AI의 차이점은?
Google AI Studio는 더 간단한 개발자 중심 API입니다 — API 키로 가입하고 호출을 시작합니다. Vertex AI는 엔터프라이즈 플랫폼입니다 — Google Cloud에서 실행되며, 파인튜닝, 모델 배포, 모니터링, SLA를 제공합니다. 같은 모델, 다른 래퍼. AI Studio로 시작하고, 엔터프라이즈 기능이 필요할 때 Vertex AI로 이동하세요.
결론
Gemini 3.1 Pro는 2026년 3월 기준 최고 가성비 프론티어 API입니다. 백만 토큰당 $2/$12로 GPT-5.2의 약 절반, Claude Sonnet 4.6보다 약 1/3 저렴하며 — 네이티브 1M 컨텍스트와 가장 넓은 멀티모달 지원을 갖추고 있습니다.
AI 기반 제품을 구축하는 개발자에게 실용적인 조언은: 멀티모달과 비용에 민감한 작업에는 Gemini를, 코딩과 에이전트에는 Claude를, 수학 중심 추론에는 GPT-5.2를 사용하세요. 세 가지 모두를 활용한 모델 라우팅이 각각의 장점을 최대로 활용합니다.
AI 기반 제품을 구축하고 계신가요? Y Build가 전체 스택을 처리합니다 — AI 지원 코딩, Cloudflare 원클릭 배포, Demo Cut 제품 비디오, AI SEO, 분석. Gemini, Claude 또는 GPT API를 앱에 통합하고 몇 시간 만에 출시하세요. 무료로 시작.
출처:
Be first to build with AI
Y Build is the AI-era operating system for startups. Join the waitlist and get early access.