Gemini API 提供 Gemma 的代管存取權,您可將其做為程式設計 API,用於應用程式開發或原型設計。這個 API 是便利的替代方案,可取代自行設定的 Gemma 本機執行個體和 Web 服務,處理生成式 AI 工作。
支援的機型
Gemini API 支援下列 Gemma 4 模型:
gemma-4-31b-itgemma-4-26b-a4b-it
以下範例說明如何搭配使用 Gemma 和 Gemini API:
Python
from google import genai
client = genai.Client()
response = client.models.generate_content(
model="gemma-4-26b-a4b-it",
contents="Roses are red...",
)
print(response.text)
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI();
const response = await ai.models.generateContent({
model: "gemma-4-26b-a4b-it",
contents: "Roses are red...",
});
console.log(response.text);
REST
curl "https://generativelanguage.googleapis.com/v1beta/models/gemma-4-26b-a4b-it:generateContent" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts":[{"text": "Roses are red..."}]
}]
}'
您可以在多個平台 (例如行動裝置、網頁和雲端服務) 上,透過多種程式設計語言存取 Gemini API。如要進一步瞭解 Gemini API SDK 套件,請參閱 Gemini API SDK 下載頁面。如要瞭解 Gemini API 的一般簡介,請參閱 Gemini API 快速入門。
思考中
Gemma 4 採用內部「思考過程」,可最佳化多步驟推論,在演算法程式碼和進階數學證明等邏輯要求嚴格的領域,展現卓越效能。
Gemma 4 嚴格支援開啟或關閉這項功能,但您可以在 API 中將思考層級設為 "high",啟用這項功能。
以下範例說明如何啟動思考程序:
Python
from google import genai
from google.genai import types
client = genai.Client()
response = client.models.generate_content(
model="gemma-4-26b-a4b-it",
contents="What is the water formula?",
config=types.GenerateContentConfig(
thinking_config=types.ThinkingConfig(thinking_level="high")
),
)
print(response.text)
JavaScript
import { GoogleGenAI, ThinkingLevel } from "@google/genai";
const ai = new GoogleGenAI();
const response = await ai.models.generateContent({
model: "gemma-4-26b-a4b-it",
contents: "What is the water formula?",
config: {
thinkingConfig: {
thinkingLevel: ThinkingLevel.HIGH,
},
},
});
console.log(response.text);
REST
curl "https://generativelanguage.googleapis.com/v1beta/models/gemma-4-26b-a4b-it:generateContent" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts":[{"text": "What is the water formula?"}]
}],
"generationConfig": {
"thinkingConfig": {
"thinkingLevel": "high"
}
}
}'
進一步瞭解「思考」:
- Gemini API 思考型 (一般簡介)
- Gemma Thinking (Gemma 專屬功能)
圖像解讀
Gemma 4 模型可以處理圖片,因此許多過去需要特定領域模型才能完成的尖端開發人員用例,現在都能透過 Gemma 4 模型實現。
以下範例說明如何搭配使用 Gemma Image 輸入內容和 Gemini API:
Python
from google import genai
client = genai.Client()
my_file = client.files.upload(file="path/to/sample.jpg")
response = client.models.generate_content(
model="gemma-4-26b-a4b-it",
contents=[my_file, "Caption this image."],
)
print(response.text)
JavaScript
import {
GoogleGenAI,
createUserContent,
createPartFromUri,
} from "@google/genai";
const ai = new GoogleGenAI();
const myfile = await ai.files.upload({
file: "path/to/sample.jpg",
config: { mimeType: "image/jpeg" },
});
const response = await ai.models.generateContent({
model: "gemma-4-26b-a4b-it",
contents: createUserContent([
createPartFromUri(myfile.uri, myfile.mimeType),
"Caption this image.",
]),
});
console.log(response.text);
```
REST
IMAGE_PATH="cats-and-dogs.jpg"
MIME_TYPE=$(file -b --mime-type "${IMAGE_PATH}")
NUM_BYTES=$(wc -c < "${IMAGE_PATH}")
DISPLAY_NAME=IMAGE
tmp_header_file=upload-header.tmp
# Initial resumable request defining metadata.
curl "https://generativelanguage.googleapis.com/upload/v1beta/files" \
-D upload-header.tmp \
-H "X-Goog-Upload-Protocol: resumable" \
-H "X-Goog-Upload-Command: start" \
-H "X-Goog-Upload-Header-Content-Length: ${NUM_BYTES}" \
-H "X-Goog-Upload-Header-Content-Type: ${MIME_TYPE}" \
-H "Content-Type: application/json" \
-d "{'file': {'display_name': '${DISPLAY_NAME}'}}" 2> /dev/null
upload_url=$(grep -i "x-goog-upload-url: " "${tmp_header_file}" | cut -d" " -f2 | tr -d "\r")
rm "${tmp_header_file}"
# Upload the actual bytes.
curl "${upload_url}" \
-H "Content-Length: ${NUM_BYTES}" \
-H "X-Goog-Upload-Offset: 0" \
-H "X-Goog-Upload-Command: upload, finalize" \
--data-binary "@${IMAGE_PATH}" 2> /dev/null > file_info.json
file_uri=$(jq -r ".file.uri" file_info.json)
echo file_uri=$file_uri
# Now generate content using that file
curl "https://generativelanguage.googleapis.com/v1beta/models/gemma-4-26b-a4b-it:generateContent" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts":[
{"file_data":{"mime_type": "'"${MIME_TYPE}"'", "file_uri": "'"${file_uri}"'"}},
{"text": "Caption this image."}]
}]
}' 2> /dev/null > response.json
cat response.json
echo
jq -r ".candidates[].content.parts[].text" response.json
進一步瞭解圖像理解功能:
- Gemini API 圖像解讀 (一般簡介)
- Gemma 圖像理解 (Gemma 專屬功能)
系統指示
您可以傳遞系統指令,設定模型的行為:
Python
from google import genai
from google.genai import types
client = genai.Client()
response = client.models.generate_content(
model="gemma-4-26b-a4b-it",
config=types.GenerateContentConfig(
system_instruction="You are a wise Kyoto tea master. Speak calmly and poetically, using nature metaphors. Keep answers under 3 sentences."
),
contents="What is the purpose of the tea ceremony?"
)
print(response.text)
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI();
const response = await ai.models.generateContent({
model: "gemma-4-26b-a4b-it",
contents: "What is the purpose of the tea ceremony?",
config: {
systemInstruction: "You are a wise Kyoto tea master. Speak calmly and poetically, using nature metaphors. Keep answers under 3 sentences."
}
});
console.log(response.text);
REST
curl "https://generativelanguage.googleapis.com/v1beta/models/gemma-4-26b-a4b-it:generateContent" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts":[{"text": "What is the purpose of the tea ceremony?"}]
}],
"systemInstruction": {
"parts": [{"text": "You are a wise Kyoto tea master. Speak calmly and poetically, using nature metaphors. Keep answers under 3 sentences."}]
}
}'
多輪對話
SDK 提供聊天介面,可自動追蹤對話記錄:
Python
from google import genai
client = genai.Client()
chat = client.chats.create(model="gemma-4-26b-a4b-it")
response = chat.send_message("What are the three most famous castles in Japan?")
print(response.text)
response = chat.send_message("Which one should I visit in spring for cherry blossoms?")
print(response.text)
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI();
const chat = ai.chats.create({ model: "gemma-4-26b-a4b-it" });
let response = await chat.sendMessage({ message: "What are the three most famous castles in Japan?" });
console.log(response.text);
response = await chat.sendMessage({ message: "Which one should I visit in spring for cherry blossoms?" });
console.log(response.text);
REST
curl "https://generativelanguage.googleapis.com/v1beta/models/gemma-4-26b-a4b-it:generateContent" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [
{
"role": "user",
"parts": [{ "text": "What are the three most famous castles in Japan?" }]
},
{
"role": "model",
"parts": [{ "text": "Himeji Castle, Matsumoto Castle, and Kumamoto Castle are often considered the top three." }]
},
{
"role": "user",
"parts": [{ "text": "Which one should I visit in spring for cherry blossoms?" }]
}
]
}'
函式呼叫
將工具定義為函式宣告。模型會判斷何時呼叫函式:
Python
from google import genai
from google.genai import types
# Define the function declaration
get_weather = {
"name": "get_weather",
"description": "Get current weather for a given location.",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "City and state, e.g. 'San Francisco, CA'",
},
},
"required": ["location"],
},
}
client = genai.Client()
tools = types.Tool(function_declarations=[get_weather])
config = types.GenerateContentConfig(tools=[tools])
response = client.models.generate_content(
model="gemma-4-26b-a4b-it",
contents="Should I bring an umbrella to Kyoto today?",
config=config,
)
# The model returns a function call instead of text
if response.function_calls:
for fc in response.function_calls:
print(f"Function to call: {fc.name}")
print(f"ID: {fc.id}")
print(f"Arguments: {fc.args}")
else:
print("No function call found in the response.")
print(response.text)
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI();
const get_weather = {
name: "get_weather",
description: "Get current weather for a given location.",
parameters: {
type: "object",
properties: {
location: {
type: "string",
description: "City and state, e.g. 'San Francisco, CA'",
},
},
required: ["location"],
},
};
const response = await ai.models.generateContent({
model: "gemma-4-26b-a4b-it",
contents: "Should I bring an umbrella to Kyoto today?",
config: {
tools: [{ functionDeclarations: [get_weather] }]
}
});
if (response.functionCalls) {
for (const fc of response.functionCalls) {
console.log(`Function to call: ${fc.name}`);
console.log(`Arguments: ${JSON.stringify(fc.args)}`);
}
} else {
console.log("No function call found in the response.");
console.log(response.text);
}
REST
curl "https://generativelanguage.googleapis.com/v1beta/models/gemma-4-26b-a4b-it:generateContent" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts":[{"text": "Should I bring an umbrella to Kyoto today?"}]
}],
"tools": [{
"functionDeclarations": [{
"name": "get_weather",
"description": "Get current weather for a given location.",
"parameters": {
"type": "OBJECT",
"properties": {
"location": {
"type": "STRING",
"description": "City and state, e.g. 'San Francisco, CA'"
}
},
"required": ["location"]
}
}]
}]
}'
Google 搜尋
利用 Google 搜尋,根據即時網路資料建立 Gemma 4 回覆基準:
Python
from google import genai
from google.genai import types
client = genai.Client()
response = client.models.generate_content(
model="gemma-4-26b-a4b-it",
contents="What are the dates for cherry blossom season in Tokyo this year?",
config=types.GenerateContentConfig(
tools=[{"google_search":{}}]
),
)
print(response.text)
# Access grounding metadata for citations
for chunk in response.candidates[0].grounding_metadata.grounding_chunks:
print(f"Source: {chunk.web.title} — {chunk.web.uri}")
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI();
const response = await ai.models.generateContent({
model: "gemma-4-26b-a4b-it",
contents: "What are the dates for cherry blossom season in Tokyo this year?",
config: {
tools: [{ googleSearch: {} }]
}
});
console.log(response.text);
if (response.candidates?.[0]?.groundingMetadata?.groundingChunks) {
for (const chunk of response.candidates[0].groundingMetadata.groundingChunks) {
if (chunk.web) {
console.log(`Source: ${chunk.web.title} — ${chunk.web.uri}`);
}
}
}
REST
curl "https://generativelanguage.googleapis.com/v1beta/models/gemma-4-26b-a4b-it:generateContent" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts":[{"text": "What are the dates for cherry blossom season in Tokyo this year?"}]
}],
"tools": [{"googleSearch": {}}]
}'