API tương thích Gemini

TokenCode tương thích với giao thức Google Gemini API, bạn có thể sử dụng trực tiếp Google AI SDK hoặc bất kỳ client nào tương thích giao thức Gemini để kết nối.

Base URL

text
https://tokencode.dev

Xác thực

Giao thức Gemini sử dụng tham số truy vấn URL để xác thực:

  • Tham số API Key: ?key=<your-api-key>

Cũng có thể sử dụng xác thực qua Header:

  • Bearer Token: Authorization: Bearer <your-api-key>
  • x-api-key Header: x-api-key: <your-api-key>

Generate Content

Endpoint tạo nội dung tương thích Gemini.

bash
curl "https://tokencode.dev/v1beta/models/gemini-2.5-pro:generateContent?key=sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {
        "parts": [
          {"text": "Giải thích về điện toán lượng tử"}
        ]
      }
    ],
    "generationConfig": {
      "temperature": 0.7,
      "maxOutputTokens": 1024
    }
  }'

Tham số yêu cầu:

Tham số Kiểu Bắt buộc Mô tả
contents array Mảng nội dung, chứa lịch sử hội thoại
generationConfig object Không Cấu hình tạo
generationConfig.temperature number Không Nhiệt độ lấy mẫu (0-2)
generationConfig.maxOutputTokens integer Không Số Token đầu ra tối đa
generationConfig.topP number Không Xác suất lấy mẫu nhân
generationConfig.topK integer Không Lấy mẫu Top-K
generationConfig.stopSequences array Không Chuỗi dừng
systemInstruction object Không Chỉ thị hệ thống
tools array Không Định nghĩa công cụ Function Calling

Ví dụ phản hồi:

json
{
  "candidates": [
    {
      "content": {
        "parts": [
          {"text": "Điện toán lượng tử là một phương pháp sử dụng nguyên lý cơ học lượng tử..."}
        ],
        "role": "model"
      },
      "finishReason": "STOP",
      "index": 0
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 25,
    "candidatesTokenCount": 128,
    "totalTokenCount": 153
  },
  "modelVersion": "gemini-2.5-pro"
}

Stream Generate Content

Endpoint tạo nội dung luồng.

bash
curl "https://tokencode.dev/v1beta/models/gemini-2.5-pro:streamGenerateContent?key=sk-your-api-key&alt=sse" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {
        "parts": [
          {"text": "Giải thích về điện toán lượng tử"}
        ]
      }
    ]
  }'

Phản hồi luồng sử dụng định dạng SSE, mỗi sự kiện chứa nội dung được tạo từng phần.

Liệt kê mô hình

Trả về danh sách mô hình Gemini khả dụng.

bash
curl "https://tokencode.dev/v1beta/models?key=sk-your-api-key"

Tự động chuyển đổi giao thức

Khi gọi mô hình không phải Google qua endpoint giao thức Gemini, TokenCode tự động hoàn thành chuyển đổi giao thức:

  • Chuyển đổi yêu cầu: Chuyển định dạng Gemini generateContent sang định dạng gốc của mô hình đích
  • Chuyển đổi phản hồi: Chuyển phản hồi của mô hình đích sang định dạng Gemini trả về
  • Thích ứng luồng: Phản hồi luồng tự động thích ứng sang định dạng sự kiện SSE của Gemini

Sử dụng Google AI SDK

python
import google.generativeai as genai

genai.configure(
    api_key="sk-your-api-key",
    client_options={"api_endpoint": "https://tokencode.dev"}
)

model = genai.GenerativeModel("gemini-2.5-pro")
response = model.generate_content("Xin chào!")
print(response.text)
javascript
const { GoogleGenerativeAI } = require("@google/generative-ai");

const genAI = new GoogleGenerativeAI("sk-your-api-key");
// Thiết lập custom base URL
const model = genAI.getGenerativeModel({ model: "gemini-2.5-pro" });

Đầu vào đa phương thức

Gemini gốc hỗ trợ đầu vào đa phương thức:

python
model = genai.GenerativeModel("gemini-2.5-pro")
response = model.generate_content([
    "Mô tả hình ảnh này",
    {"inline_data": {"mime_type": "image/png", "data": "<base64-encoded-image>"}}
])

Phản hồi lỗi

Phản hồi lỗi tuân theo định dạng lỗi Gemini:

json
{
  "error": {
    "code": 400,
    "message": "API key not valid",
    "status": "INVALID_ARGUMENT"
  }
}
Mã trạng thái HTTP Ý nghĩa
400 Tham số yêu cầu không hợp lệ
401 Xác thực thất bại
403 Quyền không đủ
404 Mô hình không tồn tại
429 Giới hạn tốc độ hoặc số dư không đủ
500 Lỗi nội bộ máy chủ