Models

Một API duy nhất cho hàng trăm model

Trạm AI cung cấp quyền truy cập hơn 300 model AI từ nhiều provider khác nhau thông qua một API duy nhất.

Để duyệt, so sánh và lọc model theo khả năng, giá cả, tốc độ và nhiều tiêu chí khác, hãy truy cập trang danh sách Models.

Models API (/v1/models)

Tương thích với OpenAI Models API. Trả về danh sách các model hiện có.

lines
$curl "https://api.staging.tram.ai.vn/v1/models" \
> -H "Authorization: Bearer $TRAM_AI_API_KEY"

Response

lines
1{
2 "data": [
3 {
4 "id": "google/gemini-2.5-flash",
5 "object": "model",
6 "created": 1719900000,
7 "owned_by": "google"
8 }
9 ],
10 "object": "list"
11}

Public Models API (/public/models)

Endpoint công khai (không cần xác thực) cung cấp thông tin chi tiết về tất cả các model, bao gồm giá cả, khả năng, thống kê sử dụng và thông tin provider. Đây là nguồn dữ liệu cho trang Models.

lines
$curl "https://api.staging.tram.ai.vn/public/models"

Cấu trúc response

lines
1{
2 "models": [
3 /* Array of PublicModel objects */
4 ]
5}

Cấu trúc đối tượng PublicModel

Mỗi model trong mảng models sẽ bao gồm các trường sau:

TrườngKiểu dữ liệuMô tả
modelNamestringTên model dùng trong request API (ví dụ: "google/gemini-2.5-flash")
modestring | nullLoại model: chat, embedding, image_generation, video, audio_speech
providersProvider[]Danh sách các provider cung cấp model này
contextLengthnumber | nullKích thước context window tối đa (tokens)
contextVariesbooleantrue nếu context length khác nhau giữa các provider
maxTokensnumber | nullSố token tối đa trong response
inputCostPerTokennumber | nullChi phí mỗi input token (VND). null nếu chưa có giá
inputCostVariesbooleantrue nếu giá input khác nhau giữa các provider
outputCostPerTokennumber | nullChi phí mỗi output token (VND). null nếu chưa có giá
outputCostVariesbooleantrue nếu giá output khác nhau giữa các provider
capabilitiesRecord<string, boolean>Các khả năng của model (xem bảng bên dưới)
descriptionstring | nullMô tả chi tiết về model
tagsstring[] | nullCác tag phân loại model
createdAtnumber | nullThời gian Unix khi model được thêm vào
statsModelUsageStats | nullThống kê sử dụng 7 ngày gần nhất. null nếu chưa có dữ liệu

Đối tượng Provider

lines
1{
2 "key": string, // Provider key (ví dụ: "openai", "anthropic", "azure")
3 "displayName": string // Tên hiển thị (ví dụ: "OpenAI", "Anthropic", "Azure OpenAI")
4}

Đối tượng ModelUsageStats

lines
1{
2 "tokensWeek": number, // Tổng token sử dụng trong 7 ngày qua
3 "avgLatencyMs": number | null, // Latency trung bình (ms)
4 "throughputTokensPerSec": number | null // Tốc độ sinh token (tokens/giây, chỉ streaming)
5}

Các khả năng (Capabilities)

Trường capabilities cho biết các tính năng mà model hỗ trợ:

  • supports_vision - Xử lý hình ảnh đầu vào
  • supports_function_calling - Gọi hàm (Function/Tool calling)
  • supports_response_schema - Ép buộc định dạng đầu ra theo JSON schema
  • supports_prompt_caching - Hỗ trợ prompt caching
  • supports_reasoning - Chế độ suy luận nội bộ (Reasoning)
  • supports_computer_use - Điều khiển máy tính
  • supports_pdf_input - Đọc file PDF đầu vào

Chi tiết một model (/public/models/:model)

lines
$curl "https://api.staging.tram.ai.vn/public/models/google/gemini-2.5-flash"

Trả về thông tin chi tiết kèm danh sách các provider (routes) với giá và cấu hình riêng:

lines
1{
2 "model": {
3 "modelName": "google/gemini-2.5-flash",
4 "description": "...",
5 "tags": ["fast", "multimodal"],
6 "capabilities": { "supports_vision": true, "supports_function_calling": true },
7 "contextLength": 1048576,
8 "inputCostPerToken": 0.5,
9 "outputCostPerToken": 2.0,
10 "routes": [
11 {
12 "provider": { "key": "google", "displayName": "Google" },
13 "contextLength": 1048576,
14 "maxTokens": 65536,
15 "inputCostPerToken": 0.5,
16 "outputCostPerToken": 2.0
17 }
18 ]
19 }
20}

Bảng xếp hạng model (/public/models/rankings)

lines
$# Xếp hạng theo tuần (mặc định)
$curl "https://api.staging.tram.ai.vn/public/models/rankings"
$
$# Xếp hạng theo ngày hoặc tháng
$curl "https://api.staging.tram.ai.vn/public/models/rankings?period=today"
$curl "https://api.staging.tram.ai.vn/public/models/rankings?period=month"
lines
1{
2 "period": "week",
3 "rankings": [
4 {
5 "rank": 1,
6 "modelName": "google/gemini-2.5-flash",
7 "tokens": 1250000,
8 "trendPct": 15.3
9 }
10 ]
11}

Mỗi model có cách tách từ (Tokenize) văn bản khác nhau

Một số model chia nhỏ văn bản thành các cụm gồm nhiều ký tự (như GPT, Claude, Llama, v.v.), trong khi một số khác lại tách nhỏ theo từng ký tự đơn lẻ (như PaLM). Điều này đồng nghĩa với việc số lượng token (và kéo theo là chi phí) sẽ có sự chênh lệch giữa các model, ngay cả khi người dùng truyền vào cùng một dữ liệu đầu vào và nhận về cùng một kết quả đầu ra.

Chi phí hiển thị và hóa đơn sẽ được tính dựa trên bộ tách token (tokenizer) của chính model đang sử dụng. Người dùng có thể kiểm tra trường usage trong dữ liệu phản hồi trả về để nắm được số lượng token chính xác của cả phần input lẫn output.