TokenLab

Gemini gốc

Tạo nội dung

Tạo nội dung bằng định dạng Google Gemini API

POST
/v1beta/models/{model}:generateContent

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)

modelstringpathbắt buộc

Tên model (ví dụ: gemini-2.5-pro, gemini-3.5-flash).

Tham số truy vấn (Query Parameters)

keystringquery

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)

contentsarraybắt buộc

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.

systemInstructionobject

Hướng dẫn hệ thống (system instruction) cho model.

generationConfigobject

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.

safetySettingsarray

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)

candidatesarray

Các ứng viên nội dung được tạo.

usageMetadataobject

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

Response
{
  "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.

HTTPAPI
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
AuthorizationBearer <token>

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

model*string

Tên model (ví dụ: gemini-2.5-pro)

Tham số truy vấn

key?string

API key (thay thế cho xác thực bằng header)

Header

X-TokenLab-Delivery-Policy?string

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