Gemini 3.8 Flash 对话接口(Google):3.8 代的 Flash 模型,面向长周期编程、Agent 工作流和复杂推理。动态思考(简单问题快答、难题多想),上下文约 100 万 token、最多输出 64K,支持图片输入。兼容 OpenAI SDK。
📥 上下文窗口(最大输入):约 1,000,000 tokens(百万级超长上下文)。
在 Playground 试用 →快速开始
两步跑通:先发一个普通请求,再试流式输出。把 YOUR_API_KEY 换成你的 Key,下面的命令可以直接运行。接口和 OpenAI 的 Chat Completions 一致,已有的 OpenAI 代码只要改 base_url 和 model。
第 1 步 · 发送请求
curl https://nezhagate.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "gemini-3.8-flash", "messages": [{"role": "user", "content": "用一句话解释什么是光合作用"}]}'返回(HTTP 200)
{
"id": "chatcmpl-7f3c9a1e2b4d6f8a",
"object": "chat.completion",
"created": 1791281400,
"model": "gemini-3.8-flash",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "光合作用是植物利用阳光,把二氧化碳和水转化成糖并释放氧气的过程。"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 18,
"completion_tokens": 42,
"total_tokens": 60,
"prompt_tokens_details": {"cached_tokens": 0}
}
}message.content 是回答。usage 是这一单计费用的 token 数,其中 prompt_tokens_details.cached_tokens 是命中缓存、按缓存价计费的部分。
第 2 步 · 流式输出(推荐)
curl -N https://nezhagate.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "gemini-3.8-flash", "stream": true, "messages": [{"role": "user", "content": "用一句话解释什么是光合作用"}]}'流式返回标准的 SSE:每一块的正文在 choices[0].delta.content,最后一块带 usage,以 data: [DONE] 结束。回答长、或者模型要先思考时,请用流式:非流式请求最长约 10 分钟,超过会被断开。
Python(OpenAI SDK)
from openai import OpenAI
client = OpenAI(base_url="https://nezhagate.com/v1", api_key="YOUR_API_KEY")
# 1. 一问一答
resp = client.chat.completions.create(
model="gemini-3.8-flash",
messages=[{"role": "user", "content": "用一句话解释什么是光合作用"}],
)
print(resp.choices[0].message.content)
# 2. 流式输出
stream = client.chat.completions.create(
model="gemini-3.8-flash",
messages=[{"role": "user", "content": "用一句话解释什么是光合作用"}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)认证
Authorization: Bearer YOUR_API_KEY Content-Type: application/json
在控制台创建 API Key 后即可调用。
规格速览
| 上下文窗口 | ~1,000,000 token |
| 单次最多输出 | 64K token |
| 输入 | 文本、图片 |
| 思考 | 动态思考:模型按问题难度决定想多少 |
| 工具调用 | 不作保证:tools 可能被忽略,模型直接作答 |
| 联网搜索 | 支持(web_search: true,搜索本身不收费) |
| 接口 | /v1/chat/completions |
| 流式输出 | 支持(stream: true,SSE) |
| 计费方式 | 按 token:输入、输出(含思考)和缓存命中分别计价,失败不收费 |
请求参数
POST /v1/chat/completions 的请求体(JSON),和 OpenAI 的 Chat Completions 相同。下表是常用参数,以及它们在这个模型上的实际效果:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| model | string | 是 | 模型 id:gemini-3.8-flash。 |
| messages | array | 是 | 对话消息数组,每条有 role(system / user / assistant / tool)和 content。content 可以是字符串,也可以是 text 和 image_url 组成的数组(看图,见下文)。多轮对话把历史消息按顺序全部带上。 |
| stream | boolean | 否 | true 时以 SSE 流式返回,最后一块带 usage。默认 false。 |
| max_tokens | integer | 否 | 输出上限,思考 token 也算在里面。给得太小,模型可能在写出正文前就用完:网关会返回 400 max_tokens_too_small,不计费(建议 512 以上)。部分模型上,过小的值会被自动调高到能完整作答的下限,仍只按实际用量计费。 |
| temperature / top_p | number | 否 | 采样参数,原样转给模型(temperature 取 0–2)。思考型模型可能不受它们影响。 |
| web_search | boolean | 否 | true 时先联网搜索,把结果作为参考资料交给模型,见下文。 |
其余 OpenAI 参数(如 stop、seed、user)原样转给模型,是否生效由模型决定。
价格
按 token 计费,价格实时读取计费表(每百万 token)。只按成功请求的实际用量收费:失败、超时、被拒都不收费。1 积分 = $0.005。
| 类型 | 美元 / 百万 token | 积分 / 百万 token |
|---|---|---|
| 输入 | $0.60 | 120 |
| 输出(含思考) | $3.60 | 720 |
| 缓存命中 | $0.06 | 12 |
举例:输入 2,000 token、输出 1,000 token(含思考)的一次请求约 $0.0048。
思考
动态思考:模型按问题难度自己决定想多少,简单问题快答、难题多想,不需要额外参数。思考 token 也占输出额度,max_tokens 别设得太小。
思考 token 计入 usage.completion_tokens,按输出价计费(部分模型另在 completion_tokens_details.reasoning_tokens 给出明细)。
提示缓存
不需要任何参数:重复的长前缀(同一段系统提示词、多轮对话前面的部分)可能被模型方自动缓存,命中的部分按更低的缓存价计费。是否缓存、命中多少由模型方决定;把固定不变的内容放在消息最前面,命中的机会更大。
命中的 token 数在 usage.prompt_tokens_details.cached_tokens 里返回,这部分按缓存命中价计费,其余输入按输入价。
看图(图片输入)
在 content 数组里放 image_url。推荐用 base64 的 data URI(data:image/png;base64,...),所有线路都能读到;公网图片链接要由线路去下载,个别线路可能取不到或超时。图片按模型方的规则折算成输入 token。
curl https://nezhagate.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "gemini-3.8-flash", "messages": [{"role": "user", "content": [{"type": "text", "text": "这张图里有什么"}, {"type": "image_url", "image_url": {"url": "data:image/png;base64,iVBORw0KGgo..."}}]}]}'联网搜索
请求里加 "web_search": true(或在 tools 里放 {"type": "web_search"}):网关先根据对话实时搜索,把最多 5 条结果和链接作为参考资料交给模型,模型再作答并标注来源。搜索本身不收费,参考资料按输入 token 计费。
curl https://nezhagate.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "gemini-3.8-flash", "web_search": true, "messages": [{"role": "user", "content": "今天有哪些重要的科技新闻"}]}'线路与稳定性
错误与退款
出错时返回一个 error 对象(message、type、code、param),请按 HTTP 状态码和 code 判断,不要匹配 message 的文字。失败的请求不计费,完整列表见 错误码。
| HTTP | code | 原因 | 怎么办 |
|---|---|---|---|
| 400 | invalid_messages / invalid_role / invalid_max_tokens | 对话请求的 messages 缺失、为空或格式不对,role 不在允许的范围,或 max_tokens 不是正整数。param 指出是哪个字段。 | 修正 param 指出的字段。 |
| 400 | model_not_found | 型号写错、没有传 model,或这个型号不能用在这个接口上(例如拿对话模型调生图接口)。 | 以 GET /v1/models 或 API 手册 里的模型 id 为准。 |
| 400 | max_tokens_too_small | 思考型模型把 max_tokens 全部用在了思考上,没有写出正文(非流式对话)。 | 调大 max_tokens 后重试。 |
| 400 | content_filter | 模型处理了请求,但没有给出任何内容,通常是内容触发了模型方的安全策略。 | 调整提示词后重试;原样重试通常还会被拒。 |
| 4xx | invalid_request | 模型方拒绝了请求(例如上下文超长、参数不支持),状态码和 message 按模型方的原样返回,code 是模型方给出的值。 | 按 message 修改请求。 |
| 401 | invalid_api_key | Key 不存在、已删除或已停用,或者账号已停用。 | 到控制台「API Keys」页面检查这把 Key。 |
| 402 | insufficient_quota | 余额不够预扣这一单。网关先按这一单可能的最高费用预扣,同时发很多请求时也可能出现。 | 如果是并发突发,稍等几秒重试;否则充值。 |
| 403 | permission_denied | 这个模型不在这把 Key 的模型白名单里。 | 换成白名单里的模型,或在控制台修改白名单。 |
| 429 | rate_limit_exceeded | 超过了这把 Key 设置的每分钟请求数(按最近 60 秒计)。不带 Retry-After。 | 等几秒再试,或在控制台调高这把 Key 的上限。 |
| 429 | rate_limit_exceeded | 这个模型的所有线路都已满载,请求没有发出。只出现在对话类接口:图片和视频任务不会被拒,而是排队。OpenAI 兼容接口带 Retry-After。 | 按 Retry-After 的秒数等待后重试。 |
| 502 | upstream_timeout | 线路超时,包括迟迟没有返回第一个字。 | 重试;长回答建议用 stream: true。 |
| 502 | upstream_unavailable | 线路出错或暂时不可用。 | 稍后重试。 |
| 502 | upstream_busy | 模型方限流。模型方的 429 不会原样返回给你,而是换成这个 502。 | 稍后重试。 |
| 502 | empty_completion | 模型方返回了空内容。这不是对你的内容的判定。 | 重试。 |
| 502 | upstream_prompt_filter | 提示词被模型方的预检拦截。这不是模型对内容的判定。 | 稍后重试,或稍微调整措辞。 |
| 503 | model_maintenance | 型号维护中,暂停接单,期间不会改由其他模型作答。 | 维护结束后重试,进度见 服务状态。 |
流式请求开始输出后再出错,状态码不会改变:错误会以一条带 error 的数据出现在流里,或者流直接结束(没有 data: [DONE]),请按中断处理。