Chạy LobeChat trên một endpoint tùy chỉnh tương thích OpenAI.

Updated 2026-07-29

Module provider của LobeChat chấp nhận bất kỳ dịch vụ tương thích OpenAI nào: tạo một custom provider với SDK type OpenAI, đặt endpoint thành https://api.apisrouter.com/v1, dán một key, và fetch danh sách model. ID của Claude, GPT, Gemini, và DeepSeek xuất hiện trong picker model của mọi assistant.

Câu trả lời nhanh: một custom provider, một endpoint, một key.

Mở cài đặt LobeChat và vào phần AI service provider (được gắn nhãn AI Service Provider hoặc Language Model tùy phiên bản). Kể từ khi module quản lý provider ra mắt ở v1.44, bạn có thể tạo một custom provider thay vì tận dụng mục OpenAI có sẵn: thêm một provider, đặt cho nó một id và tên hiển thị (apisrouter / APIsRouter), chọn SDK type OpenAI, sau đó điền API key và endpoint proxy URL bằng https://api.apisrouter.com/v1. Trong danh sách model của provider, dùng action fetch-models để kéo về mọi id mà endpoint phục vụ qua /v1/models, bật những cái bạn muốn, và chạy kiểm tra kết nối tích hợp sẵn. Từ đó trở đi, bất kỳ assistant hay cuộc trò chuyện nào cũng có thể chọn những id đó từ picker model. Dự án hiện nằm ở lobehub/lobehub trên GitHub (tên repo lobe-chat cũ được redirect tới đó), và nhãn menu thay đổi giữa các phiên bản, nên hãy coi luồng thao tác — provider entry, SDK type, URL, key, fetch — là phần ổn định thay vì câu chữ chính xác.

Provider ID:    apisrouter
Provider Name:  APIsRouter
SDK Type:       OpenAI
API Key:        sk-YOUR-APISROUTER-KEY
API Proxy URL:  https://api.apisrouter.com/v1

Model List → Fetch models → enable ids → check

Cách LobeChat định tuyến request tới một provider.

LobeChat (khoảng 80K sao GitHub, giờ dưới tên LobeHub) là một trong những framework chat mã nguồn mở được triển khai nhiều nhất: một web client hoàn thiện, các assistant với prompt và model riêng, hệ thống plugin, và tính năng knowledge-base, có thể triển khai trong một phiên trình duyệt hoặc self-host cùng database. Mỗi provider entry mô tả request đi đâu và nói dialect SDK nào. Một custom provider với SDK type OpenAI gửi request chat-completions chuẩn tới proxy URL của bạn với model id là một chuỗi thuần, chính xác là hình dạng mà một gateway đa vendor mong đợi. Vì vậy một entry duy nhất mang cả catalog: assistant có thể ghim claude-sonnet-4-6 cho công việc cần cẩn trọng trong khi các cuộc trò chuyện nhanh chạy gemini-3.5-flash, không cần tài khoản thứ hai ở đâu cả. Endpoint URL có một điểm tinh tế được ghi trong tài liệu đáng trích dẫn: URL có cần hậu tố /v1 hay không phụ thuộc vào dịch vụ đứng sau nó. LobeChat nối thêm các route path như /chat/completions vào base bạn cung cấp, nên với APIsRouter giá trị đúng là https://api.apisrouter.com/v1. Triệu chứng được ghi lại khi thiếu hậu tố là model trả về phản hồi rỗng khi test; nếu bạn thấy vậy, thêm /v1 và thử lại.

Self-hosting: con đường biến môi trường.

Nếu bạn tự deploy LobeChat, cùng cách định tuyến đó có thể được đưa thẳng vào container thay vì click vào UI. Cặp biến kinh điển ghi đè provider OpenAI có sẵn: OPENAI_API_KEY nhận key gateway và OPENAI_PROXY_URL nhận https://api.apisrouter.com/v1. Mọi người dùng của deployment đó sau đó thừa hưởng endpoint mà không cần chạm vào cài đặt. Khả năng hiển thị model được kiểm soát bằng cú pháp model-list: OPENAI_MODEL_LIST chấp nhận +id để thêm, -id để ẩn, và id=Display Name để đổi nhãn, các mục phân tách bằng dấu phẩy. Bắt đầu giá trị bằng -all sẽ xóa danh sách có sẵn để chỉ các id bạn khai báo rõ hiện ra, đây là hình dạng sạch cho một deployment được chọn lọc. Các bản server mới hơn còn ghi tài liệu về một họ CUSTOM_PROVIDER_* (count, id, name, type, base URL, keys) để khai báo đầy đủ custom provider tại thời điểm deploy, khớp với những gì module UI làm. Kiểm tra tài liệu tham chiếu biến môi trường hiện tại cho phiên bản của bạn trước khi dựa vào nó, vì bề mặt này mới hơn cặp OPENAI_* và vẫn đang thay đổi.

OPENAI_API_KEY=sk-YOUR-APISROUTER-KEY
OPENAI_PROXY_URL=https://api.apisrouter.com/v1
OPENAI_MODEL_LIST=-all,+claude-sonnet-4-6=Claude Sonnet 4.6,+gpt-5.5,+gemini-3.5-flash,+deepseek-v4-pro

Chọn model cho assistant.

Vì mọi assistant đều thanh toán qua một key, so sánh model chỉ là một thay đổi trong cài đặt assistant. Ghim hai ứng viên trên hai assistant nhân bản, chạy prompt thực của bạn trong một tuần, và đọc chi phí theo từng model trong console APIsRouter cạnh chất lượng câu trả lời bạn quan sát được.

  • Assistant là các ghim model theo từng vai trò. Một assistant viết lách trên claude-sonnet-4-6, một assistant trả lời nhanh trên claude-haiku-4-5-20251001, và một assistant nghiên cứu trên gpt-5.5 đều cùng tồn tại phía sau một provider entry.
  • gemini-3.5-flash là lựa chọn cho độ phản hồi nhanh làm model hội thoại mặc định; hầu hết các lượt trong một framework chat đều ngắn và model nhanh giữ cho UI cảm giác tức thì.
  • deepseek-v4-pro xứng đáng một vị trí cho các cuộc trò chuyện đa ngôn ngữ dài và tóm tắt nặng, nơi hành vi context dài trên mỗi token chi ra là điểm hấp dẫn.
  • Cuộc trò chuyện có vision cần một id hỗ trợ vision với capability được bật trong cấu hình model của provider; LobeChat expose các toggle capability theo từng model trong module provider.
  • Bật có chủ đích một picker hai tier, một id nhanh và một id frontier, và chỉ thêm nữa khi một assistant thực sự cần chúng; mỗi model được bật là một dòng người dùng phải cuộn qua.

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ìnhGiá chính thứcGiá của chúng tôi
Claude Sonnet 4.6$3.00 / $15.00 per M$2.40 / $12.00 per M
GPT-5.5$5.00 / $30.00 per M$4.00 / $24.00 per M
Gemini 3.5 Flash$1.50 / $9.00 per M$1.20 / $7.20 per M
DeepSeek V4 Pro$0.43 / $0.87 per M$0.40 / $0.90 per M
Claude Haiku 4.5 20251001$1.00 / $5.00 per M$0.80 / $4.00 per M

Các lỗi thường gặp riêng của LobeChat.

Phản hồi rỗng khi chạy connectivity check là dấu hiệu đã được ghi tài liệu của vấn đề hậu tố base URL. Thêm hoặc bỏ /v1 (với APIsRouter thì phải có) và thử lại trước khi debug sâu hơn. Model bị thiếu trong picker của một assistant thường có nghĩa là chúng đã được fetch nhưng chưa được bật trong danh sách model của provider, hoặc chính toggle của provider đang tắt. Cả hai đều nằm trên cùng màn hình cài đặt với action fetch. Trên các deployment tự host, hãy nhớ thứ tự ưu tiên: biến môi trường cấu hình mặc định phía server, trong khi người dùng vẫn có thể nhập cài đặt provider riêng phía client tùy theo auth và feature flag của deployment của bạn. Nếu một deployment bỏ qua OPENAI_PROXY_URL của bạn, hãy xác nhận container đã thực sự restart với môi trường mới và phiên client không đang ghi đè nó cục bộ. Version drift là có thật ở đây: cây cài đặt đã được tổ chức lại nhiều hơn một lần (Language Model, rồi AI Service Provider, với module provider xuất hiện ở v1.44), và screenshot từ các hướng dẫn cũ sẽ không khớp với menu hiện tại. Bản thân các field — id, name, SDK type, URL, key — vẫn ổn định.

Ai định tuyến LobeChat qua một gateway.

  • Người tự host LobeChat cho một team, muốn một endpoint trong container và một usage log cho tất cả mọi người, thay vì key vendor theo từng người dùng.
  • Power user của assistant ghim các vendor khác nhau theo từng vai trò, Claude cho viết lách, GPT cho phân tích, DeepSeek cho khối lượng lớn, mà không cần duy trì tài khoản cho từng cái.
  • Người dùng muốn các model mà danh sách provider có sẵn không mang theo, được bật bằng cách fetch catalog của gateway thay vì chờ các bản release upstream.
  • Lập trình viên không có quyền truy cập vào billing của một vendor nào đó. Truy cập dựa trên nạp tiền không yêu cầu thẻ loại bỏ sự phụ thuộc vào đăng ký theo từng provider.
  • Người đã định tuyến editor, launcher, hoặc công cụ CLI của họ qua một gateway và muốn framework chat của họ nằm trên cùng một key.

Xác minh endpoint và debug cuộc trò chuyện đầu tiên.

Curl danh sách model trước và giữ output mở; đó là chính tả có thẩm quyền cho mọi id bạn bật, dù bằng fetch hay gõ tay. Sau đó chạy một chat completion với id bạn định đặt làm mặc định. Bên trong LobeChat, chạy connectivity check trước khi trò chuyện thật. Lỗi xác thực chỉ tới field key. Phản hồi rỗng chỉ tới hậu tố /v1. Lỗi not-found trên một model cụ thể nghĩa là id được bật không khớp với danh sách, điều này chủ yếu xảy ra sau khi chỉnh tay cả display name lẫn id cùng lúc. Khi cuộc trò chuyện đã thông suốt, console APIsRouter hiển thị model, số token, và chi phí theo từng request. Một framework chat có assistant tạo ra traffic trên nhiều model cùng lúc, và view usage theo từng key là nơi thói quen của mỗi assistant trở thành một khoản chi phí bạn có thể thấy theo từng model, từng ngày.

curl -s https://api.apisrouter.com/v1/models \
  -H "Authorization: Bearer $APISROUTER_API_KEY" | head -50

curl -s https://api.apisrouter.com/v1/chat/completions \
  -H "Authorization: Bearer $APISROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"gemini-3.5-flash",
       "messages":[{"role":"user","content":"ping"}]}'

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

Làm sao để thêm một custom provider tương thích OpenAI vào LobeChat?

Trong cài đặt, mở phần AI service provider và tạo một custom provider: id và display name, SDK type OpenAI, endpoint https://api.apisrouter.com/v1, và key của bạn. Fetch danh sách model, bật các id bạn muốn, và chạy connectivity check.

Endpoint URL có cần /v1 không?

Với APIsRouter thì có: https://api.apisrouter.com/v1. LobeChat nối thêm các route như /chat/completions vào base bạn cung cấp, và tài liệu của nó ghi rằng hậu tố sai thường hiện ra dưới dạng phản hồi rỗng khi test. Nếu bạn thấy vậy, sửa hậu tố và thử lại.

OPENAI_PROXY_URL là gì và khi nào tôi dùng nó?

Đó là biến môi trường cho self-hosting, dùng để trỏ lại provider OpenAI có sẵn của LobeChat tới một base URL khác. Đặt nó cùng OPENAI_API_KEY trong container và mọi người dùng của deployment đó thừa hưởng endpoint; dùng OPENAI_MODEL_LIST để chọn lọc id nào hiện ra.

Các assistant khác nhau có thể dùng vendor khác nhau qua một provider không?

Có. Mỗi assistant ghim model riêng của nó, và id di chuyển tới endpoint như một chuỗi thuần cho từng request. Một provider entry có thể phục vụ một assistant Claude, một assistant GPT, và một assistant DeepSeek song song, tất cả đều thanh toán qua cùng một key.

LobeChat có phải cùng dự án với LobeHub không?

Đúng vậy. Dự án đã đổi thương hiệu và repo GitHub giờ nằm ở lobehub/lobehub, với tên lobe-chat cũ được redirect. Tài liệu và menu trộn lẫn cả hai tên trong giai đoạn chuyển đổi, đây cũng là lý do nhãn cài đặt khác nhau giữa các phiên bản.

Vì sao các model tôi đã fetch không xuất hiện trong cuộc trò chuyện?

Fetch chỉ liệt kê id; bật chúng là một toggle riêng theo từng model trong danh sách model của provider, và bản thân provider cũng có một công tắc bật. Kiểm tra cả hai, rồi mở lại picker model. Nếu một id đã bật vẫn báo lỗi, so sánh chính tả của nó với output của /v1/models.