DEV Community

BeanBean
BeanBean

Posted on Originally published at nextfuture.io.vn

5 model free 1M context trên OpenRouter cho codebase lớn

Originally published on NextFuture

Bạn cần cho model đọc nguyên một repo 3-4 MB để dò một bug kiến trúc, và hóa đơn API cho một lần chạy như vậy đủ làm bạn chần chừ. Câu hỏi thực tế không phải "model nào thông minh nhất", mà "model nào nuốt được cả codebase mà không tính tiền".

Tính đến 28/08/2026, catalog công khai của OpenRouter có 5 model chat giá $0/token với cửa sổ từ 1 triệu token trở lên. Bài này chỉ ra cách tự kiểm tra danh sách đó bằng một lệnh curl, giới hạn thật sự bạn sẽ đụng phải, và cách viết code để không phải sửa model ID mỗi vài tháng.

Tự liệt kê model $0 bằng một lệnh curl

Catalog model của OpenRouter là một endpoint công khai. Theo bài phân tích trên Dev.to: "OpenRouter's model catalog is a public endpoint. No key, no account". Bạn không cần API key để kiểm tra, nên đây là việc nên làm trước mỗi lần lên kế hoạch chi phí:

curl -s https://openrouter.ai/api/v1/models \
| jq -r '.data[]
  | select((.pricing.prompt|tonumber)==0 and (.pricing.completion|tonumber)==0)
  | select(.context_length >= 1000000)
  | "\(.context_length)\t\(.id)"' | sort -rn
Enter fullscreen mode Exit fullscreen mode

Điểm mấu chốt là filter theo pricing, không phải theo tên. Tác giả ghi nhận catalog trả về 387 model tại thời điểm 28/08/2026; lọc theo hậu tố :free cho ra 18 model, còn lọc theo giá cho ra 21. Ba model mà hậu tố bỏ sót là google/lyria-3-clip-preview, google/lyria-3-pro-previewopenrouter/free.

5 model $0 có cửa sổ từ 1 triệu token

Kết quả tác giả nhận được khi chạy lệnh trên:

Model IDContext length

thinkingmachines/inkling1.048.576
thinkingmachines/inkling-small1.048.576
minimax/minimax-m31.048.576
nvidia/nemotron-3-ultra-550b-a55b1.000.000
nvidia/nemotron-3.5-lightning1.000.000

Bài viết lưu ý hai bản preview audio Google Lyria cũng trả về $0 ở mức 1M nhưng bị loại ra vì không phải chat model — nếu bạn tự chạy lệnh trên mà thấy 7 dòng thay vì 5, đó là lý do.

Về quy mô: tác giả quy đổi 1.048.576 token xấp xỉ 4 MB mã nguồn, và mô tả Nemotron 3 Ultra là một MoE 550B tham số. Với phần lớn service backend cỡ vừa ở VN, 4 MB là đủ để nhét toàn bộ thư mục src/ vào một context duy nhất thay vì cắt nhỏ rồi ghép kết quả.

Giới hạn thật nằm ở throughput, không phải context

Đây là phần quyết định bạn có dùng được hay không. Tác giả viết thẳng: "The catch is throughput, not context." Cụ thể, model free trên OpenRouter chạy ở mức 20 request/phút và 50 request/ngày, cho tới khi tài khoản đã từng nạp $10 credit — sau đó trần ngày lên 1.000 request.

Cách tác giả tóm tắt đáng để dán lên tường: đây là ngân sách kiểu "đọc một thứ khổng lồ vài lần mỗi ngày", không phải ngân sách để phục vụ người dùng. Nói cách khác, hạn mức này khớp đúng với hai loại việc:

  • Phân tích repo một lần — dò circular dependency, dựng sơ đồ module, review kiến trúc trước khi refactor.

  • Job tóm tắt chạy đêm — gom log, changelog, hoặc diff của cả tuần thành một bản báo cáo.

Ngược lại, đừng đặt model free vào đường đi của request người dùng. 50 request/ngày là con số một tính năng chat nội bộ đốt hết trong buổi sáng, và bạn sẽ phải xử lý lỗi rate limit ngay giữa giờ làm.

Đừng hardcode :free — danh sách này thay cả dàn

Đây là lỗi phổ biến nhất, và nó không phải lỗi cú pháp nên CI của bạn sẽ không bắt được. Tác giả liệt kê những model ID mà "bạn sẽ thấy trong tutorial khắp nơi" nhưng hôm nay trả về rỗng:

  • meta-llama/llama-3.3-70b-instruct:free

  • deepseek/deepseek-r1:free

  • google/gemini-2.0-flash-exp:free

  • mistralai/mistral-7b-instruct:free

  • qwen/qwen3-coder:free

  • moonshotai/kimi-k2:free

Điều đáng chú ý: OpenRouter vẫn còn Llama 3.3 70B, Qwen3-Coder và bảy biến thể Kimi — nhưng tất cả đều là bản trả phí. Theo bài viết, dàn free hiện tại là một tập hoàn toàn khác: Nemotron 3, GLM 5.2, Gemma 4, inkling, laguna.

Giải pháp mà tác giả đề xuất là dùng openrouter/free. Đây là một router: mô tả của nó tự gọi mình là "the simplest way to get free inference" — bạn truyền đúng một ID và nó tự chọn model đang free. Đổi lại, cửa sổ context của router là 200K, không phải 1M.

Từ đó có một quy tắc chọn khá rõ ràng:

  • Cần >200K token trong một lần gọi → chỉ định thẳng một trong 5 model 1M ở trên, và chấp nhận phải kiểm tra lại ID định kỳ.

  • Prompt vừa với 200K → dùng openrouter/free và để chuyện model bị khai tử thành vấn đề của người khác.

Quy trình thực tế cho một lần phân tích repo

Gợi ý dưới đây là phân tích của chúng tôi dựa trên các giới hạn nêu trên, không phải quy trình được mô tả trong nguồn:

  • Chạy lệnh curl ở đầu bài ngay trước khi chạy job, đừng tin danh sách bạn lưu từ tháng trước.

  • Đo kích thước phần mã nguồn định gửi. Nếu vượt ngưỡng ~4 MB, cắt bớt theo thư mục thay vì cắt ngẫu nhiên giữa file.

  • Gộp nhiều câu hỏi vào một request thay vì hỏi từng câu — với trần 50 request/ngày, mỗi request là tài nguyên hiếm.

  • Ghi lại model ID đã dùng cùng kết quả. Khi ID đó biến mất khỏi danh sách free, bạn cần biết bản phân tích cũ được sinh ra bởi model nào.

Khi nào nên chuyển sang trả phí

Tác giả đưa ra một chi tiết làm cho quyết định này rẻ hơn nhiều so với vẻ ngoài: 119 model trả phí trong cùng catalog cũng đạt mốc 1M context. Nghĩa là nếu bạn vượt trần request, việc chuyển đổi là "a model ID, not an architecture" — đổi một chuỗi trong config, không phải viết lại pipeline chunking.

Đó là lý do nên bắt đầu bằng model free ngay cả khi bạn biết mình sẽ phải trả tiền sau: bạn xác thực được prompt và định dạng output với chi phí $0, rồi mới nâng cấp khi khối lượng thật sự đến.

Cần theo dõi tiếp

Danh sách free churn mạnh, nên hai việc đáng đặt lịch: chạy lại lệnh curl mỗi đầu tháng để phát hiện model bị rút, và kiểm tra xem tài khoản của bạn đã từng nạp $10 chưa — đó là ranh giới giữa trần 50 và trần 1.000 request/ngày, và nó thay đổi hoàn toàn loại workload bạn có thể giao cho tầng miễn phí.


This article was originally published on NextFuture. Follow us for more fullstack & AI engineering content.

Top comments (0)