文本生成
Gemini API 可以根据文本、图片、视频和音频输入生成文本输出。
下面是一个基本示例:
Python
from google import genai
client = genai.Client()
interaction = client.interactions.create(
model="gemini-3-flash-preview",
input="How does AI work?"
)
print(interaction.steps[-1].content[0].text)
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
async function main() {
const interaction = await ai.interactions.create({
model: "gemini-3-flash-preview",
input: "How does AI work?",
});
console.log(interaction.steps.at(-1).content[0].text);
}
await main();
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-flash-preview",
"input": "How does AI work?"
}'
与 Gemini 一起思考
Gemini 模型通常默认启用“思考”功能,以便模型在回答请求之前进行推理。
每种模型都支持不同的思维配置,让您可以控制费用、延迟时间和智能程度。如需了解详情,请参阅思维指南。
Python
from google import genai
client = genai.Client()
interaction = client.interactions.create(
model="gemini-3-flash-preview",
input="How does AI work?",
generation_config={
"thinking_level": "low"
}
)
print(interaction.steps[-1].content[0].text)
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
async function main() {
const interaction = await ai.interactions.create({
model: "gemini-3-flash-preview",
input: "How does AI work?",
generation_config: {
thinking_level: "low",
},
});
console.log(interaction.steps.at(-1).content[0].text);
}
await main();
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-flash-preview",
"input": "How does AI work?",
"generation_config": {
"thinking_level": "low"
}
}'
系统指令和其他配置
您可以使用系统指令来引导 Gemini 模型的行为。传递 system_instruction 参数以配置模型的行为。
Python
from google import genai
client = genai.Client()
interaction = client.interactions.create(
model="gemini-3-flash-preview",
system_instruction="You are a cat. Your name is Neko.",
input="Hello there"
)
print(interaction.steps[-1].content[0].text)
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
async function main() {
const interaction = await ai.interactions.create({
model: "gemini-3-flash-preview",
input: "Hello there",
system_instruction: "You are a cat. Your name is Neko.",
});
console.log(interaction.steps.at(-1).content[0].text);
}
await main();
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-flash-preview",
"system_instruction": "You are a cat. Your name is Neko.",
"input": "Hello there"
}'
您还可以使用 generation_config 参数替换默认的生成参数(例如温度)。
Python
from google import genai
client = genai.Client()
interaction = client.interactions.create(
model="gemini-3-flash-preview",
input="Explain how AI works",
generation_config={
"temperature": 0.1
}
)
print(interaction.steps[-1].content[0].text)
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
async function main() {
const interaction = await ai.interactions.create({
model: "gemini-3-flash-preview",
input: "Explain how AI works",
generation_config: {
temperature: 0.1,
},
});
console.log(interaction.steps.at(-1).content[0].text);
}
await main();
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-flash-preview",
"input": "Explain how AI works",
"generation_config": {
"temperature": 0.1
}
}'
如需查看可配置参数及其说明的完整列表,请参阅 Interactions API 参考文档。
多模态输入
Gemini API 支持多模态输入,让您可以将文本与媒体文件相结合。以下示例演示了如何提供图片:
Python
from google import genai
client = genai.Client()
uploaded_file = client.files.upload(file="path/to/organ.jpg")
interaction = client.interactions.create(
model="gemini-3-flash-preview",
input=[
{"type": "text", "text": "Tell me about this instrument"},
{
"type": "image",
"uri": uploaded_file.uri,
"mime_type": uploaded_file.mime_type
}
]
)
print(interaction.steps[-1].content[0].text)
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
async function main() {
const uploadedFile = await ai.files.upload({
file: "path/to/organ.jpg",
config: { mimeType: "image/jpeg" }
});
const interaction = await ai.interactions.create({
model: "gemini-3-flash-preview",
input: [
{type: "text", text: "Tell me about this instrument"},
{
type: "image",
uri: uploadedFile.uri,
mimeType: uploadedFile.mimeType
}
],
});
console.log(interaction.steps.at(-1).content[0].text);
}
await main();
REST
# First upload the file using the Files API, then use the URI:
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-flash-preview",
"input": [
{"type": "text", "text": "Tell me about this instrument"},
{
"type": "image",
"uri": "YOUR_FILE_URI",
"mime_type": "image/jpeg"
}
]
}'
如需了解提供图片的其他方法和更高级的图片处理功能,请参阅我们的图片理解指南。 该 API 还支持文档、视频和音频输入和理解。
流式响应
默认情况下,模型仅在整个生成过程完成后才返回回答。
为了实现更流畅的互动,请使用流式传输来处理生成的响应块。
Python
from google import genai
client = genai.Client()
stream = client.interactions.create(
model="gemini-3-flash-preview",
input="Explain how AI works",
stream=True
)
for event in stream:
if event.event_type == "step.delta":
if event.delta.type == "text":
print(event.delta.text, end="")
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
async function main() {
const stream = await ai.interactions.create({
model: "gemini-3-flash-preview",
input: "Explain how AI works",
stream: true,
});
for await (const event of stream) {
if (event.type === "step.delta") {
if (event.delta.type === "text") {
process.stdout.write(event.delta.text);
}
}
}
}
await main();
REST
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions?alt=sse" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
--no-buffer \
-d '{
"model": "gemini-3-flash-preview",
"input": "Explain how AI works",
"stream": true
}'
多轮对话
Interactions API 支持使用 previous_interaction_id 将互动链接在一起,从而实现多轮对话。每个回合都是一次单独的互动,API 会自动管理对话记录。
Python
from google import genai
client = genai.Client()
interaction1 = client.interactions.create(
model="gemini-3-flash-preview",
input="I have 2 dogs in my house.",
)
print(interaction1.steps[-1].content[0].text)
interaction2 = client.interactions.create(
model="gemini-3-flash-preview",
input="How many paws are in my house?",
previous_interaction_id=interaction1.id,
)
print(interaction2.steps[-1].content[0].text)
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
async function main() {
const interaction1 = await ai.interactions.create({
model: "gemini-3-flash-preview",
input: "I have 2 dogs in my house.",
});
console.log("Response 1:", interaction1.steps.at(-1).content[0].text);
const interaction2 = await ai.interactions.create({
model: "gemini-3-flash-preview",
input: "How many paws are in my house?",
previousInteractionId: interaction1.id,
});
console.log("Response 2:", interaction2.steps.at(-1).content[0].text);
}
await main();
REST
RESPONSE1=$(curl -s -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-flash-preview",
"input": "I have 2 dogs in my house."
}')
INTERACTION_ID=$(echo "$RESPONSE1" | jq -r '.name')
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-flash-preview",
"input": "I have two dogs in my house. How many paws are in my house?",
"previous_interaction_id": "'$INTERACTION_ID'"
}'
通过将 previous_interaction_id 与流式传输方法相结合,流式传输还可用于多轮对话。
Python
from google import genai
client = genai.Client()
interaction1 = client.interactions.create(
model="gemini-3-flash-preview",
input="I have 2 dogs in my house.",
)
print(interaction1.steps[-1].content[0].text)
stream = client.interactions.create(
model="gemini-3-flash-preview",
input="How many paws are in my house?",
previous_interaction_id=interaction1.id,
stream=True
)
for event in stream:
if event.event_type == "step.delta":
if event.delta.type == "text":
print(event.delta.text, end="")
JavaScript
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
async function main() {
const interaction1 = await ai.interactions.create({
model: "gemini-3-flash-preview",
input: "I have 2 dogs in my house.",
});
console.log("Response 1:", interaction1.steps.at(-1).content[0].text);
const stream = await ai.interactions.create({
model: "gemini-3-flash-preview",
input: "How many paws are in my house?",
previousInteractionId: interaction1.id,
stream: true,
});
for await (const event of stream) {
if (event.type === "step.delta") {
if (event.delta.type === "text") {
process.stdout.write(event.delta.text);
}
}
}
}
await main();
REST
RESPONSE1=$(curl -s -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-flash-preview",
"input": "I have 2 dogs in my house."
}')
INTERACTION_ID=$(echo "$RESPONSE1" | jq -r '.name')
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions?alt=sse" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
--no-buffer \
-d '{
"model": "gemini-3-flash-preview",
"input": "How many paws are in my house?",
"previous_interaction_id": "'$INTERACTION_ID'",
"stream": true
}'
撰写提示的技巧!
如需了解如何充分利用 Gemini,请参阅我们的提示工程指南。