
Gemini 3.5 Flash API 使用指南:Model ID、定价与代码示例

Gemini 3.5 Flash 是 Google 最新的生产就绪 Flash 模型,已正式发布(GA)并可稳定用于大规模生产环境。它专为 Agent 工作流、编程 Agent、子 Agent 部署以及长周期任务而设计——兼具前沿级智能与 Flash 级别的速度和成本优势。
本指南涵盖将 Gemini 3.5 Flash 集成到应用程序所需的一切:Model ID、定价、Python 和 Node.js 代码示例、函数调用、结构化输出、Agent 工作流模式、成本分析,以及如何在 Flash 和 Pro 之间做出选择。
快速参考卡
| 项目 | 值 |
|---|---|
| Model ID | gemini-3.5-flash |
| 状态 | 正式发布(GA),生产环境稳定可用 |
| 输入定价 | $1.50 / 百万 token |
| 输出定价 | $9.00 / 百万 token |
| 上下文窗口 | 1,048,576 输入 token |
| 最大输出 | 65,535 token |
| 输入模态 | 文本、图片、视频、音频、PDF |
| 输出模态 | 仅文本 |
| 函数调用 | 支持 |
| 结构化输出 | 支持 |
| 代码执行 | 支持 |
| 搜索锚定 | 支持 |
| 上下文缓存 | 支持 |
| Batch API | 支持 |
| 流式输出 | 支持 |
目录
- 何时使用 Gemini 3.5 Flash
- Gemini 3.5 Flash 与其他 Gemini 模型对比
- 定价详解
- 设置:2 分钟快速入门
- 代码示例
- 函数调用
- 结构化输出
- 编程 Agent 工作流
- 子 Agent 部署模式
- 成本分析:Agent 循环的实际开销
- 成本控制策略
- 常见错误及规避方法
- 何时不应使用 Gemini 3.5 Flash
- 常见问题
何时使用 Gemini 3.5 Flash
Gemini 3.5 Flash 并非通用型廉价模型。Google 将其明确定位于特定的高价值工作负载,在这些场景中速度、每次迭代成本和工具支持比最大推理深度更重要。
最佳应用场景
| 应用场景 | 为何适合 Gemini 3.5 Flash | 评估指标 |
|---|---|---|
| 编程 Agent | 以 Flash 级速度进行快速代码生成、调试、重构 | 修复所需迭代次数、每次会话成本、diff 质量 |
| Agent 工作流 | 原生函数调用、并行执行循环、低单次调用成本 | 工具调用准确率、回退率、总工作流成本 |
| 子 Agent 部署 | 在多 Agent 系统中作为子 Agent 部署,单次调用经济性突出 | 子调用延迟、错误率、编排开销 |
| 长周期任务 | 1M 上下文可处理完整代码库和多文档分析而不截断 | 上下文利用率、高 token 数下的输出质量 |
| 文档处理 | PDF、音频、视频输入统一定价——无模态附加费 | 提取准确率、每文档处理成本 |
| 生产级聊天 | 内置推理能力,具备 Flash 级延迟,适合面向用户的应用 | 首 token 时间、用户满意度、每次对话成本 |
应用场景决策树
按以下顺序自问:
- 该任务是否需要最深层次的推理? 如果是 → Gemini 3.1 Pro。
- 这是否为高量级的简单任务(分类、路由、提取)? 如果是 → Gemini 3.1 Flash Lite。
- 该任务是否涉及编程、Agent、工具或长上下文? 如果是 → Gemini 3.5 Flash。
- 这是通用的生产级聊天或摘要任务? 如果是 → Gemini 3.5 Flash 或 Gemini 2.5 Flash(根据你的工作负载进行对比)。
Gemini 3.5 Flash 与其他 Gemini 模型对比
这是对生产路由决策至关重要的对比。
| 特性 | Gemini 3.5 Flash | Gemini 3.1 Pro | Gemini 3 Flash | Gemini 3.1 Flash Lite | Gemini 2.5 Flash |
|---|---|---|---|---|---|
| 状态 | GA,稳定 | 预览版 | 预览版 | 预览版 | 稳定 |
| 最适用于 | Agent、编程、长周期 | 最高难度推理 | 通用快速工作负载 | 大批量处理 | 生产级聊天 |
| 输入成本 | $1.50/MTok | $2–$4/MTok | $0.50/MTok | $0.25/MTok | $0.30/MTok |
| 输出成本 | $9.00/MTok | $12–$18/MTok | $3.00/MTok | $1.50/MTok | $2.50/MTok |
| 上下文 | 1M / 65K | 1M / 64K | 1M / 64K | 1M / 64K | 1M / 64K |
| 推理能力 | 内置推理 | 最深层次(思维链) | 标准 | 轻量级 | 标准 |
| 函数调用 | 是 | 是 | 是 | 是 | 是 |
| 代码执行 | 是 | 是 | 是 | 是 | 是 |
| 生产就绪度 | GA | 预览版 | 预览版 | 预览版 | 稳定 |
定价详解
标准定价
| Token 类型 | 每百万 token 价格 |
|---|---|
| 文本输入 | $1.50 |
| 文本输出 | $9.00 |
| 音频输入 | 与文本统一(无附加费) |
| 图片输入 | 与文本统一(无附加费) |
| 视频输入 | 与文本统一(无附加费) |
| PDF 输入 | 与文本统一(无附加费) |
成本降低方式
| 方式 | 工作原理 | 最适用于 |
|---|---|---|
| 上下文缓存 | 缓存重复的输入前缀;缓存命中的成本低于新输入 | Agent 循环、重复代码上下文、系统提示词 |
| Batch API | 以批量方式提交请求进行离线处理,享受折扣价 | 测试生成、批量提取、离线分析 |
| EvoLink 积分 | 预购积分享受批量折扣 | 月度用量可预测的团队 |
实际成本示例
| 场景 | 输入 token | 输出 token | 预估成本 |
|---|---|---|---|
| 单次文本问答 | ~500 | ~200 | $0.003 |
| 代码审查(1 个文件,约 2K 行) | ~8,000 | ~2,000 | $0.03 |
| 编程 Agent 会话(20 次迭代) | ~80,000 | ~20,000 | $0.30 |
| 完整代码库分析(500K 上下文) | ~500,000 | ~10,000 | $0.84 |
| PDF 文档提取(100 页) | ~150,000 | ~5,000 | $0.27 |
| 8 小时 Agent 持续部署 | ~2,000,000 | ~500,000 | $7.50 |
以上估算基于标准付费层定价,未使用缓存。在重复前缀占比较高的 Agent 循环中,上下文缓存可以显著降低输入成本;实际节省取决于缓存命中率、可缓存 token 占比和缓存时长。
设置:2 分钟快速入门
第 1 步:获取 EvoLink API Key
第 2 步:安装 OpenAI SDK
EvoLink 兼容 OpenAI,因此可以使用标准 OpenAI SDK:
pip install openainpm install openai第 3 步:发送第一个请求
from openai import OpenAI
client = OpenAI(
api_key="your-evolink-api-key",
base_url="https://api.evolink.ai/v1"
)
response = client.chat.completions.create(
model="gemini-3.5-flash",
messages=[
{"role": "user", "content": "What is Gemini 3.5 Flash best at?"}
]
)
print(response.choices[0].message.content)import OpenAI from "openai";
const client = new OpenAI({
apiKey: "your-evolink-api-key",
baseURL: "https://api.evolink.ai/v1",
});
const response = await client.chat.completions.create({
model: "gemini-3.5-flash",
messages: [
{ role: "user", content: "What is Gemini 3.5 Flash best at?" },
],
});
console.log(response.choices[0].message.content);搞定。无需 Google 专用 SDK,无需单独的认证流程,无需 Vertex AI 设置。
代码示例
带系统提示词的基本文本请求
response = client.chat.completions.create(
model="gemini-3.5-flash",
messages=[
{"role": "system", "content": "You are a senior software engineer. Be concise and precise."},
{"role": "user", "content": "Explain the difference between a mutex and a semaphore in 3 sentences."}
],
temperature=0.3,
max_tokens=512
)多模态:图片分析
import base64
with open("screenshot.png", "rb") as f:
image_data = base64.b64encode(f.read()).decode()
response = client.chat.completions.create(
model="gemini-3.5-flash",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "What error is shown in this screenshot? Suggest a fix."},
{"type": "image_url", "image_url": {"url": f"data:image/png;base64,{image_data}"}}
]
}
]
)所有多模态输入与文本共享相同的 token 定价——无音频或视频附加费。
流式输出
对于需要在生成过程中逐步显示 token 的交互式应用:
stream = client.chat.completions.create(
model="gemini-3.5-flash",
messages=[{"role": "user", "content": "Write a Python function that validates email addresses."}],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)const stream = await client.chat.completions.create({
model: "gemini-3.5-flash",
messages: [{ role: "user", content: "Write a Python function that validates email addresses." }],
stream: true,
});
for await (const chunk of stream) {
const content = chunk.choices[0]?.delta?.content;
if (content) process.stdout.write(content);
}多轮对话
messages = [
{"role": "system", "content": "You are a helpful coding assistant."},
{"role": "user", "content": "Write a linked list implementation in Python."},
]
# First turn
response = client.chat.completions.create(model="gemini-3.5-flash", messages=messages)
assistant_message = response.choices[0].message.content
messages.append({"role": "assistant", "content": assistant_message})
# Follow-up
messages.append({"role": "user", "content": "Now add a reverse() method."})
response = client.chat.completions.create(model="gemini-3.5-flash", messages=messages)
print(response.choices[0].message.content)函数调用
Gemini 3.5 Flash 支持原生函数调用,这对 Agent 工作流至关重要。定义工具,让模型决定何时调用它们。
Python 示例
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get current weather for a location",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string", "description": "City name"},
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]}
},
"required": ["location"]
}
}
},
{
"type": "function",
"function": {
"name": "search_database",
"description": "Search the internal knowledge base",
"parameters": {
"type": "object",
"properties": {
"query": {"type": "string", "description": "Search query"},
"limit": {"type": "integer", "description": "Max results to return"}
},
"required": ["query"]
}
}
}
]
response = client.chat.completions.create(
model="gemini-3.5-flash",
messages=[{"role": "user", "content": "What's the weather in Tokyo and find articles about climate change?"}],
tools=tools,
tool_choice="auto"
)
# The model may call one or both tools
for tool_call in response.choices[0].message.tool_calls:
print(f"Function: {tool_call.function.name}")
print(f"Arguments: {tool_call.function.arguments}")Node.js 示例
const tools = [
{
type: "function",
function: {
name: "run_tests",
description: "Run the test suite and return results",
parameters: {
type: "object",
properties: {
test_file: { type: "string", description: "Path to test file" },
verbose: { type: "boolean", description: "Show detailed output" },
},
required: ["test_file"],
},
},
},
];
const response = await client.chat.completions.create({
model: "gemini-3.5-flash",
messages: [{ role: "user", content: "Run the tests for auth module" }],
tools,
tool_choice: "auto",
});
const toolCalls = response.choices[0].message.tool_calls;
for (const call of toolCalls) {
console.log(`Call: ${call.function.name}(${call.function.arguments})`);
}函数调用最佳实践
| 实践 | 原因 |
|---|---|
| 编写清晰的函数描述 | 模型依靠描述来决定何时调用每个工具 |
使用 required 字段 | 防止模型遗漏关键参数 |
| 保持参数 schema 简洁 | 复杂的嵌套 schema 会增加错误率 |
| 处理并行工具调用 | Gemini 3.5 Flash 可在单次响应中调用多个工具 |
| 验证工具调用参数 | 执行前务必验证——不要盲目信任模型输出 |
结构化输出
对于需要机器可读结果的工作流,可使用 JSON 模式或响应格式:
response = client.chat.completions.create(
model="gemini-3.5-flash",
messages=[
{"role": "system", "content": "Extract structured data from the text. Return valid JSON only."},
{"role": "user", "content": "John Smith, age 34, works at Acme Corp as a senior engineer since 2022. Email: [email protected]"}
],
response_format={"type": "json_object"}
)
import json
data = json.loads(response.choices[0].message.content)
print(data)
# {"name": "John Smith", "age": 34, "company": "Acme Corp", "role": "senior engineer", "start_year": 2022, "email": "[email protected]"}何时使用结构化输出
| 场景 | 格式 | 原因 |
|---|---|---|
| 从文档提取数据 | JSON 模式 | 下游系统需要结构化数据 |
| Agent 工具响应 | JSON 模式 | 工具编排器需要可解析的输出 |
| 分类任务 | JSON 模式 | 需要一致的标签字段,而非自由文本 |
| 代码生成 | 纯文本 | 代码本身已有结构;JSON 包装会增加额外开销 |
| 解释和聊天 | 纯文本 | 自然语言在不使用 JSON 时可读性更好 |
编程 Agent 工作流
这是 Gemini 3.5 Flash 最高价值的应用场景。以下是完整的编程 Agent 循环:
from openai import OpenAI
import subprocess
import json
client = OpenAI(api_key="your-evolink-api-key", base_url="https://api.evolink.ai/v1")
def run_tests(test_file: str) -> dict:
"""Run tests and return results."""
result = subprocess.run(["python", "-m", "pytest", test_file, "-v", "--tb=short"],
capture_output=True, text=True, timeout=60)
return {"passed": result.returncode == 0, "output": result.stdout + result.stderr}
def read_file(path: str) -> str:
with open(path) as f:
return f.read()
def write_file(path: str, content: str):
with open(path, "w") as f:
f.write(content)
# Initial context
module_code = read_file("src/auth.py")
test_code = read_file("tests/test_auth.py")
test_result = run_tests("tests/test_auth.py")
messages = [
{"role": "system", "content": """You are a coding agent. Your job is to fix failing tests.
Rules:
1. Read the code and test output carefully.
2. Identify the root cause.
3. Output the complete fixed file content.
4. Do not change test expectations — fix the implementation."""},
{"role": "user", "content": f"""Module code:\n```python\n{module_code}\n```\n\nTest code:\n```python\n{test_code}\n```\n\nTest output:\n```\n{test_result['output']}\n```"""}
]
MAX_ITERATIONS = 15
for i in range(MAX_ITERATIONS):
response = client.chat.completions.create(
model="gemini-3.5-flash",
messages=messages,
temperature=0.2,
max_tokens=8192
)
reply = response.choices[0].message.content
messages.append({"role": "assistant", "content": reply})
# Extract and apply the fix
if "```python" in reply:
code_block = reply.split("```python")[1].split("```")[0]
write_file("src/auth.py", code_block)
# Re-run tests
test_result = run_tests("tests/test_auth.py")
if test_result["passed"]:
print(f"All tests pass after {i + 1} iterations.")
break
messages.append({"role": "user", "content": f"Tests still failing:\n```\n{test_result['output']}\n```\nAnalyze the failure and try again."})
else:
print(f"Failed to fix after {MAX_ITERATIONS} iterations.")Agent 循环性能建议
| 建议 | 影响 |
|---|---|
使用 temperature=0.2 实现确定性修复 | 减少迭代间的随机波动 |
设置 max_tokens=8192 用于代码输出 | 防止大文件被截断 |
| 在上下文中包含测试输出 | 为模型提供具体的失败信号 |
| 限制迭代次数(15–20) | 防止模型卡住时成本失控 |
| 使用上下文缓存 | 每次迭代发送相同的代码上下文——缓存命中可降低重复输入成本 |
子 Agent 部署模式
在多 Agent 系统中,Gemini 3.5 Flash 非常适合作为子 Agent 处理特定任务,而由协调者(Pro 或其他模型)管理整体工作流:
def coding_sub_agent(task: str, context: str) -> str:
"""Fast coding sub-agent using Gemini 3.5 Flash."""
response = client.chat.completions.create(
model="gemini-3.5-flash",
messages=[
{"role": "system", "content": "You are a fast coding sub-agent. Complete the task concisely."},
{"role": "user", "content": f"Context:\n{context}\n\nTask:\n{task}"}
],
temperature=0.2,
max_tokens=4096
)
return response.choices[0].message.content
def reasoning_agent(task: str) -> str:
"""Deep reasoning agent using EvoLink's Gemini 3.1 Pro route for complex decisions."""
response = client.chat.completions.create(
model="gemini-3.1-pro-preview",
messages=[
{"role": "system", "content": "You are a senior architect. Analyze deeply and decide."},
{"role": "user", "content": task}
],
temperature=0.3,
max_tokens=4096
)
return response.choices[0].message.content
# Coordinator pattern: Pro decides, Flash executes
plan = reasoning_agent("Design a refactoring plan for the auth module to support OAuth2.")
subtasks = parse_subtasks(plan)
results = []
for subtask in subtasks:
result = coding_sub_agent(subtask, context=module_code)
results.append(result)多 Agent 系统中各角色的模型选择
| Agent 角色 | 推荐模型 | 原因 |
|---|---|---|
| 协调者/规划者 | Gemini 3.1 Pro route | 架构决策需要最深层次的推理 |
| 编程子 Agent | Gemini 3.5 Flash | 快速迭代、良好代码质量、低单次调用成本 |
| 分类/路由 | Gemini 3.1 Flash Lite | 简单结构化决策的最低成本选择 |
| 文档分析 | Gemini 3.5 Flash | 1M 上下文 + 多模态处理 PDF 和图片 |
| 验证/审查 | Gemini 3.5 Flash 或 Pro | 取决于审查的关键程度 |
成本分析:Agent 循环的实际开销
大多数开发者低估了 Agent 成本,因为他们只关注单次请求定价。以下是一个真实的成本拆解:
编程 Agent:20 次迭代调试会话
| 阶段 | 输入 token | 输出 token | 输入成本 | 输出成本 |
|---|---|---|---|---|
| 第 1 次迭代(完整上下文) | 8,000 | 2,000 | $0.012 | $0.018 |
| 第 2–5 次迭代(上下文增长) | 40,000 | 6,000 | $0.060 | $0.054 |
| 第 6–10 次迭代(大上下文) | 60,000 | 5,000 | $0.090 | $0.045 |
| 第 11–20 次迭代(趋于平稳) | 100,000 | 7,000 | $0.150 | $0.063 |
| 合计 | 208,000 | 20,000 | $0.312 | $0.180 |
| 会话总计 | $0.49 |
使用上下文缓存(假设重复代码上下文的缓存命中率为 50%):
| 不使用缓存 | 使用缓存 | 节省 | |
|---|---|---|---|
| 输入成本 | $0.312 | 显著降低 | 取决于缓存命中率 |
| 输出成本 | $0.180 | $0.180 | 0% |
| 合计 | $0.492 | 显著降低 | 可根据缓存命中率降低整体会话成本 |
成本对比:同一 Agent 会话在不同模型上的表现
| 模型 | 输入成本 | 输出成本 | 会话总计 | 质量权衡 |
|---|---|---|---|---|
| Gemini 3.5 Flash | $0.312 | $0.180 | $0.49 | 编程 Agent 的最佳平衡点 |
| Gemini 3.1 Pro | $0.416–$0.832 | $0.240–$0.360 | $0.66–$1.19 | 更深推理,2–3 倍成本 |
| Gemini 3 Flash | $0.104 | $0.060 | $0.16 | 更便宜但编程能力较弱 |
| Gemini 3.1 Flash Lite | $0.052 | $0.030 | $0.08 | 最便宜但推理能力有限 |
成本控制策略
1. 启用上下文缓存
如果你的 Agent 重复发送相同的代码上下文,上下文缓存可在缓存命中时降低输入成本。对于多轮编程会话,实际节省取决于重复上下文占比、缓存命中率和缓存时长。
2. 对非紧急工作使用 Batch API
对于测试生成、批量提取或离线代码分析,Batch API 提供折扣价格。延迟更高但每 token 成本更低。
3. 设置 Max Tokens
max_tokens 以防止意外的超长输出导致成本膨胀:response = client.chat.completions.create(
model="gemini-3.5-flash",
messages=messages,
max_tokens=4096 # Reasonable limit for code output
)4. 按任务复杂度路由
不要对所有任务使用同一个模型。构建路由层:
def route_request(task_type: str) -> str:
routing_table = {
"architecture": "gemini-3.1-pro-preview", # Deep reasoning
"coding": "gemini-3.5-flash", # Fast iteration
"classification": "gemini-3.1-flash-lite", # Cheapest
"review": "gemini-3.5-flash", # Good balance
"chat": "gemini-3.5-flash", # Production default
}
return routing_table.get(task_type, "gemini-3.5-flash")5. 监控 Token 使用量
跟踪每个请求的输入和输出 token 数。定期检查用量,必要时在业务侧设置预算或限流。
6. 尽可能截断上下文
如果只需要最后 50K token,就不要发送全部 1M token 的上下文。裁剪旧的对话轮次,只保留相关上下文。
常见错误及规避方法
| 错误 | 后果 | 修复方法 |
|---|---|---|
| 在各处硬编码 Model ID | 无法在不修改代码的情况下切换模型 | 将 Model ID 存储在配置中;按任务类型路由 |
未设置 max_tokens | 输出可能意外地过长且成本高昂 | 始终设置合理的输出限制 |
| 每次迭代发送完整上下文而不使用缓存 | 输入成本随迭代线性增长 | 为重复前缀启用上下文缓存 |
| 将 Flash 用于需要深层推理的任务 | 复杂架构决策的准确率较低 | 将最难的步骤路由到 Gemini 3.1 Pro |
| 将 Pro 用于 Flash 能胜任的任务 | 2–3 倍成本,质量提升有限 | 默认使用 Flash;仅在需要时升级到 Pro |
| 预算估算中忽略重试成本 | 实际成本高于单次请求的估算 | 在计算中纳入重试率和回退成本 |
| 不验证函数调用参数 | 模型输出无效参数 | 执行前务必验证工具调用参数 |
| 将上下文窗口视为无限 | 1M token 虽大但并非无限 | 监控上下文使用量;接近限制时进行截断 |
何时不应使用 Gemini 3.5 Flash
Gemini 3.5 Flash 很强大,但并非万能。在以下场景中应使用其他模型:
| 场景 | 为何 Flash 不合适 | 更好的选择 |
|---|---|---|
| 图片/音频/视频生成 | Flash 仅支持文本输出 | 专用生成模型 |
| 最高难度的多步推理 | Pro 提供更深层次的推理链 | Gemini 3.1 Pro |
| 最低成本的批量提取 | Flash Lite 输入成本便宜 6 倍 | Gemini 3.1 Flash Lite |
| 实时语音对话 | Flash 不支持 Live API | 支持 Live API 的 Gemini 模型 |
| 需要 Computer Use 的浏览器自动化 | Flash 不支持 Computer Use | 支持 Computer Use 的 Gemini 路由 |
常见问题
Gemini 3.5 Flash 的 Model ID 是什么?
gemini-3.5-flash。在通过 EvoLink 发送 API 请求时使用此精确字符串。Gemini 3.5 Flash 是免费的吗?
我可以使用 OpenAI SDK 调用 Gemini 3.5 Flash 吗?
https://api.evolink.ai/v1 并设置 model="gemini-3.5-flash"。支持 Python、Node.js、Go 以及任何其他 OpenAI 兼容客户端。Gemini 3.5 Flash 支持函数调用吗?
支持。函数调用、结构化输出、代码执行和搜索锚定均为原生支持。你可以定义工具,模型会在合适时调用它们。
Gemini 3.5 Flash 与 Gemini 3 Flash 相比如何?
Gemini 3.5 Flash 是当代 Flash 模型,具备前沿级智能、更强的 Agent 和编程性能以及内置推理能力。Gemini 3 Flash 是上一代模型,能力较低但成本也更低(输入 $0.50 vs $1.50 每 MTok)。
上下文窗口有多大?
1,048,576 输入 token 和 65,535 输出 token。足以容纳完整代码库、多文档分析以及长 Agent 对话历史。
Gemini 3.5 Flash 适合编程 Agent 吗?
适合。Google 明确针对编程任务和 Agent 工作流进行了优化。它以 Flash 级速度处理代码生成、调试、重构和多文件分析。一个典型的 20 次迭代调试会话成本约 $0.30–$0.50。
Gemini 3.5 Flash 已可用于生产环境吗?
是的。Google 将其列为正式发布(GA)并可稳定用于大规模生产。它不是预览版或实验性模型。
编程 Agent 会话的成本是多少?
一个典型的 20 次迭代调试会话,约 200K 总输入 token 和约 20K 输出 token,标准定价下约为 $0.49,启用上下文缓存后可根据缓存命中率降低整体会话成本。
我可以在不修改代码的情况下切换 Gemini 模型吗?
model 参数从 "gemini-3.5-flash" 改为 "gemini-3.1-pro" 或 "gemini-3.1-flash-lite" 即可——无需其他更改。Gemini 3.5 Flash 支持结构化 JSON 输出吗?
response_format={"type": "json_object"} 获取结构化 JSON 响应。这对于数据提取、分类和工具编排非常有用。下一步
- Gemini 3.5 Flash API — 完整产品页面 — 实时定价、状态和模型详情
- 对比所有 Gemini 模型 — 7 个 Gemini 路由的并排对比
- Gemini 3.5 Flash 发布说明 — 从预览版到 GA 的变更内容
- EvoLink API 文档 — 完整 API 参考和集成指南
- 创建 API Key — 2 分钟开始构建


