Hướng dẫn này sẽ giúp bạn bắt đầu sử dụng API generateContent cũ. Đối với các dự án và ứng dụng mới, bạn nên sử dụng Interactions API mới. API này cung cấp một giao diện đơn giản hoá cho quy trình công việc tác nhân và các mô hình mới nhất.
Hướng dẫn bắt đầu nhanh này cho bạn biết cách cài đặt
thư viện của chúng tôi và thực hiện yêu cầu đầu tiên, truyền trực tuyến
câu trả lời, xây dựng cuộc trò chuyện nhiều lượt và sử dụng các công cụ bằng phương thức
generateContent tiêu chuẩn.
Trước khi bắt đầu
Để sử dụng Gemini API, bạn cần có một khoá API để xác thực các yêu cầu, thực thi các giới hạn bảo mật và theo dõi mức sử dụng cho tài khoản của mình.
Tạo một khoá API trên AI Studio miễn phí để bắt đầu:
Cài đặt SDK Google GenAI
Python
Sử dụng Python 3.9 trở lên, hãy cài đặt gói
google-genai bằng lệnh
pip sau:
pip install -q -U google-genai
JavaScript
Sử dụng Node.js v18+, hãy cài đặt SDK Google Gen AI cho TypeScript và JavaScript bằng lệnh npm sau:
npm install @google/genai
Tạo văn bản
Sử dụng phương thức models.generate_content để
tạo câu trả lời bằng văn bản.
Python
from google import genai
client = genai.Client()
response = client.models.generate_content(
model="gemini-3.5-flash",
contents="Explain how AI works in a few words"
)
print(response.text)
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
async function main() {
const response = await ai.models.generateContent({
model: "gemini-3.5-flash",
contents: "Explain how AI works in a few words",
});
console.log(response.text);
}
main();
REST
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.5-flash:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [
{
"parts": [
{
"text": "Explain how AI works in a few words"
}
]
}
]
}'
Hiện câu trả lời theo thời gian thực
Theo mặc định, mô hình chỉ trả về câu trả lời sau khi toàn bộ quá trình tạo hoàn tất. Để có trải nghiệm nhanh hơn và mang tính tương tác hơn, bạn có thể truyền trực tuyến các phần câu trả lời khi chúng được tạo.
Python
response = client.models.generate_content_stream(
model="gemini-3.5-flash",
contents="Explain how AI works in detail"
)
for chunk in response:
print(chunk.text, end="", flush=True)
JavaScript
async function main() {
const responseStream = await ai.models.generateContentStream({
model: "gemini-3.5-flash",
contents: "Explain how AI works in detail",
});
for await (const chunk of responseStream) {
process.stdout.write(chunk.text);
}
}
main();
REST
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.5-flash:streamGenerateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
--no-buffer \
-X POST \
-d '{
"contents": [
{
"parts": [
{
"text": "Explain how AI works in detail"
}
]
}
]
}'
Cuộc trò chuyện nhiều lượt
Đối với cuộc trò chuyện nhiều lượt, SDK cung cấp trình trợ giúp chats có trạng thái để
xây dựng trải nghiệm trò chuyện nhiều lượt
tự động quản lý nhật ký cuộc trò chuyện.
Python
chat = client.chats.create(model="gemini-3.5-flash")
response1 = chat.send_message("I have 2 dogs in my house.")
print("Response 1:", response1.text)
response2 = chat.send_message("How many paws are in my house?")
print("Response 2:", response2.text)
JavaScript
async function main() {
const chat = ai.chats.create({ model: "gemini-3.5-flash" });
let response = await chat.sendMessage({ message: "I have 2 dogs in my house." });
console.log("Response 1:", response.text);
response = await chat.sendMessage({ message: "How many paws are in my house?" });
console.log("Response 2:", response.text);
}
main();
REST
# REST is stateless. You must pass the full conversation history in the request.
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.5-flash:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [
{
"role": "user",
"parts": [{"text": "I have 2 dogs in my house."}]
},
{
"role": "model",
"parts": [{"text": "That is nice! Two dogs mean you have plenty of company."}]
},
{
"role": "user",
"parts": [{"text": "How many paws are in my house?"}]
}
]
}'
Sử dụng công cụ
Mở rộng khả năng của mô hình bằng cách bám sát nguồn câu trả lời bằng Google Tìm kiếm để truy cập vào nội dung trên web theo thời gian thực. Mô hình sẽ tự động quyết định thời điểm tìm kiếm, thực thi các truy vấn và tổng hợp câu trả lời.
Python
from google import genai
from google.genai import types
config = types.GenerateContentConfig(
tools=[types.Tool(google_search=types.GoogleSearch())]
)
response = client.models.generate_content(
model="gemini-3.5-flash",
contents="Who won the euro 2024?",
config=config
)
print(response.text)
metadata = response.candidates[0].grounding_metadata
if metadata.web_search_queries:
print("\nSearch queries executed:")
for query in metadata.web_search_queries:
print(f" - {query}")
if metadata.grounding_chunks:
print("\nSources:")
for chunk in metadata.grounding_chunks:
print(f" - [{chunk.web.title}]({chunk.web.uri})")
JavaScript
async function main() {
const response = await ai.models.generateContent({
model: "gemini-3.5-flash",
contents: "Who won the euro 2024?",
config: {
tools: [{ googleSearch: {} }]
}
});
console.log(response.text);
const metadata = response.candidates[0]?.groundingMetadata;
if (metadata?.webSearchQueries) {
console.log("\nSearch queries executed:");
for (const query of metadata.webSearchQueries) {
console.log(` - ${query}`);
}
}
if (metadata?.groundingChunks) {
console.log("\nSources:");
for (const chunk of metadata.groundingChunks) {
console.log(` - [${chunk.web.title}](${chunk.web.uri})`);
}
}
}
main();
REST
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.5-flash:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-X POST \
-d '{
"contents": [
{
"parts": [
{"text": "Who won the euro 2024?"}
]
}
],
"tools": [
{
"google_search": {}
}
]
}'
Gemini API cũng hỗ trợ các công cụ tích hợp khác:
- Thực thi mã: Cho phép mô hình viết và chạy mã Python để giải quyết các bài toán phức tạp về toán học.
- Ngữ cảnh URL: Cho phép bạn bám sát nguồn câu trả lời trong các URL trang web cụ thể mà bạn cung cấp.
- Tìm tệp: Cho phép bạn tải tệp lên và bám sát nguồn câu trả lời trong nội dung của tệp bằng tính năng tìm kiếm theo ngữ nghĩa.
- Google Maps: Cho phép bạn bám sát nguồn câu trả lời trong dữ liệu vị trí và tìm kiếm địa điểm, chỉ đường và bản đồ.
- Sử dụng máy tính: Cho phép mô hình tương tác với màn hình máy tính ảo, bàn phím và chuột để thực hiện các tác vụ.
Gọi các hàm tuỳ chỉnh
Sử dụng lệnh gọi hàm để kết nối
các mô hình với các công cụ và API tuỳ chỉnh. Mô hình sẽ xác định thời điểm gọi hàm của bạn và trả về functionCall trong câu trả lời để ứng dụng của bạn thực thi.
Ví dụ này khai báo một hàm nhiệt độ giả và kiểm tra xem mô hình có muốn gọi hàm đó hay không.
Python
from google import genai
from google.genai import types
weather_function = {
"name": "get_current_temperature",
"description": "Gets the current temperature for a given location.",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city name, e.g. San Francisco",
},
},
"required": ["location"],
},
}
tools = types.Tool(function_declarations=[weather_function])
config = types.GenerateContentConfig(tools=[tools])
contents = ["What's the temperature in London?"]
response = client.models.generate_content(
model="gemini-3.5-flash",
contents=contents,
config=config,
)
part = response.candidates[0].content.parts[0]
if part.function_call:
fc = part.function_call
print(f"Model requested function: {fc.name} with args {fc.args}")
mock_result = {"temperature": "15C", "condition": "Cloudy"}
contents.append(response.candidates[0].content)
fn_response_part = types.Part.from_function_response(
name=fc.name,
response=mock_result,
id=fc.id
)
contents.append(types.Content(role="user", parts=[fn_response_part]))
final_response = client.models.generate_content(
model="gemini-3.5-flash",
contents=contents,
config=config,
)
print("Final Response:", final_response.text)
JavaScript
import { GoogleGenAI, Type } from '@google/genai';
async function main() {
const weatherFunction = {
name: 'get_current_temperature',
description: 'Gets the current temperature for a given location.',
parameters: {
type: Type.OBJECT,
properties: {
location: {
type: Type.STRING,
description: 'The city name, e.g. San Francisco',
},
},
required: ['location'],
},
};
const contents = [{
role: 'user',
parts: [{ text: "What's the temperature in London?" }]
}];
const response = await ai.models.generateContent({
model: 'gemini-3.5-flash',
contents: contents,
config: {
tools: [{ functionDeclarations: [weatherFunction] }],
},
});
if (response.functionCalls && response.functionCalls.length > 0) {
const fc = response.functionCalls[0];
console.log(`Model requested function: ${fc.name}`);
const mockResult = { temperature: "15C", condition: "Cloudy" };
contents.push(response.candidates[0].content);
contents.push({
role: 'user',
parts: [{
functionResponse: {
name: fc.name,
response: mockResult,
id: fc.id
}
}]
});
const finalResponse = await ai.models.generateContent({
model: 'gemini-3.5-flash',
contents: contents,
config: {
tools: [{ functionDeclarations: [weatherFunction] }],
},
});
console.log("Final Response:", finalResponse.text);
}
}
main();
REST
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.5-flash:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [
{
"role": "user",
"parts": [{"text": "What'\''s the temperature in London?"}]
}
],
"tools": [
{
"functionDeclarations": [
{
"name": "get_current_temperature",
"description": "Gets the current temperature for a given location.",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city name, e.g. San Francisco"
}
},
"required": ["location"]
}
}
]
}
]
}'
Bước tiếp theo
Bây giờ bạn đã bắt đầu sử dụng Gemini API, hãy khám phá các hướng dẫn sau để xây dựng các ứng dụng nâng cao hơn: