Gemini gốc
Tạo nội dung
Tạo nội dung bằng định dạng Google Gemini API
Sử dụng các định dạng yêu cầu và phản hồi của Gemini với một model được trả về từ Gemini Models API. Các tên trường ProtoJSON lowerCamelCase và tên trường snake_case tương ứng đều được chấp nhận. Các trường và giá trị tùy chọn được hỗ trợ phụ thuộc vào model đã chọn.
Tham số đường dẫn (Path Parameters)
Tên model (ví dụ: gemini-2.5-pro, gemini-3.5-flash).
Tham số truy vấn (Query Parameters)
API key (thay thế cho xác thực qua header).
Xác thực (Authentication)
Các endpoint của Gemini hỗ trợ nhiều phương thức xác thực:
- Tham số truy vấn
?key=YOUR_API_KEY - Header
x-goog-api-key: YOUR_API_KEY - Header
Authorization: Bearer YOUR_API_KEY
Thân yêu cầu (Request Body)
Nội dung hội thoại với parts và một role tùy chọn. Các phần phương tiện (media) sử dụng inlineData / inline_data hoặc fileData / file_data. Các tệp và Cache ID được tạo bởi TokenLab chỉ có thể được sử dụng trong Workspace sở hữu chúng.
Hướng dẫn hệ thống (system instruction) cho model.
Các thiết lập tạo nội dung như temperature, topP, topK, maxOutputTokens, stopSequences, candidateCount, responseModalities, responseMimeType, responseSchema, và thinkingConfig. Các tên snake_case tương ứng cũng được chấp nhận. Các giá trị và tổ hợp được hỗ trợ phụ thuộc vào model.
Các thiết lập bộ lọc an toàn.
Mọi trường lowerCamelCase được hiển thị ở trên cũng có thể sử dụng cách viết snake_case proto chính thức của chúng, ví dụ: system_instruction, generation_config, safety_settings, tool_config, cached_content, file_data.file_uri, và inline_data.mime_type.
Các phương thức được hỗ trợ
API tương thích với Gemini bao gồm liệt kê/lấy thông tin model, generateContent, streamGenerateContent, countTokens, embedContent, và batchEmbedContents. Các tính năng Gemini Interactions và Live hiện không khả dụng.
Phản hồi (Response)
Các ứng viên nội dung được tạo.
Thông tin sử dụng token.
Yêu cầu
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
}
}'Ví dụ về đầu vào Vision
Đối với các yêu cầu đa phương thức (multimodal) của Gemini, hãy đặt phương tiện vào bên trong contents[].parts[] bằng cách sử dụng byte nội tuyến hoặc tham chiếu tệp dựa trên URL.
Các danh mục phương tiện được hỗ trợ trong hợp đồng Gemini công khai:
- image
- audio
- video
Đối với phương tiện nội tuyến, hãy sử dụng inlineData hoặc inline_data và truyền byte tệp đã mã hóa Base64.
Đối với phương tiện dựa trên URL, hãy sử dụng fileData hoặc file_data và truyền một URL https công khai.
Ví dụ về đầu vào Video
{
"contents": [
{
"role": "user",
"parts": [
{ "text": "Please describe this video." },
{
"fileData": {
"mimeType": "video/mp4",
"fileUri": "https://example.com/demo.mp4"
}
}
]
}
]
}Ví dụ về đầu vào Audio
{
"contents": [
{
"role": "user",
"parts": [
{ "text": "Please describe this audio." },
{
"fileData": {
"mimeType": "audio/mpeg",
"fileUri": "https://example.com/demo.mp3"
}
}
]
}
]
}Ví dụ về đầu vào Image
Sử dụng byte hình ảnh nội tuyến:
{
"contents": [
{
"role": "user",
"parts": [
{ "text": "Please describe this image." },
{
"inlineData": {
"mimeType": "image/jpeg",
"data": "/9j/4AAQSkZJRgABAQ..."
}
}
]
}
]
}Sử dụng URL hình ảnh:
{
"contents": [
{
"role": "user",
"parts": [
{ "text": "Please describe this image." },
{
"fileData": {
"mimeType": "image/jpeg",
"fileUri": "https://example.com/demo.jpg"
}
}
]
}
]
}Ví dụ về đầu vào Audio
Sử dụng URL âm thanh:
{
"contents": [
{
"role": "user",
"parts": [
{ "text": "Transcribe and summarize this audio." },
{
"file_data": {
"mime_type": "audio/mpeg",
"file_uri": "https://example.com/sample.mp3"
}
}
]
}
]
}Ví dụ về đầu vào Video
Sử dụng URL video:
{
"contents": [
{
"role": "user",
"parts": [
{ "text": "Describe this video briefly." },
{
"fileData": {
"mimeType": "video/mp4",
"fileUri": "https://example.com/sample.mp4"
}
}
]
}
]
}Phản hồi
{
"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
}
}Các giao diện liên quan
Đọc chi tiết về model đã chọn trước khi sử dụng giao diện khác. Tính khả dụng và các trường yêu cầu phụ thuộc vào model.
| HTTP | API |
|---|---|
| POST | /v1beta/models/{model}:countTokens |
| POST | /v1beta/models/{model}:embedContent |
| POST | /v1beta/models/{model}:batchEmbedContents |
Việc đếm token yêu cầu API key và không bị tính phí. Số lượng đầu vào được trả về là ước tính để lập kế hoạch; hãy sử dụng dữ liệu sử dụng và hồ sơ thanh toán trong phản hồi cuối cùng để tính phí.
countTokens: contents / generateContentRequest
embedContent: content, taskType, title, outputDimensionality
batchEmbedContents: requests
Xác thực
BearerAuth Xác thực bằng Khóa API. Tạo hoặc quản lý khóa API trong Dashboard > API > API Keys.
Vị trí: header
Tham số đường dẫn
Tên model (ví dụ: gemini-2.5-pro)
Tham số truy vấn
API key (thay thế cho xác thực bằng header)
Header
Chính sách phân phối theo yêu cầu. Ghi đè các mặc định của API key và Workspace. Tự động thử TokenLab Verified trước và có thể chuyển đổi một lần sang Official chỉ trước khi xuất, chấp nhận yêu cầu hoặc tạo tài nguyên cố định.
Giá trị hợp lệ
- "auto"
- "verified"
- "official"
Nội dung yêu cầu
application/json
Yêu cầu GenerateContent Gemini gốc. Cả tên ProtoJSON lowerCamelCase và tên proto snake_case gốc đều được chấp nhận và bảo toàn, bao gồm cả các yêu cầu hỗn hợp. Nếu cả hai cách viết của một trường đều có mặt, TokenLab không hợp nhất chúng hoặc chọn ưu tiên cục bộ. Các trường không xác định được chuyển tiếp trên cơ sở nỗ lực tốt nhất.
Phản hồi
application/json
application/json
application/json
application/json
application/json
application/json