Kimi K2.7 Code is now on CometAPI — Kimi's most intelligent coding model to date, reliably follows instructions in long contexts and completes programming tasks with a higher success rate. Try it now

Các cổng API AI tốt nhất năm 2026: so sánh CometAPI, Portkey, LiteLLM và Cloudflare

CometAPI
AnnaJun 9, 2026
Các cổng API AI tốt nhất năm 2026: so sánh CometAPI, Portkey, LiteLLM và Cloudflare

Việc chọn một cổng API AI không còn là bài toán như hai năm trước. Năm 2024, hầu hết nhà phát triển hoặc gọi trực tiếp OpenAI hoặc tự chạy LiteLLM cục bộ. Giờ đây có các lựa chọn được lưu trữ kèm bảng giá, giới hạn tín dụng theo từng khóa, và danh mục mô hình trải rộng hàng chục nhà cung cấp. Danh mục đã đủ lớn đến mức chọn sai đồng nghĩa bạn phải hoàn tác phần tích hợp thực sự về sau.

Bài viết này so sánh bốn cổng thường xuyên xuất hiện trong thảo luận của nhà phát triển: CometAPI, Portkey, LiteLLM và Cloudflare AI Gateway. Mục tiêu không phải chọn kẻ thắng cuộc — mỗi công cụ phù hợp với một tình huống khác nhau — mà là làm rõ từng công cụ thực sự làm gì để bạn ghép đúng công cụ với trường hợp sử dụng của mình.

Lưu ý về tên mô hình: Các định danh mô hình được dùng trong bài này (như gpt-5.4, claude-opus-4-7) là định danh trên nền tảng CometAPI. Chúng không phải tên chính thức từ OpenAI hay Anthropic, vốn có quy ước đặt tên khác.

Những công cụ này thực sự làm gì

Trước khi so sánh tính năng, cần xác định chính xác một cổng API AI làm gì. Tối thiểu: nó đứng giữa ứng dụng của bạn và một hoặc nhiều nhà cung cấp AI, chuyển tiếp yêu cầu và trả về phản hồi. Vượt qua mức tối thiểu này, các cổng khác nhau đáng kể.

Một số cổng — ví dụ Cloudflare AI Gateway — chủ yếu là lớp truyền qua (pass-through) bổ sung ghi nhật ký và bộ nhớ đệm mà không động đến API key hay giá của bạn. Số khác, như CometAPI, đóng vai trò đại lý bán lại: bạn trả tiền cho họ, họ trả cho nhà cung cấp bên dưới, và chênh lệch giá là một phần đề xuất giá trị. LiteLLM lại khác — đó là phần mềm bạn tự vận hành, không phải dịch vụ được lưu trữ.

Hiểu rõ khác biệt này là quan trọng trước khi bạn đánh giá bất kỳ tính năng cụ thể nào.

So sánh tính năng

Bảng dưới đây sử dụng thông tin từ tài liệu chính thức hoặc bảng điều khiển công khai của mỗi sản phẩm tính đến tháng 5/2026. Các tính năng được đánh dấu gạch ngang (—) chưa được xác nhận trong nguồn chính thức tại thời điểm viết.

Tính năngCometAPIPortkeyLiteLLMCloudflare AI Gateway
Triển khaiLưu trữ (SaaS)Lưu trữ + tự lưu trữTự lưu trữ (mã nguồn mở)Lưu trữ (Cloudflare edge)
Danh mục mô hình500+ mô hình từ nhiều nhà cung cấp1,600+ LLM qua API hợp nhấtPhụ thuộc vào cấu hình của bạnOpenAI, Anthropic, Workers AI
Mô hình định giáĐại lý bán lại (trả tiền cho CometAPI)Truyền qua + phí nền tảngChỉ chi phí hạ tầngTruyền qua (có gói miễn phí)
API tương thích OpenAICó (api.cometapi.com/v1)Có (api.portkey.ai/v1)Có (cục bộ hoặc từ xa)Có (qua URL gateway)
Giới hạn tín dụng theo từng khóaCó (bảng điều khiển)Có (qua cấu hình)
Tỷ lệ định giá theo nhómCó (mặc định 0.8x, nội bộ 0.1x)
Ghi nhật ký yêu cầuCó (4 loại log)
Giám sát tỷ lệ thành côngCó (chế độ xem thời gian hoạt động 30 ngày)
Gói miễn phíCó (tài khoản mới)Mã nguồn mở (chi phí hạ tầng)
Tùy chọn tự lưu trữKhông (doanh nghiệp: máy chủ chuyên dụng)Có (trường hợp sử dụng cốt lõi)Không

Nguồn: Bảng điều khiển CometAPI, Trang chủ Portkey, LiteLLM GitHub, Tài liệu Cloudflare AI Gateway

Kết nối tới từng cổng

Cả bốn cổng đều cung cấp điểm cuối tương thích OpenAI, nghĩa là cùng một cấu trúc client hoạt động cho tất cả — bạn chỉ đổi base_url, thông tin xác thực, và với Portkey thì đổi cách chỉ định mô hình.

Python

import osfrom openai import OpenAI​def require_env(name: str) -> str:    """Raise a clear error if a required environment variable is missing."""    val = os.environ.get(name)    if not val:        raise ValueError(f"Missing required environment variable: {name}")    return val​​# ── CometAPI ────────────────────────────────────────────────────────────────# Hosted reseller with 500+ models. Use CometAPI model identifiers (e.g. "gpt-5.4").cometapi_client = OpenAI(    base_url="https://api.cometapi.com/v1",    api_key=require_env("COMETAPI_KEY"),)​​# ── Portkey ─────────────────────────────────────────────────────────────────# Hosted gateway with observability and 1,600+ LLMs.# Route to a provider by prefixing the model name: "@openai/gpt-4o", "@anthropic/claude-3-5-sonnet", etc.# x-portkey-api-key is required; it authenticates requests to Portkey's gateway.portkey_client = OpenAI(    base_url="https://api.portkey.ai/v1",    api_key=require_env("PORTKEY_API_KEY"),    default_headers={        "x-portkey-api-key": require_env("PORTKEY_API_KEY"),    },)​​# ── LiteLLM ──────────────────────────────────────────────────────────────────# Self-hosted proxy. Provider credentials (OPENAI_API_KEY etc.) are set server-side.# By default the proxy does not validate the client API key — "anything" works.# If you have enabled virtual keys on your LiteLLM instance, pass a virtual key instead.litellm_client = OpenAI(    base_url=os.environ.get("LITELLM_BASE_URL", "http://localhost:4000"),    api_key=os.environ.get("LITELLM_API_KEY", "anything"),)​​# ── Cloudflare AI Gateway ───────────────────────────────────────────────────# URL-based pass-through. Keep your real provider API key — Cloudflare does not replace it.cf_account_id = require_env("CF_ACCOUNT_ID")cf_gateway_id = require_env("CF_GATEWAY_ID")cloudflare_client = OpenAI(    base_url=(        f"https://gateway.ai.cloudflare.com/v1"        f"/{cf_account_id}/{cf_gateway_id}/openai"    ),    api_key=require_env("OPENAI_API_KEY"),)​​def ask(client: OpenAI, model: str, question: str) -> str:    """    Minimal wrapper showing the common call pattern across all four gateways.​    Model format varies by gateway:      CometAPI:   "gpt-5.4", "claude-opus-4-7", etc. (CometAPI identifiers)      Portkey:    "@openai/gpt-4o", "@anthropic/claude-3-5-sonnet", etc.      LiteLLM:    whatever model names you configured in your proxy      Cloudflare: standard OpenAI model names, e.g. "gpt-4o"​    This function does not handle finish_reason, tool_calls, or provider errors.    For production error handling, see: How to Debug Failed AI API Generations.    """    response = client.chat.completions.create(        model=model,        messages=[{"role": "user", "content": question}],    )    return response.choices[0].message.content or ""

Node.js

import OpenAI from "openai";​function requireEnv(name) {  const val = process.env[name];  if (!val) throw new Error(`Missing required environment variable: ${name}`);  return val;}​// ── CometAPI ────────────────────────────────────────────────────────────────const cometClient = new OpenAI({  baseURL: "https://api.cometapi.com/v1",  apiKey: requireEnv("COMETAPI_KEY"),});​// ── Portkey ─────────────────────────────────────────────────────────────────// Route to a provider by prefixing the model: "@openai/gpt-4o", "@anthropic/claude-3-5-sonnet"const portkeyClient = new OpenAI({  baseURL: "https://api.portkey.ai/v1",  apiKey: requireEnv("PORTKEY_API_KEY"),  defaultHeaders: {    "x-portkey-api-key": requireEnv("PORTKEY_API_KEY"),  },});​// ── LiteLLM ──────────────────────────────────────────────────────────────────// Self-hosted. Default mode accepts any API key value.// Set LITELLM_BASE_URL if your server runs on a different host or port.const litellmClient = new OpenAI({  baseURL: process.env.LITELLM_BASE_URL ?? "http://localhost:4000",  apiKey: process.env.LITELLM_API_KEY ?? "anything",});​// ── Cloudflare AI Gateway ───────────────────────────────────────────────────const cfClient = new OpenAI({  baseURL: `https://gateway.ai.cloudflare.com/v1/${requireEnv("CF_ACCOUNT_ID")}/${requireEnv("CF_GATEWAY_ID")}/openai`,  apiKey: requireEnv("OPENAI_API_KEY"),});​/** * Minimal wrapper showing the common call pattern. * Model format varies by gateway — see Python example above for details. * Does not handle finish_reason or error recovery; add those for production use. */async function ask(client, model, question) {  const response = await client.chat.completions.create({    model,    messages: [{ role: "user", content: question }],  });  return response.choices[0].message.content ?? "";}

Mẫu kết nối giống nhau trên cả bốn cổng. Khác biệt có ý nghĩa xuất hiện ở chỗ khác: những gì bạn có thể quan sát, những gì bạn có thể kiểm soát, và chuyện gì xảy ra khi có sự cố.

Từng công cụ giỏi ở điều gì

CometAPI

Trọng tâm của CometAPI là danh mục được lưu trữ với hơn 500 điểm cuối mô hình, bao gồm mô hình tạo ảnh và video bên cạnh mô hình văn bản. Định giá vận hành theo hệ thống tỷ lệ theo nhóm — nhóm mặc định áp dụng hệ số 0.8x lên mức giá cơ sở của CometAPI. Bạn có thể cấu hình các nhóm tỷ lệ khác nhau cho nội bộ (0.1x) so với khách hàng trả phí, giúp xây dựng sản phẩm theo tầng mà không cần quản lý nhiều tài khoản.

Bảng điều khiển cung cấp bốn loại log (gọi API tiêu chuẩn, tạo ảnh, tạo video, Midjourney), chế độ xem thời gian hoạt động 30 ngày, và giới hạn tín dụng theo từng khóa. Giới hạn tín dụng cho phép bạn cấp API key cho khách hàng hoặc nhà thầu với trần chi tiêu cứng, giải quyết vấn đề thực tế khi phân phối quyền truy cập vào tài khoản dùng chung.

Những gì CometAPI không cung cấp: tự lưu trữ (khách hàng doanh nghiệp có thể yêu cầu máy chủ chuyên dụng, nhưng đây không phải tùy chọn tự lưu trữ tiêu chuẩn), giới hạn tốc độ ở cấp cổng, hoặc SSO.

Phù hợp nhất: Nhà phát triển độc lập và các nhóm nhỏ muốn định tuyến qua nhiều mô hình — bao gồm ảnh và video — chỉ với một API key và một quan hệ thanh toán, đồng thời cần kiểm soát ngân sách theo khóa.

Portkey

Portkey là cổng được lưu trữ xây quanh khả năng quan sát. Nó cung cấp quyền truy cập 1,600+ LLM qua một API hợp nhất, với định tuyến bằng cách thêm tiền tố nhà cung cấp trước tên mô hình (@openai/gpt-4o, @anthropic/claude-3-5-sonnet). Điều này nghĩa là bạn không cần cấu hình client riêng cho từng nhà cung cấp — một client Portkey xử lý tất cả, và bạn chỉ thay chuỗi mô hình.

Ngoài định tuyến, Portkey có truy vết yêu cầu, phiên bản hóa prompt, và định tuyến dự phòng được cấu hình trong bảng điều khiển thay vì trong mã. Tùy chọn tự lưu trữ cho phép bạn chạy Portkey trên hạ tầng của mình nếu yêu cầu tuân thủ bắt buộc.

Kho GitHub cho gateway mã nguồn mở của Portkey được duy trì tích cực — hãy kiểm tra số sao hiện tại trực tiếp thay vì dựa vào con số nêu ở đây, vì nó thay đổi thường xuyên.

Phù hợp nhất: Các nhóm cần nhật ký kiểm toán, định tuyến đa nhà cung cấp từ một cấu hình client, hoặc muốn quản trị việc lộ API key giữa các nhà phát triển.

LiteLLM

LiteLLM là gói Python và máy chủ proxy, không phải dịch vụ được lưu trữ. Bạn tự vận hành nó. Đây là khác biệt đáng kể: không có bên thứ ba xử lý yêu cầu của bạn hoặc giữ API key của bạn. Thông tin xác thực nhà cung cấp (OpenAI key thật của bạn, Anthropic key, v.v.) được đặt dưới dạng biến môi trường phía máy chủ; client chỉ trỏ đến proxy cục bộ.

Theo mặc định, LiteLLM không xác thực API key mà client gửi — giá trị bất kỳ cũng được. Nếu bạn bật quản lý khóa ảo, client truyền khóa ảo mà LiteLLM xác thực với cơ sở dữ liệu của chính nó. Dù theo cách nào, proxy sẽ chuyển đổi yêu cầu định dạng OpenAI sang định dạng mà nhà cung cấp phía trên mong đợi, do đó mã ứng dụng của bạn không đổi khi thêm nhà cung cấp mới.

Đổi lại là chi phí vận hành: bạn chịu trách nhiệm chạy, mở rộng và cập nhật máy chủ.

Phù hợp nhất: Nhóm có năng lực devops, tổ chức có ràng buộc tuân thủ cấm proxy API của bên thứ ba, hoặc bất kỳ ai muốn định tuyến đa nhà cung cấp mà không cần tin tưởng nội dung yêu cầu cho một nhà cung cấp SaaS.

Cloudflare AI Gateway

Cloudflare AI Gateway có cấu trúc khác ba công cụ kia. Bạn không đổi API key hay trả tiền cho Cloudflare để truy cập mô hình. Thay vào đó, bạn thay URL cơ sở của nhà cung cấp bằng URL do Cloudflare quản lý, URL này thêm ghi nhật ký, bộ nhớ đệm và giới hạn tốc độ ở edge.

Vì Cloudflare đứng giữa ứng dụng và nhà cung cấp, nó có thể đệm các yêu cầu giống hệt nhau — hữu ích nếu ứng dụng của bạn gửi cùng một prompt lặp lại. Gói miễn phí bao phủ hầu hết trường hợp của nhà phát triển độc lập. Hạn chế là phạm vi: Cloudflare không tổng hợp mô hình từ nhiều nhà cung cấp. Bạn vẫn cần tài khoản và khóa riêng cho từng nhà cung cấp bạn dùng.

Phù hợp nhất: Nhà phát triển đã dùng hạ tầng của Cloudflare, hoặc bất kỳ ai muốn có bộ nhớ đệm và ghi nhật ký trên các tài khoản nhà cung cấp hiện có mà không tạo quan hệ thanh toán mới hoặc thay API key.

Ghép kịch bản

Kịch bảnCông cụ khuyến nghịLý do
Ứng dụng indie, muốn thử 10+ mô hình với một API keyCometAPIDanh mục rộng, thiết lập đơn giản, giới hạn tín dụng theo khóa
Cần tạo ảnh + video trong cùng một tích hợpCometAPIĐiểm cuối hợp nhất cho mô hình văn bản, ảnh và video
Nhóm 5 người, cần theo dõi ai dùng mô hình nàoPortkeyTruy vết yêu cầu, quản lý nhóm
Định tuyến tới 1,600+ LLM với một cấu hình clientPortkeyĐịnh tuyến @provider/model, không cần thiết lập theo từng nhà cung cấp
Muốn định tuyến dự phòng giữa các nhà cung cấp mà không đổi codePortkeyCấu hình dự phòng khai báo trong bảng điều khiển
Doanh nghiệp có yêu cầu lưu trú dữ liệuLiteLLM (tự lưu trữ)Không có bên thứ ba xử lý lưu lượng
Ngân sách bằng 0, thoải mái tự quảnLiteLLMMã nguồn mở, không phí nền tảng
Đang dùng OpenAI trực tiếp, muốn bộ nhớ đệmCloudflare AI GatewayChỉ đổi URL, không có quan hệ thanh toán mới
Cần RBAC cho nhiều nhómPortkey hoặc LiteLLMCả hai đều có quản lý nhóm/vai trò; CometAPI và Cloudflare thì không

Những điều bốn công cụ này không bao phủ

So sánh này đề cập các cổng thường xuất hiện nhất trong thảo luận của nhà phát triển indie. Thị trường còn có những lựa chọn khác đáng lưu ý: Helicone tập trung vào khả năng quan sát mà không làm proxy, OpenRouter chuyên định tuyến tới mô hình open-weight và nghiên cứu, và AWS Bedrock là dịch vụ AI được quản lý của Amazon hướng đến tải doanh nghiệp. Nếu yêu cầu của bạn không khớp với bốn công cụ trên, đó là các hướng tiếp theo để xem xét.

Thực hiện chuyển đổi

Nếu bạn hiện đang gọi trực tiếp một nhà cung cấp và cân nhắc dùng cổng, thay đổi mã là nhỏ. Với CometAPI, bạn thêm một biến môi trường và đổi base_url. Với Portkey, bạn thêm một header và đổi cách chỉ định mô hình (@openai/gpt-4o thay cho gpt-4o). Với Cloudflare, bạn đổi URL mà không đụng đến API key của nhà cung cấp. Với LiteLLM, bạn chạy máy chủ cục bộ trước, rồi trỏ client vào đó.

Câu hỏi lớn hơn không phải là chuyển đổi thế nào, mà là bạn có cần hay không. Nếu bạn chỉ gọi một nhà cung cấp, không gặp vấn đề về minh bạch chi phí, và không cần định tuyến đa mô hình, một cổng sẽ thêm phức tạp mà không có lợi ích. Nếu bạn dùng nhiều nhà cung cấp, phân phối key cho nhà thầu, hoặc thường xuyên gặp hóa đơn bất ngờ, chi phí tích hợp là xứng đáng.

Câu hỏi thường gặp

Tôi có thể dùng các cổng này cùng nhau không? 

Có. Một số nhóm chạy LiteLLM tự lưu trữ cho khối lượng nhạy cảm và dùng CometAPI cho phần còn lại. Cloudflare AI Gateway có thể đặt trước các yêu cầu CometAPI nếu bạn muốn lớp bộ nhớ đệm của Cloudflare ở phía trên — dù điều này thêm một bước mạng.

Các cổng này có lưu trữ prompt của tôi không? 

Tùy công cụ và cấu hình của bạn. Portkey và CometAPI ghi log yêu cầu theo mặc định; cả hai đều có thiết lập lưu giữ. LiteLLM chỉ lưu những gì bạn cấu hình, trên hạ tầng của chính bạn. Hành vi ghi nhật ký của Cloudflare được mô tả trong tài liệu AI Gateway của họ. Hãy đọc điều khoản quyền riêng tư của bất kỳ dịch vụ lưu trữ nào trước khi gửi nội dung nhạy cảm qua đó.

Điều gì xảy ra nếu cổng bị sập? 

Với các cổng được lưu trữ (CometAPI, Portkey, Cloudflare), khi cổng ngừng hoạt động nghĩa là ứng dụng của bạn không thể đến được nhà cung cấp AI theo đường đó. LiteLLM chạy cục bộ có đặc tính khả dụng giống máy chủ của bạn. Trước khi cam kết dùng bất kỳ cổng lưu trữ nào cho sản xuất, hãy kiểm tra SLA và liệu nó có cung cấp dự phòng trực tiếp sang nhà cung cấp nếu bản thân cổng không khả dụng hay không.

Có cách miễn phí để đánh giá từng cái trước khi cam kết không? 

Có. CometAPI và Portkey đều có gói miễn phí. LiteLLM là mã nguồn mở và chỉ tốn chi phí hạ tầng bạn chạy. Cloudflare AI Gateway miễn phí trong giới hạn hào phóng. Bạn có thể chạy cả bốn trên cùng tập prompt thử trước khi quyết định.

Làm thế nào chọn đúng tên mô hình cho mỗi cổng? 

Mỗi cổng có quy ước riêng. CometAPI dùng định danh của riêng họ (gpt-5.4, claude-opus-4-7). Portkey dùng định dạng @provider/model-name (@openai/gpt-4o, @anthropic/claude-3-5-sonnet). LiteLLM dùng tên mô hình bạn định nghĩa trong cấu hình proxy. Cloudflare chuyển nguyên tên mô hình tiêu chuẩn của nhà cung cấp. Hãy kiểm tra tài liệu của từng cổng để biết danh sách mô hình hiện tại trước khi viết mã.

Việc chuyển cổng có ảnh hưởng đến giới hạn tốc độ hiện có của tôi không? 

Có. Nếu bạn chuyển từ gọi trực tiếp OpenAI sang cổng quản lý quan hệ với nhà cung cấp (như CometAPI), giới hạn tốc độ hiệu dụng của bạn được quyết định bởi tài khoản của cổng với OpenAI, không phải tài khoản cá nhân của bạn. Hãy xác minh hành vi giới hạn tốc độ với cổng trước khi chuyển lưu lượng sản xuất.

Sẵn sàng giảm 20% chi phí phát triển AI?

Bắt đầu miễn phí trong vài phút. Bao gồm tín dụng dùng thử miễn phí. Không cần thẻ tín dụng.

Đọc thêm