Tài liệu

Tài liệu

LibreChat

LibreChat nhận cấu hình gateway dưới dạng một khối trong librechat.yaml: bốn trường bắt buộc, một biến môi trường cho khóa và một lần khởi động lại. Sau đó, bộ chọn sẽ hiển thị các mã Claude và GPT dưới cùng một tên endpoint.

LibreChat nhận gateway dưới dạng khối endpoints.custom trong librechat.yaml — bốn trường bắt buộc, key từ .env và cần khởi động lại trước khi bộ chọn hiển thị.

librechat.yaml
# librechat.yaml — project root, beside your .env
version: 1.3.5          # the value the documentation's own example carries

endpoints:
  custom:
    # Required: name, apiKey, baseURL, models. The name must be unique and
    # must not reuse a built-in endpoint name such as openAI or anthropic.
    - name: "Kunavo"
      apiKey: "${KUNAVO_API_KEY}"        # resolved from .env, not written here
      # Keep the /v1. LibreChat appends /chat/completions to this by default.
      baseURL: "https://api.kunavo.com/v1"
      models:
        default: ["claude-sonnet-5", "claude-haiku-4-5"]
        fetch: true                      # fills the picker from GET /v1/models
      titleConvo: true
      titleModel: "claude-haiku-4-5"         # titles are a separate call — pin a cheap id
      modelDisplayLabel: "Kunavo"

      # Optional but worth the four lines: without it LibreChat prices your
      # traffic from a table it ships. prompt/completion are USD per million
      # tokens; context is that model's own window. All three required.
      tokenConfig:
        claude-sonnet-5:
          prompt: 1.4
          completion: 7
          context: 1000000
        claude-haiku-4-5:
          prompt: 0.7
          completion: 3.5
          context: 200000
baseURL giữ nguyên /v1. Tài liệu giải thích điều này bằng văn bản thay vì ví dụ: tài liệu cho biết directEndpoint dùng cho URL cơ sở vốn đã là endpoint completions đầy đủ, và điều này “cần thiết vì ứng dụng mặc định thêm ‘/chat/completions’ hoặc ‘/completion’ vào baseURL”. Vì vậy, https://api.kunavo.com/v1 phân giải thành /v1/chat/completions, là đường dẫn cần gọi, còn directEndpoint được để trống. Cả hai ví dụ thực hành trên trang đều kết thúc giống nhau — https://api.mistral.ai/v1 và https://openrouter.ai/api/v1. Nếu dùng origin thuần ở đây, bạn sẽ gặp lỗi 404 thay vì lỗi xác thực.
Chỉ sửa tệp là chưa đủ khi dùng Docker. Trang khởi động nhanh nêu rõ librechat.yaml phải tồn tại trong thư mục gốc của dự án, được mount vào container API và LibreChat phải được khởi động lại trước khi thay đổi xuất hiện trong giao diện. Endpoint mới không xuất hiện trong bộ chọn thường là do vấn đề này, chứ không phải thông tin xác thực — hãy kiểm tra riêng thông tin xác thực bằng curl bên dưới.
Sổ theo dõi mức sử dụng phản ánh cách tính của LibreChat, không phải khoản phí. LibreChat tính giá yêu cầu dựa trên bảng giá đi kèm, đối chiếu với mã model của bạn; vì vậy mã gateway có thể bị tính theo giá của model khác — khối tokenConfig ở trên được dùng để ghi đè mức giá này. Hãy khai báo khối đó cho mọi mã bạn cung cấp, hoặc xem sổ theo dõi là ước tính và số dư tại /app/billing là số liệu thực tế.
Cấu hình này được trích từ tài liệu của chính LibreChat vào ngày bên dưới. Kunavo chưa chạy LibreChat với endpoint của mình — chưa có cuộc hội thoại, lượt phản hồi trực tuyến, vòng gọi công cụ hay lượt chạy Agents nào. Trang thiết lập đã xuất bản không phải là bài kiểm tra và không nên được hiểu như vậy; điều bạn có thể xác minh trong mười giây là curl bên dưới, còn hành vi của ứng dụng khách thuộc về bạn và LibreChat.
Kunavo không cung cấp model embedding, chuyển văn bản thành giọng nói hay chuyển giọng nói thành văn bản, vì vậy endpoint này chỉ phản hồi các yêu cầu chat completions. Điều này quan trọng ở đây vì LibreChat có các tính năng phụ yêu cầu những loại nhà cung cấp khác: tính năng trò chuyện với tệp dùng chỉ mục vector thông qua một API RAG riêng với khóa và URL cơ sở riêng, còn các tính năng giọng nói cũng dùng thông tin xác thực riêng. Các tính năng đó tiếp tục trỏ đến nhà cung cấp mà chúng đang dùng; khóa trong khối ở trên chỉ dành cho endpoint tùy chỉnh và không dùng cho bất kỳ mục nào khác trên trang.
Chưa có khóa? Tạo tài khoản Kunavo, tạo khóa (bắt đầu bằng sk-kn-) và nạp tín dụng từ $10 — các lệnh gọi được thanh toán từ số dư đó và các lệnh gọi thất bại không bị tính phí. Sau đó, bảng điều khiển mở tại phần thiết lập LibreChat.

Từng bước

  1. Tạo khóa tại /app/keys rồi sao chép khóa — khóa chỉ hiển thị một lần.
  2. Với Docker, trước tiên hãy mount cấu hình: hướng dẫn khởi động nhanh yêu cầu bạn sao chép docker-compose.override.yml.example vào docker-compose.override.yml và bỏ chú thích cho volume librechat.yaml. Bản cài đặt trực tiếp bỏ qua bước này.
  3. Tạo hoặc chỉnh sửa librechat.yaml trong thư mục gốc của dự án — cùng thư mục với .env — rồi thêm mục endpoints.custom ở trên.
  4. Đặt khóa trong .env dưới dạng KUNAVO_API_KEY=sk-kn-.... Giá trị giữ chỗ ${KUNAVO_API_KEY} trong YAML sẽ được lấy từ đó, giúp giữ bí mật ngoài tệp cấu hình bạn commit.
  5. Khởi động lại LibreChat rồi mở bộ chọn endpoint: Kunavo xuất hiện thành một mục riêng bên cạnh các endpoint tích hợp sẵn; danh sách model được tải từ GET /v1/models hoặc lấy từ mảng models.default của bạn nếu việc tải thất bại.
  6. Gửi một tin nhắn, sau đó kiểm tra bộ chọn model có thực sự chuyển model hay không — các mã được phân giải tại endpoint, vì vậy một mã Claude và một mã GPT cùng nằm trong một mục là điều bình thường, không phải cấu hình sai.

Đã kiểm tra đối chiếu với Tài liệu tham chiếu đối tượng endpoint tùy chỉnh của LibreChat vào 21 tháng 9, 2026. Cài đặt của bên thứ ba có thể thay đổi; nếu tên trường ở đây không còn khớp với những gì bạn thấy, trang đó là nguồn có thẩm quyền, không phải trang này.

Đây là phiên bản ngắn. Hướng dẫn đầy đủ — lựa chọn mô hình, chi phí của một phiên thực tế và các trường hợp lỗi — nằm trong chi phí thực tế để chạy LibreChat.

Xác minh trước khi gỡ lỗi ứng dụng khách

Một yêu cầu sẽ xác định liệu lỗi nằm ở endpoint, khóa hay tệp cấu hình. Nếu lệnh này trả về JSON, cùng base URL và khóa sẽ hoạt động trong LibreChat.

# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/models \
  -H "Authorization: Bearer sk-kn-..."

Đặt model id nào vào trường

Mọi mô hình văn bản đều có thể truy cập bằng model id — danh sách đang hoạt động là GET /v1/models, còn danh mục kèm giá nằm trên trang mô hình. Mức giá tính bằng USD trên mỗi 1M token, đầu vào / đầu ra.

ID mô hìnhKunavo vào / raPhù hợp ở đâu trong LibreChat
claude-sonnet-5$1.40 / $7.00mục mặc định trong models.default — model dùng cho các cuộc trò chuyện thường ngày
claude-opus-5$3.50 / $17.50mã bạn chuyển sang khi cần phân tích dài, khi câu trả lời tốt hơn xứng đáng với lượt xử lý đó
claude-haiku-4-5$0.70 / $3.50lưu lượng của một phiên bản dùng chung và titleModel — LibreChat đặt tiêu đề cho mọi cuộc trò chuyện bằng một yêu cầu riêng
gpt-5-6-terra$0.70 / $4.20các tài liệu dài được dán vào, khi cửa sổ ngữ cảnh là yếu tố quyết định
Thanh toán theo token từ số dư trả trước, không có phí hàng tháng — xem trang Thanh toán. Với ngữ cảnh lặp lại — chiếm phần lớn dữ liệu mà trình chỉnh sửa hoặc ứng dụng trò chuyện gửi đi — bộ nhớ đệm prompt ảnh hưởng đến hóa đơn nhiều hơn lựa chọn mô hình.

Ba trường tùy chọn hoạt động khác nhau qua gateway

Mọi thông tin trong bảng này đều lấy từ cùng một tài liệu tham chiếu trường, được đọc vào ngày nêu trên. Đây là mô tả cấu hình của chính LibreChat — không phải kết quả kiểm thử của Kunavo, cũng không phải khẳng định về cách một mã model cụ thể hoạt động sau khi yêu cầu rời khỏi ứng dụng khách.

TrườngNội dung tài liệu tham chiếu nêuÝ nghĩa đối với gateway
providerĐịnh tuyến endpoint tùy chỉnh qua ứng dụng khách của nhà cung cấp gốc. Hiện Anthropic là giá trị được hỗ trợ.Tùy chọn này thay đổi giao thức truyền trên dây, không thay đổi nhà cung cấp: cùng một khối có thể dùng giao thức Anthropic Messages thay cho chat completions. Đường dẫn tải model kiểu OpenAI không được dùng trong trường hợp này, vì vậy hãy liệt kê rõ các mã trong models.default.
models.fetchKhi bật, tùy chọn này cố tải danh sách model từ API và có thể làm chậm lần sử dụng đầu tiên nếu phản hồi bị trễ.Kunavo phản hồi GET /v1/models nên bộ chọn tự động được điền. models.default là phương án dự phòng nếu lệnh gọi đó thất bại — vì vậy, bạn nên điền mục này ngay cả khi bật fetch.
tokenConfigXác định cửa sổ ngữ cảnh riêng cho từng model và mức giá trên mỗi triệu token để theo dõi chi phí và tính toán mức sử dụng.Nếu thiếu trường này, sổ theo dõi sẽ tính giá lưu lượng của bạn bằng bảng giá đi kèm LibreChat, đối chiếu với một mã mà bảng chưa từng được thiết kế cho. Nếu có trường này, số liệu trong giao diện sẽ là mức bạn đã đặt.

Hướng dẫn bốn bước — mount, cấu hình, đặt biến môi trường, khởi động lại — có trên trang khởi động nhanh của LibreChat dành cho endpoint tùy chỉnh, trong đó gateway được dùng làm ví dụ thực hành.

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

Làm cách nào để thêm endpoint tùy chỉnh vào LibreChat?

Tạo librechat.yaml trong thư mục gốc dự án, cạnh .env, rồi thêm một mục trong endpoints.custom với bốn trường bắt buộc: name, apiKey, baseURL và models. Tên phải là duy nhất và không được trùng với tên endpoint tích hợp sẵn như openAI hoặc anthropic. Đặt thông tin xác thực trong .env rồi tham chiếu trong YAML dưới dạng ${YOUR_ENV_VAR}, sau đó khởi động lại. Với Docker, tệp cũng phải được mount vào container API thông qua docker-compose.override.yml; mục mới chỉ xuất hiện trong bộ chọn endpoint sau lần khởi động lại đó.

baseURL của LibreChat có cần kết thúc bằng /v1 không?

Có, với gateway tương thích OpenAI. Tài liệu tham chiếu trường của chính LibreChat cho biết tùy chọn directEndpoint dành cho URL cơ sở vốn đã là endpoint completions đầy đủ, và tùy chọn này cần thiết vì ứng dụng mặc định thêm /chat/completions hoặc /completion vào baseURL. Vì vậy, URL cơ sở là gốc API có hậu tố /v1 — https://api.kunavo.com/v1 — và để trống directEndpoint. Cả hai ví dụ trên trang LibreChat đều có cùng cấu trúc. Cấu hình sai sẽ gây lỗi 404 thay vì lỗi xác thực, nhờ đó bạn có thể phân biệt với trường hợp khóa không đúng.

Tại sao chi phí LibreChat báo cáo không khớp với số tiền nhà cung cấp tính?

Vì LibreChat tính giá yêu cầu dựa trên bảng giá đi kèm thay vì số tiền nhà cung cấp tính, đồng thời đối chiếu bảng đó với mã model của bạn. Mã gateway giống với một mục trong bảng sẽ bị tính theo mức giá của mục đó; mã hoàn toàn không khớp với mục nào sẽ dùng mức giá cố định dự phòng. Cách khắc phục là thêm khối tokenConfig dưới endpoint tùy chỉnh, khai báo prompt, completion và context cho mọi mã bạn cung cấp, theo USD trên mỗi triệu token; LibreChat kiểm tra phần ghi đè này trước khi tra bảng giá riêng. Hãy xem sổ theo dõi trong ứng dụng là ước tính và số dư nhà cung cấp là số liệu chính xác.

LibreChat có thể dùng model Claude thông qua endpoint tùy chỉnh không?

Có, theo một trong hai cách. Endpoint tùy chỉnh tương thích OpenAI thông thường sẽ chuyển nguyên mã model đến baseURL, nên mã Claude được phân giải tại endpoint đó thay vì bên trong LibreChat; bạn không cần tài khoản Anthropic. Ngoài ra, trường provider định tuyến cùng khối cấu hình qua ứng dụng khách Anthropic Messages gốc của LibreChat — hiện anthropic là giá trị được hỗ trợ. Đường dẫn tải model kiểu OpenAI không được dùng trong trường hợp này, vì vậy hãy liệt kê các mã bạn muốn dùng trong models.default thay vì dựa vào fetch.

Kunavo đã kiểm thử LibreChat chưa?

Chưa. Cấu hình trên trang này được chép từ tài liệu endpoint tùy chỉnh của chính LibreChat vào ngày hiển thị; không có nội dung nào ở đây là kết quả chạy thực tế — chưa có cuộc hội thoại, lượt phản hồi trực tuyến, vòng gọi công cụ hay lượt chạy Agents nào. Điều đó đúng với mọi ứng dụng khách được ghi lại ở đây; trang thiết lập đã xuất bản không phải là bài kiểm tra. Bạn có thể tự xác minh trong mười giây xem URL cơ sở và khóa có hoạt động hay không; đó là mục đích của lệnh curl trên trang này. Mọi bước sau đó phụ thuộc vào cách LibreChat xử lý mã model bạn chọn.