Thêm model catalog trên cloud vào Jan mà không rời bỏ local-first.
Updated 2026-07-29
Jan chạy model trên máy của bạn theo thiết kế, và cài đặt Model Providers của nó chấp nhận bất kỳ endpoint tương thích OpenAI nào cho những ngày cục bộ không đủ: thêm một provider, đặt Base URL thành https://api.apisrouter.com/v1, dán một key, và id Claude, GPT, Gemini, và DeepSeek gia nhập đội hình cục bộ của bạn.
Câu trả lời nhanh: một provider trong Settings.
Mở Settings của Jan và vào Model Providers. Nhấn nút dấu cộng cạnh danh sách provider để thêm một provider tùy chỉnh, đặt tên cho nó (APIsRouter), và trên các bản build gần đây hãy chọn định dạng OpenAI API khi hộp thoại hỏi (Jan v0.8.1 thêm bộ chọn định dạng OpenAI-hoặc-Anthropic; với một gateway hãy chọn OpenAI). Sau đó điền hai field quan trọng: Base URL https://api.apisrouter.com/v1 và API key của bạn. Thêm các model bạn muốn theo id: tài liệu Jan nói rõ rằng thuộc tính id phải khớp tên model mà endpoint phục vụ, nên hãy sao chép id từ danh sách catalog (claude-sonnet-4-6, gpt-5.4-mini, gemini-3.5-flash) thay vì gõ theo trí nhớ. Lưu lại, và các id xuất hiện trong bộ chọn model cạnh bất cứ gì bạn chạy cục bộ. Nhãn đã thay đổi giữa các bản phát hành (phiên bản cũ gọi khu vực này là Remote Engines), nên hãy coi provider, format, URL, key, models, là bộ khung ổn định.
Name: APIsRouter
API Format: OpenAI (v0.8.1+ selector)
Base URL: https://api.apisrouter.com/v1
API Key: sk-YOUR-APISROUTER-KEY
Models: add ids that match the endpoint, e.g.
claude-sonnet-4-6, gpt-5.4-mini, gemini-3.5-flashCách Jan đối xử với các provider từ xa.
Jan (menloresearch trên GitHub, khoảng 44K star) là client desktop local-first: model tải về máy của bạn, chạy qua llama.cpp, và hoạt động offline, với chính app còn phơi ra server tương thích OpenAI riêng tại http://127.0.0.1:1337/v1 cho các công cụ khác. Provider từ xa là làn đường thứ hai có chủ đích, dành cho các model quá lớn để chạy cục bộ hoặc các tác vụ xứng đáng với chất lượng đỉnh cao. Một provider tùy chỉnh dưới định dạng OpenAI là một mô tả endpoint thuần túy: base URL, key, model id đã khai báo. Hội thoại nhắm vào các id đó rời đi dưới dạng request chat-completions chuẩn với id làm chuỗi model, nên một gateway đa vendor chỉ cần đúng một entry. Claude cho viết lách cẩn thận, DeepSeek cho tóm tắt khối lượng lớn, Gemini cho tốc độ, một key đứng sau tất cả. Sự phù hợp về triết lý còn tốt hơn nghe qua ban đầu. Người dùng local-first có xu hướng cẩn trọng về những gì rời khỏi máy, và một gateway giữ làn đường từ xa cẩn trọng như vậy: một endpoint để đặt firewall, một log sử dụng để đọc, một số dư chỉ di chuyển khi bạn chọn gửi thứ gì đó ra ngoài. Không có gì về làn cục bộ thay đổi; các model đã tải về của bạn vẫn hoạt động offline y như trước.
Khai báo model: hợp đồng về id.
Jan không tự lấy catalog của một endpoint tùy chỉnh cho bạn; các model bạn khai báo là các model bạn nhận được, và id chính là hợp đồng. Cách viết chuẩn xác đến từ danh sách /v1/models của gateway, gồm cả hậu tố phiên bản. Một id khai báo trôi khỏi danh sách chỉ tạo ra lỗi not-found khi model đó được chọn, đọc giống một provider chập chờn cho tới khi bạn so sánh từng chuỗi. Khai báo có chủ đích. Một bộ chọn local-first hoạt động tốt nhất khi các hàng từ xa ít và có mục đích: một id nhanh cho các lượt từ xa hằng ngày (gpt-5.4-mini hoặc claude-haiku-4-5-20251001), một id đỉnh cao cho công việc xứng đáng rời khỏi máy (claude-sonnet-4-6), và bất kỳ chuyên gia nào khối lượng công việc của bạn xứng đáng (deepseek-v4-flash cho tóm tắt đa ngôn ngữ dài, gemini-3.5-flash khi độ trễ là tính năng). Mỗi hàng dễ thêm sau này; một catalog dán nguyên vào là nhiễu bạn cuộn qua mỗi ngày. Nếu bạn cũng dùng server API cục bộ của Jan để phục vụ công cụ khác, hãy giữ mô hình tư duy rõ ràng: server đó là Jan đóng vai provider tại 127.0.0.1:1337/v1; mục provider tùy chỉnh là Jan đóng vai client. Hai thứ độc lập, và cấu hình cái này không bao giờ ảnh hưởng cái kia.
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $APISROUTER_API_KEY" | head -50
# declare these ids verbatim in the provider's model listChọn hội thoại nào rời khỏi máy.
Vì sử dụng từ xa được trả trước và đo lường theo từng key, chi phí của làn từ xa là một con số bạn đọc được, không phải một gói thuê bao bạn phải đoán. Chạy một tháng theo tỷ lệ thực tế của bạn và log sử dụng cho bạn biết chính xác việc rời khỏi máy tốn bao nhiêu, theo từng model, từng ngày.
- Các lượt từ xa hằng ngày, câu hỏi nhanh, viết lại, dịch thuật, thuộc về tầng nhanh: gpt-5.4-mini và claude-haiku-4-5-20251001 trả lời nhanh và giữ số dư gần như không nhúc nhích.
- claude-sonnet-4-6 là bước nâng cấp cho công việc mà một model cục bộ rõ ràng không gánh nổi: soạn thảo dài cẩn thận, review code tinh tế, phân tích bạn sẽ chuyển tiếp cho người khác.
- gemini-3.5-flash xứng đáng có chỗ nhờ độ trễ; với các lượt tương tác ngắn nó cảm giác gần với độ phản hồi của một model cục bộ nhất.
- deepseek-v4-flash là lựa chọn khối lượng lớn cho việc tóm tắt tài liệu dài mà bạn sẽ không đưa cho một model cục bộ nhỏ.
- Giữ tài liệu riêng tư hoàn toàn trên model cục bộ; ranh giới giữa hai làn đường chính là ý nghĩa của việc chạy Jan ngay từ đầu.
Trả theo mức sử dụng · thấp hơn giá chính thức
Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.
| Mô hình | Giá chính thức | Giá của chúng tôi |
|---|---|---|
| Claude Haiku 4.5 20251001 | $1.00 / $5.00 per M | $0.80 / $4.00 per M |
| Claude Sonnet 4.6 | $3.00 / $15.00 per M | $2.40 / $12.00 per M |
| GPT-5.4 mini | $0.75 / $4.50 per M | $0.60 / $3.60 per M |
| Gemini 3.5 Flash | $1.50 / $9.00 per M | $1.20 / $7.20 per M |
| DeepSeek V4 Flash | $0.14 / $0.28 per M | $0.10 / $0.30 per M |
Các kiểu lỗi đặc thù của Jan.
Lỗi not-found trên một model cụ thể là vấn đề hợp đồng id: id khai báo không khớp cách viết của endpoint. So sánh với output /v1/models từng ký tự. Lỗi xác thực trên mọi request là field key. Một provider lưu được nhưng không bao giờ trả lời thường là vấn đề Base URL: hậu tố /v1 phải có mặt, vì Jan nối thêm route path như /chat/completions vào base bạn đưa vào, và một đoạn thừa hoặc thiếu sẽ ra lỗi 404. Nếu provider được tạo trên một bản build cũ hơn, hãy kiểm tra định dạng API: v0.8.1 giới thiệu bộ chọn OpenAI-hoặc-Anthropic, và một entry gateway vô tình đặt thành định dạng Anthropic sẽ nói sai phương ngữ với một endpoint /v1/chat/completions. Và hãy nhớ bạn đang debug làn nào. Lỗi model cục bộ (VRAM, lượng tử hóa, cài đặt llama.cpp) và lỗi từ xa (URL, key, id) chia sẻ một cửa sổ chat nhưng không gì khác; bộ chọn model cho thấy một hội thoại thất bại thuộc về làn nào trước khi bạn bắt đầu kéo nhầm sợi dây.
Ai thêm một làn gateway vào Jan.
- Người dùng local-first thỉnh thoảng cần chất lượng đỉnh cao và muốn làn đường thỉnh thoảng đó nằm trên số dư trả trước thay vì một gói thuê bao vendor.
- Lập trình viên trên các máy không chạy tốt model cục bộ lớn, dùng Jan làm giao diện và gateway làm phần nặng.
- Người dùng cẩn trọng về quyền riêng tư muốn đúng một endpoint từ xa để suy luận, đặt firewall, và kiểm toán, thay vì một endpoint cho mỗi vendor.
- Người so sánh đầu ra cục bộ so với cloud trên tác vụ thực tế, nơi các ứng viên từ xa là các hàng khai báo, không phải tài khoản mới.
- Lập trình viên không có quyền truy cập billing của một vendor cụ thể. Truy cập dựa trên nạp tiền không yêu cầu thẻ loại bỏ phụ thuộc đăng ký theo từng provider.
Xác minh endpoint và debug lượt từ xa đầu tiên.
Curl danh sách model và một chat completion trước; với cả hai đều qua, mọi thứ còn lại nằm trong mục provider. Việc này cũng cho bạn chính xác cách viết id để khai báo. Bên trong Jan, gửi một tin nhắn ngắn trên id từ xa nhanh. Lỗi xác thực là key; not-found là id; im lặng hoặc lỗi 404 là hình dạng Base URL. Nếu làn từ xa hoạt động nhưng cảm giác chậm trên id đỉnh cao, đó là độ trễ của model, không phải vấn đề cấu hình; các model lý luận cần thời gian cho các lượt dài. Khi các lượt từ xa đã chạy, console APIsRouter hiển thị model theo từng request, số lượng token, và chi tiêu. Với một người dùng local-first, log này đọc thỏa mãn một cách khác thường: nó là hồ sơ đầy đủ của mọi thứ từng rời khỏi máy, theo từng model, từng ngày, với làn cục bộ đóng góp đúng bằng không vào đó.
curl -s https://api.apisrouter.com/v1/chat/completions \
-H "Authorization: Bearer $APISROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-5.4-mini",
"messages":[{"role":"user","content":"ping"}]}'Câu hỏi thường gặp
Làm sao để thêm một provider tương thích OpenAI tùy chỉnh vào Jan?
Settings, Model Providers, sau đó nút dấu cộng để thêm một provider. Đặt tên, chọn định dạng OpenAI API trên các bản build có hỏi (v0.8.1+), đặt Base URL https://api.apisrouter.com/v1, dán key của bạn, và khai báo model id khớp với danh sách của endpoint.
Vì sao model tôi khai báo trả về not-found?
Jan gửi id đã khai báo nguyên văn làm chuỗi model, và tài liệu của nó yêu cầu id khớp chính xác tên model của endpoint. Lấy danh sách /v1/models và sao chép cách viết, gồm cả hậu tố phiên bản, thay vì gõ id theo trí nhớ.
Thêm một provider từ xa có làm thay đổi cách model cục bộ hoạt động không?
Không. Model cục bộ tiếp tục chạy trên thiết bị qua llama.cpp, kể cả offline. Mục provider thêm một làn từ xa riêng vào bộ chọn, và hội thoại chỉ chạm mạng khi bạn chọn một id từ xa.
Base URL có nên gồm /v1 không?
Có: https://api.apisrouter.com/v1. Jan nối thêm các route như /chat/completions vào base bạn cấu hình, nên thiếu /v1 sẽ ra lỗi 404 và thừa cũng vậy. Nếu request thất bại, hãy đọc URL đã ghép trong lỗi trước khi đổi bất cứ gì khác.
Jan có thể tới Claude và Gemini qua một mục provider không?
Có. Trong định dạng OpenAI, model id đi dưới dạng chuỗi thuần, nên claude-sonnet-4-6, gemini-3.5-flash, gpt-5.4-mini, và deepseek-v4-flash đều có thể khai báo dưới một entry, thanh toán qua một key, và chuyển đổi theo từng hội thoại.
Đây có phải cùng với server API cục bộ của Jan không?
Không. Server cục bộ tại 127.0.0.1:1337/v1 là Jan phục vụ model cục bộ của nó cho công cụ khác. Mục provider tùy chỉnh là Jan tiêu thụ một endpoint từ xa. Chúng là các tính năng độc lập tình cờ chia sẻ định dạng dây OpenAI.