谷歌
Gemini 4 Hydrogen
google/gemini-4-hydrogen/v1/chat/completions/v1/messages/v1beta/models/*/v1/models/*Gemini 4 Hydrogen是谷歌Gemini 4系列中的高效主力模型,专为高吞吐量智能体工作流、代码编写与多模型路由场景打造,相比Gemini 4 Carbon,它成本更低、延迟更小。该模型可接收文本、图像、音频、视频以及文件输入,支持通过接续生成实现最高100万输出token的长解码能力,并可通过低、中、高、超高四档推理强度来控制思考深度。
- Input / output modalities
- 文本 · 图像 · 文件 · 视频 · 音频 to 文本
- Reference input / output price
- Input¥10.5Output¥52.5per 1M tokens
- Context window
- 1M
- Added to catalog
- Nov 13, 2026
Providers and pricing
| Provider | Input /M | Output /M | Cached /M | Context | Max output | Details |
|---|---|---|---|---|---|---|
| Google Vertex | ¥10.5 | ¥52.5 | ¥0.53 | 1M | 1M | |
| OpenRouter | ¥10.5 | ¥52.5 | ¥0.53 | 1M | 1M |
Gemini 4 Hydrogen code examples and API guide
Modelmesh normalizes requests and responses across service providers behind one consistent API.
Modelmesh provides an OpenAI-compatible Completion API for more than 300 models and service providers. Call it directly, through the OpenAI SDK, or with supported third-party SDKs.
Modelmesh-specific request headers in these examples are optional. When supplied, your application can appear on the Modelmesh rankings.
Supported endpointsSelect an endpoint to switch the example below.
/v1/chat/completions
from openai import OpenAI
API_KEY = "$SSY_API_KEY"
client = OpenAI(
base_url="https://router.shengsuanyun.com/api/v1",
api_key=API_KEY,
)
try:
completion = client.chat.completions.create(
model="google/gemini-4-hydrogen",
messages=[{"role": "user", "content": "Which number is larger, 9.11 or 9.8?"}],
temperature=0.6,
top_p=0.7,
stream=True,
)
response_text = ""
for chunk in completion:
if chunk.choices and chunk.choices[0].delta.content is not None:
content = chunk.choices[0].delta.content
print(content, end="", flush=True)
response_text += content
except Exception as error:
print(f"Request failed: {error}")
import OpenAI from "openai";
const apiKey = "$SSY_API_KEY";
const openai = new OpenAI({
baseURL: "https://router.shengsuanyun.com/api/v1",
apiKey,
});
async function main() {
try {
const stream = await openai.chat.completions.create({
model: "google/gemini-4-hydrogen",
messages: [{ role: "user", content: "Which number is larger, 9.11 or 9.8?" }],
temperature: 0.6,
top_p: 0.7,
stream: true,
});
for await (const chunk of stream) {
const content = chunk.choices[0]?.delta?.content;
if (content) process.stdout.write(content);
}
console.log("\n[chat complete]");
} catch (error) {
const message = error instanceof Error ? error.message : String(error);
console.error("Request failed:", message);
process.exitCode = 1;
}
}
main();
#!/usr/bin/env bash
set -euo pipefail
API_KEY="$SSY_API_KEY"
BASE_URL="https://router.shengsuanyun.com/api/v1/chat/completions"
MODEL='google/gemini-4-hydrogen'
curl --fail-with-body --silent --show-error --no-buffer -X POST "${BASE_URL}" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${API_KEY}" \
-d '{
"model": "'"${MODEL}"'",
"messages": [{"role": "user", "content": "Which number is larger, 9.11 or 9.8?"}],
"temperature": 0.6,
"top_p": 0.7,
"stream": true
}'
printf '\n[chat complete]\n'
import requests
API_KEY = "$SSY_API_KEY"
url = "https://router.shengsuanyun.com/api/v1/messages"
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
}
payload = {
"model": "google/gemini-4-hydrogen",
"messages": [{"role": "user", "content": "Hello"}],
}
response = requests.post(url, headers=headers, json=payload, timeout=30)
response.raise_for_status()
print(response.json())
const apiKey = "$SSY_API_KEY";
async function main() {
const response = await fetch("https://router.shengsuanyun.com/api/v1/messages", {
method: "POST",
headers: {
Authorization: "Bearer " + apiKey,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "google/gemini-4-hydrogen",
messages: [{ role: "user", content: "Hello" }],
}),
});
if (!response.ok) {
const text = await response.text();
throw new Error(`Request failed with status ${response.status}: ${text}`);
}
console.log(await response.json());
}
main().catch((error) => {
const message = error instanceof Error ? error.message : String(error);
console.error("Request failed:", message);
});
#!/usr/bin/env bash
set -euo pipefail
API_KEY="$SSY_API_KEY"
BASE_URL="https://router.shengsuanyun.com/api/v1/messages"
MODEL='google/gemini-4-hydrogen'
curl --fail-with-body --silent --show-error -X POST "${BASE_URL}" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${API_KEY}" \
-d '{
"model": "'"${MODEL}"'",
"messages": [{"role": "user", "content": "Hello"}]
}'
import requests
API_KEY = "$SSY_API_KEY"
MODEL = "google/gemini-4-hydrogen"
URL = f"https://router.shengsuanyun.com/api/v1beta/models/{MODEL}:generateContent"
messages = [
{"role": "user", "content": "Which number is larger, 9.11 or 9.8?"}
]
payload = {
"contents": [
{
"role": message["role"],
"parts": [{"text": message["content"]}],
}
for message in messages
],
"generationConfig": {
"temperature": 0.6,
"topP": 0.7,
"maxOutputTokens": 1024,
},
}
headers = {
"Content-Type": "application/json",
# This endpoint uses API-key auth, not Bearer auth.
"x-goog-api-key": API_KEY,
}
# Gemini-style generateContent uses contents, so messages are mapped into contents.
response = requests.post(URL, headers=headers, json=payload, timeout=30)
response.raise_for_status()
data = response.json()
candidates = data.get("candidates") or [{}]
parts = (candidates[0].get("content") or {}).get("parts") or []
print("".join(part.get("text", "") for part in parts))
const API_KEY = "$SSY_API_KEY";
const MODEL = "google/gemini-4-hydrogen";
const url = `https://router.shengsuanyun.com/api/v1beta/models/${MODEL}:generateContent`;
const messages = [
{ role: "user", content: "Which number is larger, 9.11 or 9.8?" },
];
async function main() {
const response = await fetch(url, {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-goog-api-key": API_KEY,
},
body: JSON.stringify({
contents: messages.map((message) => ({
role: message.role,
parts: [{ text: message.content }],
})),
generationConfig: {
temperature: 0.6,
topP: 0.7,
maxOutputTokens: 1024,
},
}),
});
if (!response.ok) {
const text = await response.text();
throw new Error(`Request failed with status ${response.status}: ${text}`);
}
const data = await response.json();
const text = (data.candidates?.[0]?.content?.parts ?? [])
.map((part) => part.text ?? "")
.join("");
console.log(text);
}
main().catch((error) => {
const message = error instanceof Error ? error.message : String(error);
console.error("Request failed:", message);
});
#!/usr/bin/env bash
set -euo pipefail
API_KEY="$SSY_API_KEY"
MODEL='google/gemini-4-hydrogen'
BASE_URL="https://router.shengsuanyun.com/api/v1beta/models/${MODEL}:generateContent"
# This endpoint uses API-key auth, not Bearer auth.
curl --fail-with-body --silent --show-error -X POST "${BASE_URL}" \
-H "Content-Type: application/json" \
-H "x-goog-api-key: ${API_KEY}" \
-d '{
"contents": [
{
"role": "user",
"parts": [{"text": "Which number is larger, 9.11 or 9.8?"}]
}
],
"generationConfig": {
"temperature": 0.6,
"topP": 0.7,
"maxOutputTokens": 1024
}
}' | python3 -c 'import json,sys
data=json.load(sys.stdin)
candidates=data.get("candidates") or [{}]
parts=(candidates[0].get("content") or {}).get("parts") or []
print("".join(part.get("text", "") for part in parts))'
import requests
API_KEY = "$SSY_API_KEY"
MODEL = "google/gemini-4-hydrogen"
URL = f"https://router.shengsuanyun.com/api/v1/models/{MODEL}:generateContent"
messages = [
{"role": "user", "content": "Which number is larger, 9.11 or 9.8?"}
]
payload = {
"contents": [
{
"role": message["role"],
"parts": [{"text": message["content"]}],
}
for message in messages
],
"generationConfig": {
"temperature": 0.6,
"topP": 0.7,
"maxOutputTokens": 1024,
},
}
headers = {
"Content-Type": "application/json",
# This endpoint uses API-key auth, not Bearer auth.
"x-goog-api-key": API_KEY,
}
# Gemini-style generateContent uses contents, so messages are mapped into contents.
response = requests.post(URL, headers=headers, json=payload, timeout=30)
response.raise_for_status()
data = response.json()
candidates = data.get("candidates") or [{}]
parts = (candidates[0].get("content") or {}).get("parts") or []
print("".join(part.get("text", "") for part in parts))
const API_KEY = "$SSY_API_KEY";
const MODEL = "google/gemini-4-hydrogen";
const url = `https://router.shengsuanyun.com/api/v1/models/${MODEL}:generateContent`;
const messages = [
{ role: "user", content: "Which number is larger, 9.11 or 9.8?" },
];
async function main() {
const response = await fetch(url, {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-goog-api-key": API_KEY,
},
body: JSON.stringify({
contents: messages.map((message) => ({
role: message.role,
parts: [{ text: message.content }],
})),
generationConfig: {
temperature: 0.6,
topP: 0.7,
maxOutputTokens: 1024,
},
}),
});
if (!response.ok) {
const text = await response.text();
throw new Error(`Request failed with status ${response.status}: ${text}`);
}
const data = await response.json();
const text = (data.candidates?.[0]?.content?.parts ?? [])
.map((part) => part.text ?? "")
.join("");
console.log(text);
}
main().catch((error) => {
const message = error instanceof Error ? error.message : String(error);
console.error("Request failed:", message);
});
#!/usr/bin/env bash
set -euo pipefail
API_KEY="$SSY_API_KEY"
MODEL='google/gemini-4-hydrogen'
BASE_URL="https://router.shengsuanyun.com/api/v1/models/${MODEL}:generateContent"
# This endpoint uses API-key auth, not Bearer auth.
curl --fail-with-body --silent --show-error -X POST "${BASE_URL}" \
-H "Content-Type: application/json" \
-H "x-goog-api-key: ${API_KEY}" \
-d '{
"contents": [
{
"role": "user",
"parts": [{"text": "Which number is larger, 9.11 or 9.8?"}]
}
],
"generationConfig": {
"temperature": 0.6,
"topP": 0.7,
"maxOutputTokens": 1024
}
}' | python3 -c 'import json,sys
data=json.load(sys.stdin)
candidates=data.get("candidates") or [{}]
parts=(candidates[0].get("content") or {}).get("parts") or []
print("".join(part.get("text", "") for part in parts))'
Public model applications
Want to feature your application here? Click here to discuss ecosystem collaboration.No public applications are currently listed for this model.
Related Models
No related models are currently available.