對應 Google Generative Language API 規格 (Gemini / Veo / Lyria)。認證用 x-goog-api-key: YOUR_API_KEY 或 Authorization: Bearer YOUR_API_KEY 標頭(金鑰不可放在網址查詢參數;?key= query 已停用——Google 官方 SDK 預設即用 header)。
POST /stu/api/google/v1beta/models/{model}:generateContentGemini 文字對話 (non-streaming)。
curl "https://www.myai168.com/stu/api/google/v1beta/models/gemini-3.1-pro-preview:generateContent" \
-H "x-goog-api-key: YOUR_DEV_KEY" \
-H "Content-Type: application/json" \
-d '{"contents":[{"parts":[{"text":"Hello"}]}]}'
import requests
r = requests.post(
"https://www.myai168.com/stu/api/google/v1beta/models/gemini-3.1-pro-preview:generateContent",
headers={"x-goog-api-key": "YOUR_DEV_KEY"},
json={"contents": [{"parts": [{"text": "Hello"}]}]},
)
print(r.json())
POST /stu/api/google/v1beta/models/{model}:streamGenerateContentGemini 文字對話 (SSE streaming)。
curl "https://www.myai168.com/stu/api/google/v1beta/models/gemini-3.1-pro-preview:streamGenerateContent" \
-H "x-goog-api-key: YOUR_DEV_KEY" \
-H "Content-Type: application/json" \
-d '{"contents":[{"parts":[{"text":"Hello"}]}]}'
import requests
r = requests.post(
"https://www.myai168.com/stu/api/google/v1beta/models/gemini-3.1-pro-preview:streamGenerateContent",
headers={"x-goog-api-key": "YOUR_DEV_KEY"},
json={"contents": [{"parts": [{"text": "Hello"}]}]},
stream=True,
)
for line in r.iter_lines():
if line:
print(line.decode("utf-8"))
POST /stu/api/google/v1beta/models/gemini-3-pro-image-preview:generateContentNano Banana Pro 文字生圖(Gemini 多模態,回 inline_data base64 image)。
curl "https://www.myai168.com/stu/api/google/v1beta/models/gemini-3-pro-image-preview:generateContent" \
-H "x-goog-api-key: YOUR_DEV_KEY" \
-H "Content-Type: application/json" \
-d '{"contents":[{"parts":[{"text":"A cat"}]}],"generationConfig":{"responseModalities":["TEXT","IMAGE"]}}'
import requests
r = requests.post(
"https://www.myai168.com/stu/api/google/v1beta/models/gemini-3-pro-image-preview:generateContent",
headers={"x-goog-api-key": "YOUR_DEV_KEY"},
json={"contents": [{"parts": [{"text": "A cat"}]}], "generationConfig": {"responseModalities": ["TEXT", "IMAGE"]}},
)
print(r.json())
POST /stu/api/google/v1beta/models/veo-{ver}:predictLongRunningVeo 影片生成 (LRO; 第一次回 operation name,後續 poll 取結果)。
curl "https://www.myai168.com/stu/api/google/v1beta/models/veo-3.1-generate-preview:predictLongRunning" \
-H "x-goog-api-key: YOUR_DEV_KEY" \
-H "Content-Type: application/json" \
-d '{"instances":[{"prompt":"A cat dancing"}],"parameters":{"durationSeconds":8}}'
import requests
r = requests.post(
"https://www.myai168.com/stu/api/google/v1beta/models/veo-3.1-generate-preview:predictLongRunning",
headers={"x-goog-api-key": "YOUR_DEV_KEY"},
json={"instances": [{"prompt": "A cat dancing"}], "parameters": {"durationSeconds": 8}},
)
print(r.json())
POST /stu/api/google/v1beta/models/lyria-{ver}:predictLyria 音樂生成 (回 base64 audio)。
curl "https://www.myai168.com/stu/api/google/v1beta/models/lyria-002:predict" \
-H "x-goog-api-key: YOUR_DEV_KEY" \
-H "Content-Type: application/json" \
-d '{"instances":[{"prompt":"Upbeat jazz"}],"parameters":{"sampleCount":1}}'
import requests
r = requests.post(
"https://www.myai168.com/stu/api/google/v1beta/models/lyria-002:predict",
headers={"x-goog-api-key": "YOUR_DEV_KEY"},
json={"instances": [{"prompt": "Upbeat jazz"}], "parameters": {"sampleCount": 1}},
)
print(r.json())
GET /stu/api/google/v1beta/operations/{name}查詢 LRO 操作狀態 (Veo poll 用,查詢類不扣點)。
curl "https://www.myai168.com/stu/api/google/v1beta/operations/OP_NAME" \
-H "x-goog-api-key: YOUR_DEV_KEY"
import requests
r = requests.get(
"https://www.myai168.com/stu/api/google/v1beta/operations/OP_NAME",
headers={"x-goog-api-key": "YOUR_DEV_KEY"},
)
print(r.json())
請求本體為 JSON,與 Google 官方規格相同。認證帶 x-goog-api-key 或 Authorization: Bearer 標頭。
| 參數 | 型別 | 必填 | 說明 |
|---|---|---|---|
contents | array | 必填 | 對話內容陣列,每筆 {"role": "user" | "model", "parts": [{"text": "..."}]};parts 也可含 inline_data(base64 圖片/音訊)。 |
generationConfig | object | 選填 | 溫度、輸出上限、responseModalities(生圖模型要帶 ["TEXT","IMAGE"])等官方設定。 |
systemInstruction | object | 選填 | 系統提示詞(官方規格)。 |
tools | array | 選填 | 官方工具設定原樣透傳(Google 搜尋 grounding 按次計費)。 |
模型代號放在網址路徑(models/{model}:generateContent);不在計價表內的模型回 "No pricing info! Please use other models!"。Veo 用 instances+parameters(durationSeconds/numberOfVideos/resolution),Lyria 用 instances+parameters.sampleCount(見上一題範例)。
非串流:官方 JSON——文字在 candidates[0].content.parts[]、用量在 usageMetadata;回應標頭另帶 X-Cost-Points(本次扣點)與 X-Credits-Remaining(扣後餘額)。串流(:streamGenerateContent)為 SSE 逐段,無法帶扣點標頭,餘額請改查 GET /stu/api/user/get_credits。
| HTTP 狀態 | 意義 |
|---|---|
401 | 金鑰缺漏或無效(同 IP 連續失敗會被暫時封鎖)。 |
402 | 點數不足(請先儲值)。 |
400 | 請求本體格式錯誤,或模型不在支援清單("No pricing info! Please use other models!")。 |
502 | 上游供應商錯誤——一律不扣點。 |
任何錯誤(含供應商未回用量資訊)一律不扣點;查詢 LRO 狀態(operations)免費。