Chế Độ Suy Luận Cao/Dynamic
Gemini 3 Pro mặc định sử dụng chế độ suy luận sâu, giúp mô hình phân tích và phản hồi tối ưu cho các yêu cầu phức tạp. Nếu bạn ưu tiên tốc độ phản hồi và không cần suy luận sâu, bạn có thể điều chỉnh mức độ tư duy của mô hình ở mức thấp hơn.
from google import genai
from google.genai import types
client = genai.Client()
response = client.models.generate_content(
model="gemini-3-pro-preview",
contents="Find the race condition in this multi-threaded C++ snippet: [code here]",
)
print(response.text)
—
Chế Độ Suy Luận Thấp
from google import genai
from google.genai import types
client = genai.Client()
response = client.models.generate_content(
model="gemini-3-pro-preview",
contents="How does AI work?",
config=types.GenerateContentConfig(
thinking_config=types.ThinkingConfig(thinking_level="low")
),
)
print(response.text)
—
Khám Phá

Khám phá bộ ứng dụng Gemini 3 để trải nghiệm khả năng giải quyết các bài toán suy luận nâng cao, tự động hóa lập trình và xử lý đa phương tiện của mô hình.
—
Làm Quen Với Gemini 3
Gemini 3 Pro là phiên bản đầu tiên thuộc thế hệ mô hình mới. gemini-3-pro-preview đặc biệt phù hợp cho các nhiệm vụ phức tạp đòi hỏi kiến thức tổng hợp và khả năng suy luận đa chiều.
| Model ID | Cửa sổ ngữ cảnh (Vào / Ra) | Thời điểm cập nhật kiến thức | Giá (Vào / Ra)* |
|---|---|---|---|
| gemini-3-pro-preview | 1 triệu / 64 nghìn | 01/2025 | $2 / $12 (<200k token) $4 / $18 (>200k token) |
Giá trên mỗi 1 triệu token cho văn bản thông thường; giá cho đầu vào đa phương tiện có thể khác.
Để biết thêm về giới hạn tốc độ, giá theo lô và thông tin chi tiết, xem tại trang mô hình.
—
Tính Năng API Mới Trong Gemini 3
Gemini 3 bổ sung nhiều tham số mới, giúp bạn dễ dàng kiểm soát hơn về độ trễ, chi phí và độ chính xác khi làm việc với dữ liệu đa phương tiện.
Mức Độ Tư Duy (thinking_level)
Tham số thinking_level dùng để điều chỉnh mức độ sâu của quá trình suy nghĩ trước khi mô hình trả lời. Gemini 3 coi đây là giới hạn tương đối về khả năng suy luận, không phải số token cố định. Nếu không thiết lập, mặc định là high.
low: Tối ưu tốc độ và tiết kiệm chi phí. Dùng cho tác vụ đơn giản, trò chuyện hoặc cần xử lý số lượng lớn.medium: (Sẽ ra mắt sau), hiện chưa hỗ trợ.high(mặc định): Ưu tiên tính toàn diện trong phân tích, phù hợp với yêu cầu cần suy luận sâu, thời gian phản hồi có thể lâu hơn.
⚠️ Lưu ý: Không được thiết lập đồng thời
thinking_levelvàthinking_budgettrong cùng một yêu cầu, nếu không sẽ báo lỗi 400.
—
Độ Phân Giải Đa Phương Tiện (media_resolution)
Gemini 3 cho phép bạn kiểm soát chi tiết cách đọc và xử lý hình ảnh/video thông qua tham sop media_resolution. Độ phân giải cao giúp mô hình nhận diện tốt các chi tiết nhỏ hoặc chữ viết nhỏ, nhưng đồng thời sẽ tiêu tốn nhiều token hơn và tăng độ trễ. Tham số này xác định số token tối đa cho mỗi hình ảnh hoặc khung video.
Bạn có thể đặt độ phân giải cho từng phần hoặc toàn bộ qua generation_config. Nếu không chỉ định, mô hình sẽ tự động chọn mức phù hợp.
Gợi ý sử dụng
| Loại đa phương tiện | Thiết lập đề xuất | Token tối đa | Gợi ý sử dụng |
|---|---|---|---|
| Hình ảnh | media_resolution_high | 1120 | Dùng cho các bài toán phân tích hình ảnh, nhận diện chi tiết. |
| media_resolution_medium | 560 | Phù hợp khi trích xuất nội dung tài liệu; mức medium thường cho kết quả tốt nhất. | |
| Video (chung) | media_resolution_low | 70/khung | Video bình thường nên dùng mức low hoặc medium để tối ưu hóa dung lượng ngữ cảnh. |
| Video (nhiều chữ) | media_resolution_high | 280/khung | Dùng khi cần nhận dạng nhiều chữ nhỏ (OCR) hay phân tích chi tiết khung hình. |
⭐ Lưu ý: Số token cho mỗi mức
media_resolutionthay đổi theo loại đầu vào. Hình ảnh: tăng tuyến tính (low: 280, medium: 560, high: 1120 token); video bị nén mạnh hơn (low/medium: 70, high: 280 token/khung). Xem thêm chi tiết tại đây.
from google import genai
from google.genai import types
import base64
# Tham số media_resolution hiện chỉ hỗ trợ ở phiên bản API v1alpha.
client = genai.Client(http_options={'api_version': 'v1alpha'})
response = client.models.generate_content(
model="gemini-3-pro-preview",
contents=[
types.Content(
parts=[
types.Part(text="What is in this image?"),
types.Part(
inline_data=types.Blob(
mime_type="image/jpeg",
data=base64.b64decode("..."),
),
media_resolution={"level": "media_resolution_high"}
)
]
)
]
)
print(response.text)
—
Nhiệt Độ (temperature)
Với Gemini 3, chúng tôi khuyến nghị nên giữ tham số nhiệt độ ở mức mặc định 1.0.
Các mô hình trước đây thường điều chỉnh nhiệt độ để cân bằng giữa sáng tạo và quyết đoán. Tuy nhiên, Gemini 3 đã tối ưu hóa khả năng suy luận ở mức mặc định này. Nếu bạn giảm nhiệt độ (nhất là dưới 1.0), mô hình có thể lặp lại hoặc giảm chất lượng kết quả, đặc biệt với bài toán phân tích/phức tạp.
—
Thought Signature
Gemini 3 sử dụng Thought signature để duy trì mạch suy luận liên tục qua các lần gọi API. Đây là một mã đại diện cho trạng thái tư duy nội bộ của mô hình. Để mô hình duy trì năng lực suy luận, bạn cần gửi lại các chữ ký này đúng như đã nhận được ở yêu cầu tiếp theo.
- Gọi hàm (bắt buộc): API sẽ kiểm tra chặt chẽ Thought signature ở từng lượt. Nếu thiếu sẽ báo lỗi 400.
- Trò chuyện/văn bản: Không bắt buộc, nhưng nếu không gửi lại, chất lượng suy luận và trả lời có thể giảm.
✅ Lưu ý: Khi bạn sử dụng SDK chính thức (Python, Node, Java) với lịch sử hội thoại chuẩn, Thought signature sẽ được SDK tự động xử lý.
—
Gọi Hàm (Function Call) – Kiểm Tra Nghiêm Ngặt
Khi Gemini thực hiện functionCall, mô hình dựa vào thoughtSignature để tiếp nối quá trình suy luận đúng mạch. “Một lượt” bao gồm tất cả các bước mô hình (functionCall) và người dùng (functionResponse) kể từ tin nhắn văn bản cuối cùng của người dùng.
- Một lần gọi hàm: Phần
functionCallsẽ đi kèm chữ ký, bạn cần gửi lại. - Gọi hàm song song: Chỉ lần gọi đầu chứa chữ ký. Gửi lại các phần đúng thứ tự nhận được.
- Nhiều bước (tuần tự): Nếu mô hình gọi nhiều công cụ trong cùng lượt, mỗi lần gọi sẽ sinh ra một chữ ký mới. Cần gửi lại tất cả chữ ký đã nhận trong lịch sử.
—
Văn Bản & Streaming
Với tác vụ trò chuyện hoặc sinh văn bản, không phải lúc nào cũng có thoughtSignature.
- Không streaming: Phản hồi cuối có thể chứa thoughtSignature, nếu có hãy gửi lại để duy trì kết quả tối ưu.
- Streaming: Nếu xuất hiện chữ ký, nó thường nằm ở phần cuối cùng với nội dung text rỗng. Hãy kiểm tra và gửi lại chữ ký nếu có.
—
Ví Dụ Mã
Gọi Hàm Nhiều Bước (Tuần Tự)
Người dùng ra lệnh gồm hai bước: (1) kiểm tra chuyến bay, (2) đặt taxi.
Bước 1: Mô hình gọi kiểm tra chuyến bay
Trả về thoughtSignature <Sig_A>
// Phản hồi mô hình (Lượt 1, Bước 1)
{
"role": "model",
"parts": [
{
"functionCall": { "name": "check_flight", "args": {...} },
"thoughtSignature": "<Sig_A>" // LƯU LẠI
}
]
}
Bước 2: Người dùng gửi kết quả chuyến bay
Cần trả lại <Sig_A> để mô hình tiếp tục suy luận.
// Yêu cầu người dùng (Lượt 1, Bước 2)
[
{ "role": "user", "parts": [{ "text": "Check flight AA100..." }] },
{
"role": "model",
"parts": [
{
"functionCall": { "name": "check_flight", "args": {...} },
"thoughtSignature": "<Sig_A>" // BẮT BUỘC
}
]
},
{ "role": "user", "parts": [{ "functionResponse": { "name": "check_flight", "response": {...} } }] }
]
Bước 3: Mô hình gọi công cụ taxi
Mô hình nhớ chuyến bay bị trễ qua <Sig_A>, tiếp tục sinh thoughtSignature mới <Sig_B>.
// Phản hồi mô hình (Lượt 1, Bước 3)
{
"role": "model",
"parts": [
{
"functionCall": { "name": "book_taxi", "args": {...} },
"thoughtSignature": "<Sig_B>" // LƯU LẠI
}
]
}
Bước 4: Người dùng gửi kết quả taxi
Kết thúc lượt, cần trả lại cả chuỗi <Sig_A> và <Sig_B>.
// Yêu cầu người dùng (Lượt 1, Bước 4)
[
// ... lịch sử trước ...
{
"role": "model",
"parts": [
{ "functionCall": { "name": "check_flight", ... }, "thoughtSignature": "<Sig_A>" }
]
},
{ "role": "user", "parts": [{ "functionResponse": {...} }] },
{
"role": "model",
"parts": [
{ "functionCall": { "name": "book_taxi", ... }, "thoughtSignature": "<Sig_B>" }
]
},
{ "role": "user", "parts": [{ "functionResponse": {...} }] }
]
—
Gọi Hàm Song Song
Người dùng hỏi: “Kiểm tra thời tiết tại Paris và London.” Mô hình trả về hai lần gọi hàm trong cùng một phản hồi.
// Yêu cầu người dùng (Gửi kết quả song song)
[
{
"role": "user",
"parts": [
{ "text": "Check the weather in Paris and London." }
]
},
{
"role": "model",
"parts": [
// 1. Lần gọi đầu có chữ ký
{
"functionCall": { "name": "check_weather", "args": { "city": "Paris" } },
"thoughtSignature": "<Signature_A>"
},
// 2. Lần gọi song song sau không có chữ ký
{
"functionCall": { "name": "check_weather", "args": { "city": "London" } }
}
]
},
{
"role": "user",
"parts": [
{
"functionResponse": { "name": "check_weather", "response": { "temp": "15C" } }
},
{
"functionResponse": { "name": "check_weather", "response": { "temp": "12C" } }
}
]
}
]
—
Suy Luận Trong Văn Bản (Không Bắt Buộc)
Khi mô hình chỉ trả về văn bản (không gọi hàm ngoài), thoughtSignature không bắt buộc. Tuy vậy, gửi lại chữ ký này giúp mô hình duy trì mạch suy luận cho các câu hỏi tiếp theo.
// Yêu cầu người dùng (Câu hỏi tiếp theo)
[
{
"role": "user",
"parts": [{ "text": "What are the risks of this investment?" }]
},
{
"role": "model",
"parts": [
{
"text": "I need to calculate the risk step-by-step. First, I'll look at volatility...",
"thoughtSignature": "<Signature_C>" // Nên gửi lại ở lượt tiếp theo
}
]
},
{
"role": "user",
"parts": [{ "text": "Summarize that in one sentence." }]
}
]
Di Trú hội thoại từ mô hình khác
Nếu bạn chuyển lịch sử hội thoại từ mô hình khác (ví dụ Gemini 2.5) hoặc tự thêm function call không được sinh bởi Gemini 3, sẽ không có thoughtSignature hợp lệ. Để bỏ qua kiểm tra nghiêm ngặt trong trường hợp này, hãy sử dụng: "thoughtSignature": "context_engineering_is_the_way_to_go"
—
Kết Hợp Công Cụ Trả Về Dữ Liệu Có Cấu Trúc
Gemini 3 hỗ trợ kết hợp kết quả dạng cấu trúc với các công cụ tích hợp như Google Search, Ngữ cảnh URL hoặc Thực thi mã.
from google import genai
from google.genai import types
from pydantic import BaseModel, Field
from typing import List
class MatchResult(BaseModel):
winner: str = Field(description="The name of the winner.")
final_match_score: str = Field(description="The final match score.")
scorers: List[str] = Field(description="The name of the scorer.")
client = genai.Client()
response = client.models.generate_content(
model="gemini-3-pro-preview",
contents="Search for all details for the latest Euro.",
config={
"tools": [
{"google_search": {}},
{"url_context": {}}
],
"response_mime_type": "application/json",
"response_json_schema": MatchResult.model_json_schema(),
},
)
result = MatchResult.model_validate_json(response.text)
print(result)
—
Di Chuyển từ Gemini 2.5
Gemini 3 là thế hệ mạnh nhất hiện tại, nâng cấp lớn so với Gemini 2.5 Pro. Khi chuyển đổi, lưu ý:
- Suy nghĩ: Nếu trước đây bạn phải viết prompt nhiều bước (chain-of-thought) để ép Gemini 2.5 suy luận, hãy thử Gemini 3 với
thinking_level: "high"và prompt đơn giản hơn. - Nhiệt độ: Nếu code cũ đặt nhiệt độ thấp để tăng quyết đoán, hãy bỏ thông số này và dùng mặc định 1.0 để tránh lặp hay sai sót ở tác vụ phức tạp.
- Nhận diện PDF/tài liệu: Độ phân giải OCR mặc định đã thay đổi. Nếu cần phân tích tài liệu phức tạp, hãy thử
media_resolution_highđể tăng độ chính xác. - Tiêu hao token: Chuyển sang Gemini 3 Pro có thể làm tăng số token với PDF nhưng giảm với video. Nếu vượt quá giới hạn ngữ cảnh do độ phân giải mặc định cao hơn, hãy giảm thủ công.
- Phân đoạn ảnh: Gemini 3 Pro không hỗ trợ phân đoạn ảnh (mask vật thể). Nếu cần, hãy tiếp tục dùng Gemini 2.5 Flash (tắt suy luận) hoặc Gemini Robotics-ER 1.5.
—
Tương Thích OpenAI
Nếu bạn sử dụng lớp tương thích OpenAI, các tham số chuẩn sẽ được tự động chuyển đổi sang Gemini:
reasoning_effort (OAI) sẽ ánh xạ sang thinking_level (Gemini). Lưu ý, mức trung bình của reasoning_effort tương ứng với thinking_level: high.
—
Hướng Dẫn Viết Prompt Hiệu Quả
Gemini 3 thiên về phân tích, do đó cách viết prompt cũng có thay đổi:
- Chỉ dẫn rõ ràng: Hãy trình bày ngắn gọn, trực tiếp. Gemini 3 phản hồi tốt nhất với hướng dẫn đơn giản, rõ ý. Nếu bạn dùng prompt quá phức tạp cho mô hình cũ, Gemini 3 có thể “phân tích quá mức”.
- Độ dài câu trả lời: Mặc định Gemini 3 trả lời ngắn gọn, đúng trọng tâm. Nếu bạn muốn phong cách thân thiện, trò chuyện hoặc nhiều ví dụ hơn, hãy ghi rõ trong prompt, ví dụ:
Explain this as a friendly, talkative assistant.
- Quản lý ngữ cảnh: Khi làm việc với dữ liệu lớn (sách, mã nguồn, video dài), nên đặt câu hỏi hoặc chỉ dẫn cụ thể ở cuối prompt, sau phần dữ liệu. Có thể bắt đầu câu hỏi bằng cụm như:
Dựa trên thông tin ở trên, ...
hoặc
Based on the information above, ...
Xem thêm về kỹ thuật xây dựng prompt tại hướng dẫn prompt engineering.
—
Câu Hỏi Thường Gặp
- Gemini 3 Pro cập nhật kiến thức đến thời điểm nào?
Gemini 3 có dữ liệu đến tháng 1/2025. Nếu muốn tra cứu thông tin mới hơn, hãy dùng Công cụ Google Search Grounding.
- Giới hạn cửa sổ ngữ cảnh là bao nhiêu?
Gemini 3 Pro hỗ trợ đầu vào tối đa 1 triệu token, đầu ra lên đến 64 nghìn token.
- Có phiên bản miễn phí Gemini 3 Pro không?
Bạn có thể trải nghiệm miễn phí trên Google AI Studio, nhưng hiện chưa hỗ trợ miễn phí qua Gemini API với gemini-3-pro-preview.
- Code cũ dùng
thinking_budgetcòn dùng được không?
Vẫn hỗ trợ để đảm bảo tương thích, nhưng khuyến nghị chuyển sang thinking_level để ổn định hơn. Không nên dùng cả hai cùng lúc.
- Gemini 3 có hỗ trợ Batch API không?
Có, Gemini 3 hỗ trợ Batch API.
- Có hỗ trợ Context Caching không?
Có, Context Caching áp dụng cho Gemini 3. Yêu cầu tối thiểu 2048 token để khởi tạo bộ nhớ đệm.
- Những công cụ nào được hỗ trợ trong Gemini 3?
Gemini 3 hỗ trợ Google Search, File Search, Code Execution, URL Context, và Function Calling cho công cụ tùy chỉnh. Lưu ý: Google Maps và Computer Use hiện chưa hỗ trợ.
—
Bước Tiếp Theo
- Bắt đầu với Gemini 3 Cookbook
- Xem hướng dẫn chi tiết về thinking level và cách chuyển từ thinking budget sang thinking level.
—
Tham khảo thêm các gợi ý ChatGPT sáng tạo nội dung hay nhất của tôi







