FreeLLM: Cổng kết nối OpenAI tận dụng gói miễn phí từ 5 nhà cung cấp LLM

06 tháng 4, 2026·5 phút đọc

Mỗi nhà cung cấp LLM đều có gói miễn phí, nhưng việc quản lý nhiều SDK và giới hạn tốc độ khác nhau là cơn ác mộng của lập trình viên. FreeLLM là giải pháp gateway mã nguồn mở giúp gom kết nối từ Groq, Gemini, Cerebras, Mistral và Ollama vào một điểm cuối duy nhất, hỗ trợ điều hướng thông minh và tự động chuyển đổi khi gặp lỗi.

FreeLLM: Cổng kết nối OpenAI tận dụng gói miễn phí từ 5 nhà cung cấp LLM

Mỗi nhà cung cấp Mô hình Ngôn ngữ Lớn (LLM) hiện nay đều cung cấp các gói miễn phí (free tier) để thu hút người dùng. Groq cho phép 30 yêu cầu mỗi phút, Gemini cấp 15, Cerebras cấp 30 và Mistral chỉ có 5. Tổng cộng, bạn có thể đạt khoảng 80 yêu cầu mỗi phút.

Con số này đủ để phục vụ cho việc tạo mẫu (prototyping), công cụ nội bộ hoặc các dự án phụ mà bạn chưa muốn bỏ tiền mua API.

Tuy nhiên, vấn đề nằm ở chỗ mỗi nhà cung cấp lại có một SDK riêng biệt, giới hạn tốc độ (rate limit) khác nhau, cơ chế xác thực riêng và thời gian ngừng hoạt động (downtime) riêng biệt. Bạn sẽ phải viết logic để chuyển đổi nhà cung cấp, bắt lỗi 429 (Too Many Requests) và quản lý hàng loạt API key trên năm dashboard khác nhau.

Trong quá trình xây dựng Metis – một công cụ phân tích cổ phiếu sử dụng AI, tôi thường xuyên hết hạn mức truy cập của Groq trong khi Gemini vẫn còn dư dung lượng chờ đợi. Chán nản với việc phải chuyển đổi thủ công, tôi đã xây dựng FreeLLM.

Dashboard tổng quan của FreeLLMDashboard tổng quan của FreeLLM

FreeLLM làm được những gì?

Một điểm cuối (endpoint) duy nhất. Năm nhà cung cấp. Hai mươi mô hình. Tất cả đều miễn phí.

Mã nguồn hiện có của bạn với OpenAI SDK hoàn toàn tương thích. Bạn chỉ cần thay đổi Base URL. Đó là toàn bộ quá trình di chuyển.

Ví dụ lệnh curl:

curl http://localhost:3000/v1/chat/completions \
  -d '{"model": "free-fast", "messages": [{"role": "user", "content": "Hello!"}]}'

Cơ chế định tuyến hoạt động như thế nào?

Khi một yêu cầu được gửi đến FreeLLM, hệ thống sẽ thực hiện quy trình sau:

  1. Kiểm tra xem nhà cung cấp nào đang hoạt động tốt (cơ chế Circuit Breaker sẽ tự động theo dõi).
  2. Chọn nhà cung cấp tốt nhất dựa trên lựa chọn mô hình của bạn.
  3. Nếu nhà cung cấp đó trả về lỗi 429 hoặc gặp sự cố, hệ thống sẽ tự động thử nhà cung cấp tiếp theo.
  4. Bạn nhận được phản hồi cuối cùng.

Có ba "meta-model" xử lý việc định tuyến:

  • free-fast → Độ trễ thấp nhất (thường là Groq hoặc Cerebras).
  • free-smart → Mô hình mạnh nhất (thường là Gemini 2.5).
  • free → Tính sẵn sàng cao nhất trên tất cả các nhà cung cấp.

Các nhà cung cấp và gói miễn phí của họ

Nhà cung cấpMô hìnhGói miễn phí
GroqLlama 3.3 70B, Llama 4 Scout, Qwen3 32B~30 req/min
Gemini2.5 Flash, 2.5 Pro, 2.0 Flash~15 req/min
CerebrasLlama 3.1 8B, Qwen3 235B, GPT-OSS 120B~30 req/min
MistralSmall, Medium, Nemo~5 req/min
OllamaBất kỳ mô hình cục bộ nàoKhông giới hạn

Những gì nằm bên trong "cỗ máy"

Đây không phải là một proxy đơn giản sử dụng cơ chế round-robin. Lớp định tuyến xử lý các mối quan tâm thực tế trong môi trường sản xuất:

Bộ giới hạn tốc độ trượt cửa sổ (Sliding-window rate limiter). Giới hạn của từng nhà cung cấp được theo dõi độc lập. FreeLLM biết bạn đã gửi bao nhiêu yêu cầu tới Groq trong 60 giây qua và sẽ không gửi thêm nếu bạn đang chạm giới hạn.

Cơ chế Circuit Breaker (Cầu dao). Nếu Gemini bắt đầu trả về lỗi 500, FreeLLM sẽ loại nó khỏi vòng quay. Mỗi 30 giây, nó sẽ gửi một yêu cầu kiểm tra. Khi nhà cung cấp hồi phục, nó sẽ được đưa trở lại.

Giới hạn tốc độ theo từng máy khách. Nếu bạn expose công cụ này cho một nhóm, mỗi máy khách sẽ có giới hạn riêng. Xác thực Admin bảo vệ các cấu hình endpoint.

Xác thực Zod. Mọi yêu cầu đều được xác thực trước khi tiếp cận bất kỳ nhà cung cấp nào. Các payload sai sẽ bị từ chối ngay lập tức với thông báo lỗi rõ ràng.

Dashboard thời gian thực. Giao diện React hiển thị tình trạng sức khỏe của nhà cung cấp, nhật ký yêu cầu và độ trễ. Bạn có thể nhìn thấy nhà cung cấp nào đang "khỏe mạnh" ngay lập tức.

Cài đặt và chạy trong 30 giây

git clone https://github.com/devansh-365/freellm.git
cd freellm
cp .env.example .env   # thêm các API key miễn phí của bạn
docker compose up

API sẽ chạy trên localhost:3000. Dashboard tại localhost:3000/dashboard. Xong.

Sử dụng với OpenAI SDK

Bạn không cần học SDK mới. Đoạn mã dưới đây minh họa cách tích hợp:

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "http://localhost:3000/v1",
  apiKey: "not-needed",
});

const response = await client.chat.completions.create({
  model: "free-fast",
  messages: [{ role: "user", content: "Giải thích Circuit Breaker trong 2 câu" }],
});

Không cần nỗ lực di chuyển nào thêm.

Tại sao tôi xây dựng công cụ này?

Khi xây dựng Metis, tôi liên tục rơi vào một vòng lặp: dùng hết gói miễn phí của Groq trong 20 phút kiểm thử, chuyển thủ công sang Gemini, hết hạn, lại chuyển sang Mistral. Lặp lại.

Tôi đã viết một proxy nhanh để tự động hóa việc chuyển đổi. Thêm tính năng dự phòng (failover) vì các nhà cung cấp thường xuyên gặp lỗi ngẫu nhiên. Thêm Circuit Breaker vì không muốn đợi timeout. Thêm dashboard vì muốn xem những gì đang xảy ra.

Nó phát triển thành một công cụ chính thức. Tôi mã nguồn mở nó vì mọi lập trình viên tạo mẫu với LLM đều gặp vấn đề này.

Stack công nghệ: TypeScript, Express 5, React 19, Zod, Docker. Giấy phép MIT.

GitHub: github.com/devansh-365/freellm

Bài viết được tổng hợp và biên soạn bằng AI từ các nguồn tin tức công nghệ. Nội dung mang tính tham khảo. Xem bài gốc ↗