Gemini 原生
產生內容
使用 Google Gemini API 格式產生內容
使用 Gemini 請求與回應格式,搭配 Gemini Models API 所回傳的模型。系統接受 ProtoJSON 的 lowerCamelCase 格式以及對應的 proto snake_case 欄位名稱。支援的選用欄位與數值取決於所選的模型。
路徑參數 (Path Parameters)
模型名稱 (例如:gemini-2.5-pro、gemini-3.5-flash)。
查詢參數 (Query Parameters)
API 金鑰 (Header 驗證的替代方案)。
驗證 (Authentication)
Gemini 端點支援多種驗證方式:
?key=YOUR_API_KEY查詢參數x-goog-api-key: YOUR_API_KEYHeaderAuthorization: Bearer YOUR_API_KEYHeader
請求主體 (Request Body)
包含 parts 與選用 role 的對話內容。媒體部分使用 inlineData / inline_data 或 fileData / file_data。由 TokenLab 建立的檔案與快取 ID 僅能在其所屬的 Workspace 中使用。
模型的系統指令。
生成設定,例如 temperature、topP、topK、maxOutputTokens、stopSequences、candidateCount、responseModalities、responseMimeType、responseSchema 與 thinkingConfig。系統亦接受對應的 snake_case 名稱。支援的數值與組合取決於模型。
安全篩選器設定。
上述顯示的每個 lowerCamelCase 欄位亦可使用其官方 proto snake_case 拼寫,例如 system_instruction、generation_config、safety_settings、tool_config、cached_content、file_data.file_uri 與 inline_data.mime_type。
支援的方法 (Supported Methods)
Gemini 相容 API 包含模型列表/取得 (list/get)、generateContent、streamGenerateContent、countTokens、embedContent 與 batchEmbedContents。Gemini Interactions 與 Live 功能目前不提供。
回應 (Response)
生成的內容候選項目。
Token 使用量資訊。
請求
curl -X POST "https://api.tokenlab.sh/v1beta/models/gemini-2.5-pro:generateContent?key=sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"contents": [
{
"parts": [{"text": "Hello, Gemini!"}]
}
],
"generationConfig": {
"temperature": 0.7,
"maxOutputTokens": 1024
}
}'視覺輸入範例 (Vision Input Example)
針對 Gemini 多模態請求,請將媒體放置於 contents[].parts[] 中,並使用內嵌位元組 (inline bytes) 或基於 URL 的檔案參照。
公開 Gemini 合約中支援的媒體類別:
- 圖片 (image)
- 音訊 (audio)
- 影片 (video)
對於內嵌媒體,請使用 inlineData 或 inline_data 並傳入 Base64 編碼的檔案位元組。
對於基於 URL 的媒體,請使用 fileData 或 file_data 並傳入公開的 https URL。
影片輸入範例 (Video Input Example)
{
"contents": [
{
"role": "user",
"parts": [
{ "text": "Please describe this video." },
{
"fileData": {
"mimeType": "video/mp4",
"fileUri": "https://example.com/demo.mp4"
}
}
]
}
]
}音訊輸入範例 (Audio Input Example)
{
"contents": [
{
"role": "user",
"parts": [
{ "text": "Please describe this audio." },
{
"fileData": {
"mimeType": "audio/mpeg",
"fileUri": "https://example.com/demo.mp3"
}
}
]
}
]
}圖片輸入範例 (Image Input Example)
使用內嵌圖片位元組:
{
"contents": [
{
"role": "user",
"parts": [
{ "text": "Please describe this image." },
{
"inlineData": {
"mimeType": "image/jpeg",
"data": "/9j/4AAQSkZJRgABAQ..."
}
}
]
}
]
}使用圖片 URL:
{
"contents": [
{
"role": "user",
"parts": [
{ "text": "Please describe this image." },
{
"fileData": {
"mimeType": "image/jpeg",
"fileUri": "https://example.com/demo.jpg"
}
}
]
}
]
}音訊輸入範例 (Audio Input Example)
使用音訊 URL:
{
"contents": [
{
"role": "user",
"parts": [
{ "text": "Transcribe and summarize this audio." },
{
"file_data": {
"mime_type": "audio/mpeg",
"file_uri": "https://example.com/sample.mp3"
}
}
]
}
]
}影片輸入範例 (Video Input Example)
使用影片 URL:
{
"contents": [
{
"role": "user",
"parts": [
{ "text": "Describe this video briefly." },
{
"fileData": {
"mimeType": "video/mp4",
"fileUri": "https://example.com/sample.mp4"
}
}
]
}
]
}回應
{
"candidates": [
{
"content": {
"role": "model",
"parts": [
{"text": "Hello! How can I assist you today?"}
]
},
"finishReason": "STOP",
"safetyRatings": [
{"category": "HARM_CATEGORY_HARASSMENT", "probability": "NEGLIGIBLE"}
]
}
],
"usageMetadata": {
"promptTokenCount": 5,
"candidatesTokenCount": 10,
"totalTokenCount": 15
}
}相關介面 (Related interfaces)
在使用其他介面之前,請先閱讀所選模型的當前模型詳細資訊。可用性與請求欄位取決於模型。
| HTTP | API |
|---|---|
| POST | /v1beta/models/{model}:countTokens |
| POST | /v1beta/models/{model}:embedContent |
| POST | /v1beta/models/{model}:batchEmbedContents |
Token 計算需要 API 金鑰且不收費。回傳的輸入計數僅為規劃用的估算值;請使用最終回應的使用量與帳單記錄作為收費依據。
countTokens: contents / generateContentRequest
embedContent: content、taskType、title、outputDimensionality
batchEmbedContents: requests
授權
BearerAuth API Key 驗證。請在 Dashboard > API > API Keys 建立或管理 API 金鑰。
位置: header
路徑參數
模型名稱 (例如 gemini-2.5-pro)
查詢參數
API 金鑰 (標頭驗證的替代方案)
請求標頭
單次請求傳遞策略。會覆寫 API key 與 Workspace 的預設值。系統會自動優先嘗試 TokenLab Verified,並可能在輸出、請求接受或建立持久性資源前切換至 Official 模式一次。
可選值
- "auto"
- "verified"
- "official"
請求主體
application/json
原生的 Gemini GenerateContent 請求。ProtoJSON 的 lowerCamelCase 與原始 proto 的 snake_case 名稱皆可接受並會被保留,包含混合請求。若同一欄位同時存在兩種拼寫,TokenLab 不會合併它們或選擇本機優先順序。未知欄位將以盡力而為的方式轉發。
回應
application/json
application/json
application/json
application/json
application/json
application/json