Hướng dẫn định dạng Gemini tương thích OpenAI
Fast-Token hỗ trợ gọi các mô hình Google Gemini qua giao thức API OpenAI. Nếu bạn đã có ứng dụng dùng OpenAI SDK hoặc /v1/chat/completions, thường chỉ cần đổi base_url và model để dùng Gemini, không cần viết lại sang API Gemini gốc.
Trang này tập trung hướng dẫn sử dụng định dạng tương thích. Thân request, trường response và gỡ lỗi trực tuyến xem tài liệu ChatGPT và các liên kết trong bảng năng lực bên dưới.
Hai cách tích hợp
| Hạng mục | Định dạng tương thích OpenAI (trang này) | API Gemini gốc (tài liệu khác trong mục) |
|---|---|---|
| Đường dẫn thường dùng | POST /v1/chat/completions, POST /v1/embeddings | POST /v1beta/models/{model}:generateContent, v.v. |
| Thân request | Trường OpenAI: messages, model, stream | Trường Gemini: contents, generationConfig |
| Phù hợp khi | Đã có client OpenAI, cổng đa mô hình, chuyển đổi nhanh | Cần tính năng riêng Gemini (thinkingConfig, tham số Imagen, v.v.) |
| Tài liệu | Trang này + nhóm Chat | Trang API dưới Chat, Hình ảnh, Tệp, v.v. |
Hai cách dùng chung API Key và URL cổng. Tính phí theo mô hình tương ứng trong kho mô hình.
Cấu hình
Cổng và xác thực
- Base URL:
https://fast-token.com/v1(giống Bắt đầu nhanh) - Xác thực: header
Authorization: Bearer <Fast-Token_API_KEY> - Tên mô hình: sao chép ID có
geminitừ kho mô hình vào trườngmodel
Dùng OpenAI SDK (khuyến nghị)
Trỏ base_url của SDK chính thức tới Fast-Token; phần còn lại giống OpenAI:
from openai import OpenAI
client = OpenAI(
base_url="https://fast-token.com/v1",
api_key="<Fast-Token_API_KEY>",
)
completion = client.chat.completions.create(
model="gemini-2.5-pro", # 以模型广场为准
messages=[
{"role": "user", "content": "用一句话介绍你自己"},
],
)
print(completion.choices[0].message.content)import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://fast-token.com/v1",
apiKey: "<Fast-Token_API_KEY>",
});
const completion = await client.chat.completions.create({
model: "gemini-2.5-pro",
messages: [{ role: "user", content: "用一句话介绍你自己" }],
});
console.log(completion.choices[0].message.content);Streaming: đặt stream: true. Xem Tạo hoàn thành chat (luồng).
Tổng quan năng lực định dạng chat tương thích
Các năng lực dưới đây đều qua đường dẫn tương thích OpenAI, thường được gom 「định dạng chat tương thích」 trên console hoặc Apifox. Thực tế phần lớn dùng chung POST /v1/chat/completions (embedding: POST /v1/embeddings), phân biệt bằng mô hình và cấu trúc tin nhắn.
| Năng lực | Mô tả | Tham khảo |
|---|---|---|
| Tạo ảnh Gemini | Tạo/sửa ảnh từ văn bản (và ảnh tham chiếu tùy chọn) | Tạo ảnh chat (không luồng) |
| Chat | Hội thoại đa lượt, có/không luồng | Không luồng, Có luồng |
| Chat - suy nghĩ 1 | Hội thoại có đầu ra «suy nghĩ» (biến thể 1) | Luồng (extra_body.enable_thinking) |
| Chat - suy nghĩ 2 | Hội thoại có đầu ra «suy nghĩ» (biến thể 2) | Như trên; mô hình theo kho |
| Nhận diện ảnh | Tải ảnh để hiểu, mô tả hoặc hỏi đáp | Nhận diện (luồng), không luồng |
| Chat + đọc tệp | Đính kèm tài liệu trong hội thoại | Xem «Tệp và đa phương thức» bên dưới |
| Embedding văn bản | Văn bản sang vector | Tạo embedding |
Chọn mô hình
ID mô hình cho từng kịch bản lấy từ kho mô hình. Thử các mô hình Gemini có gemini và ghi hỗ trợ chat/nhận diện ảnh/tạo ảnh/embedding; nếu báo «không tìm thấy mô hình» hoặc không hỗ trợ, đổi sang mục Gemini khác cùng kịch bản.
Ghi chú theo kịch bản
Chat chuẩn
- Endpoint:
POST /v1/chat/completions - Mảng
messagescho đa lượt;role:system/user/assistant(giống OpenAI) - Không luồng:
stream: falsehoặc bỏstream; có luồng:stream: true - Tham số chung (
temperature,max_tokens,top_p, v.v.) như OpenAI; xem Tạo hoàn thành chat (không luồng)
Chế độ suy nghĩ (1 / 2)
Một số mô hình thinking Gemini bật đầu ra suy nghĩ trong request luồng qua trường mở rộng:
{
"model": "gemini-2.5-pro",
"messages": [{ "role": "user", "content": "解释相对论的核心思想" }],
"stream": true,
"extra_body": {
"enable_thinking": true
}
}- Suy nghĩ 1 và 2 tương ứng mô hình hoặc route khác trên cổng; chọn mô hình ghi «thinking» trong kho và thử riêng
- Cần kiểm soát đầy đủ
thinkingConfig, dùng API Gemini gốc
Nhận diện ảnh (thị giác)
Trong tin user, mảng đa phương thức trong content: text + image_url (URL hoặc Base64).
{
"model": "gemini-2.5-pro",
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "这张图里有什么?" },
{
"type": "image_url",
"image_url": { "url": "https://example.com/photo.jpg" }
}
]
}
],
"stream": true
}Base64: Nhận diện chat (luồng) Base64. Tham số gốc (inlineData, v.v.): Hiểu ảnh.
Tạo ảnh
- Chat + mô hình Gemini tạo ảnh cho văn bản→ảnh, sửa theo ảnh tham chiếu
- Mô tả yêu cầu bằng ngôn ngữ tự nhiên trong
messages; cần ảnh tham chiếu thì thêmtextvàimage_urltrongcontent - Cấu trúc request/response: Tạo ảnh chat (không luồng)
- Tỷ lệ khung hình, độ phân giải: Tạo ảnh gốc
Chat + đọc tệp
Dưới định dạng tương thích có thể đưa tài liệu, PDF, v.v. vào đầu vào đa phương thức (MIME và giới hạn kích thước theo kho mô hình):
- Ưu tiên truyền trong
messages[].contenttheo quy ước đa phương thức OpenAI - Tệp lớn hoặc bố cục phức tạp: Hiểu tài liệu gốc (
fileData/inlineData), gộp kết quả vào luồng chat ở tầng ứng dụng
Embedding văn bản
- Endpoint:
POST /v1/embeddings - Thân:
model+input(chuỗi hoặc mảng chuỗi), giống OpenAI Embeddings - Ví dụ: Tạo embedding; cấu trúc: Đối tượng embedding
- Tùy chọn riêng Gemini (
taskType,output_dimensionality, v.v.): Embedding văn bản Gemini gốc
Chọn tương thích hay API gốc
| Nhu cầu | Gợi ý |
|---|---|
| Tích hợp nhanh, tái sử dụng SDK OpenAI / code hiện có | Định dạng tương thích OpenAI (trang này) |
Suy nghĩ luồng, generationConfig, Google Search Grounding | API gốc (vd. Tạo văn bản+suy nghĩ-luồng, google search) |
| Imagen, TTS, hiểu video/âm thanh | Mục API gốc |
| Chỉ cần chat + nhận diện ảnh + tạo ảnh + embedding với client OpenAI | Định dạng tương thích đủ đường chính |
Câu hỏi thường gặp
H: Vì sao không giống hệt tài liệu OpenAI?
Đ: Lớp tương thích căn request/response theo OpenAI, bên dưới chạy Gemini. Một số tham số chỉ OpenAI có thể bị bỏ qua.
H: model điền gì?
Đ: ID đầy đủ trong kho (thường có tiền/hậu tố gemini), không dùng tên rút gọn.
H: Định dạng response luồng?
Đ: SSE, dòng data: {...} và data: [DONE]; xem Đối tượng khối hoàn thành chat.
H: Cấu trúc JSON response đầy đủ?
Đ: Đối tượng hoàn thành chat.
Đọc thêm
- Bắt đầu nhanh
- Hướng dẫn API nhanh
- Liệt kê mô hình
- Trang khác trong mục — tham số và ví dụ API REST gốc Gemini