Kết nối Open WebUI với một endpoint tùy chỉnh tương thích OpenAI.

Updated 2026-07-29

Open WebUI coi các connection tương thích OpenAI là một cài đặt admin hạng nhất: thêm một connection trong Admin Settings với https://api.apisrouter.com/v1 và một key, và mọi model trong catalog xuất hiện trong model selector cho tất cả người dùng của bạn, cạnh bất cứ gì đang chạy local.

Câu trả lời nhanh: một connection trong Admin Settings.

Với tư cách admin, mở Admin Settings, vào Connections, và trong phần OpenAI API nhấn để thêm một connection. Hai field quan trọng: URL, đặt thành https://api.apisrouter.com/v1, và API key. Lưu, và Open WebUI truy vấn danh sách /v1/models của endpoint để điền vào model selector; xác minh bằng nút kiểm tra của connection, rồi chọn bất kỳ id catalog nào trong một chat mới. Connection thêm theo cách này áp dụng cho toàn workspace: mọi người dùng của instance Open WebUI của bạn đều thấy các model, tùy theo các kiểm soát truy cập model bạn cấu hình. Cùng các giá trị đó có thể được đưa vào dưới dạng biến môi trường tại thời điểm deploy thay vì click cấu hình, OPENAI_API_BASE_URL và OPENAI_API_KEY, đây là con đường sạch hơn khi instance được cấp phát bằng file compose thay vì click thủ công.

URL:      https://api.apisrouter.com/v1
API Key:  sk-YOUR-APISROUTER-KEY

Save → models auto-populate from /v1/models
(optional) Model IDs allowlist to curate the selector

Cách Open WebUI dùng các connection OpenAI.

Open WebUI (khoảng 145K sao GitHub) là front end chat AI self-hosted mặc định: một web client đầy đủ tính năng với người dùng và phân quyền, RAG và knowledge collection, tool calling, và quản lý model, theo kiểu kinh điển đi cùng Ollama cho model local nhưng cũng thoải mái nói chuyện với API từ xa. Mô hình connection của nó mang tính cộng dồn. Phần Ollama bao phủ các runtime local; phần OpenAI API bao phủ bất kỳ endpoint nào nói dialect chat-completions chuẩn, và bạn có thể thêm nhiều connection cạnh nhau. Mỗi connection đóng góp danh sách model của nó vào selector chung, mỗi cái có key riêng, và mỗi cái có thể bị tắt mà không xóa cấu hình của nó. Request mang model id dưới dạng chuỗi thuần tới bất kỳ connection nào phục vụ nó. Thiết kế đó nghĩa là một connection gateway không thay thế bất cứ gì: model local của bạn vẫn chạy qua Ollama mà không tốn chi phí theo token, trong khi claude-sonnet-4-6, gpt-5.5, gemini-3.5-flash, và deepseek-v4-pro trở thành các entry trong selector cho những cuộc trò chuyện cần chất lượng frontier. Một key bao phủ tất cả, và usage phía admin vẫn dễ đọc vì traffic cloud thoát ra qua đúng một nơi.

Cài đặt tại thời điểm deploy: biến môi trường.

Với các deployment docker-compose và Kubernetes, connection có thể là một phần của manifest. OPENAI_API_BASE_URL nhận endpoint và OPENAI_API_KEY nhận key; instance khởi động với connection đã có sẵn. Nhiều endpoint được hỗ trợ qua các dạng số nhiều (OPENAI_API_BASE_URLS và OPENAI_API_KEYS với giá trị phân tách bằng dấu chấm phẩy) nếu bạn chạy nhiều hơn một nguồn từ xa. Hai lưu ý vận hành. Thứ nhất, giá trị đặt qua UI được lưu trong database của Open WebUI và có ưu tiên cao hơn mặc định từ môi trường sau lần khởi động đầu tiên, một hành vi đã được ghi tài liệu thường xuyên làm ngạc nhiên các operator đổi env mà chẳng thấy gì xảy ra; hãy chỉnh connection hiện có trong Admin Settings, hoặc đặt ENABLE_PERSISTENT_CONFIG=false nếu bạn muốn môi trường luôn có thẩm quyền. Thứ hai, nếu danh sách model của endpoint quá lớn, dùng allowlist Model IDs của connection để chọn lọc những gì người dùng của bạn thấy; một selector bốn mục thì được dùng, một selector hai trăm mục thì chỉ bị cuộn lướt qua. Lưu ý về phiên bản: câu chữ menu đã trôi dạt theo nhịp phát hành nhanh của dự án (Settings so với Admin Settings, tên phần bên trong Connections), nên trên các bản cũ hơn hãy tìm cặp OpenAI API base URL và key ở bất cứ đâu connection đang sống.

services:
  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    environment:
      - OPENAI_API_BASE_URL=https://api.apisrouter.com/v1
      - OPENAI_API_KEY=sk-YOUR-APISROUTER-KEY
    ports:
      - "3000:8080"

Chọn model cho một workspace nhiều người dùng.

Vì mọi model cloud đều thanh toán qua một key, A/B testing chỉ là một lựa chọn trong selector. Chạy cùng khối lượng công việc của team, cách nhau hai tuần, trên hai mặc định ứng viên và để view usage theo từng model trong console APIsRouter làm trọng tài, theo từng model và từng ngày, thay vì đoán từ benchmark.

  • Lựa chọn model mặc định đóng góp nhiều nhất trong một instance dùng chung. claude-haiku-4-5-20251001 hoặc gemini-3.5-flash làm mặc định workspace giữ chi phí theo từng cuộc trò chuyện của việc dùng thông thường ở mức ổn định.
  • claude-sonnet-4-6 và gpt-5.5 thuộc về selector cho soạn thảo, phân tích, và câu hỏi code; người dùng nâng cấp khi công việc xứng đáng.
  • Pipeline RAG nhân bội input token: mỗi câu trả lời mang theo các chunk đã truy xuất. deepseek-v4-pro đáng để thử làm "cỗ máy cày" cho RAG, nơi khả năng xử lý context dài trên mỗi token chi ra là đặc điểm quyết định.
  • Giữ tài liệu thực sự riêng tư trên model local qua Ollama và định tuyến mọi thứ khác qua gateway; selector giữ cả hai làn đường một cách rõ ràng.
  • Dùng allowlist Model IDs như một chính sách: cái gì không có trong selector thì không thể gây bất ngờ cho bạn trên usage log.

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 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.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

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

Không model nào xuất hiện sau khi thêm connection là báo cáo phổ biến nhất. Các nguyên nhân theo thứ tự: key thất bại với /v1/models (kiểm tra bằng nút verify của connection), URL thiếu hậu tố /v1, hoặc toggle của connection đang tắt. Open WebUI xây dựng selector từ những gì listing trả về, nên một selector rỗng nghĩa là lệnh gọi listing đã thất bại hoặc không trả về gì. Thay đổi môi trường có vẻ như bị bỏ qua chính là quy tắc persistent-config đã mô tả ở trên: sau lần khởi động đầu tiên, database thắng môi trường với các cài đặt mà UI quản lý. Hãy chỉnh connection trong Admin Settings hoặc tắt hẳn persistent config. Một model xuất hiện trong danh sách nhưng báo lỗi khi chat thường là một id mà listing hiện ra nhưng key của bạn không dùng được, hoặc một lỗi gõ do chỉnh tay allowlist Model IDs; đối chiếu với output thô của /v1/models. Và giữ các làn đường rạch ròi khi debug: vấn đề connection Ollama và vấn đề connection OpenAI trông giống hệt nhau từ cửa sổ chat. Trang Connections hiển thị model thuộc làn đường nào; test trực tiếp làn đường bị lỗi trước khi cho rằng cả instance đang sập.

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

  • Team tự host một chat front end cho tất cả mọi người, muốn có model frontier mà không phải cấp key vendor cho từng người dùng riêng lẻ.
  • Người dùng Ollama giữ model local cho công việc riêng tư nhưng muốn chất lượng Claude và GPT trong cùng selector cho những cuộc trò chuyện cần đến nó.
  • Admin cần hóa đơn cloud dễ đọc: một connection, một key, và một usage log theo từng model thay vì hóa đơn từ bốn vendor.
  • Operator ở các khu vực mà việc đăng ký một số vendor gặp khó khăn; 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 theo từng provider.
  • Người chơi homelab chạy Open WebUI cho gia đình, nơi một số dư trả trước duy nhất dễ tính toán hơn bất kỳ subscription nào.

Xác minh endpoint và debug chat đầu tiên.

Chứng minh endpoint từ phía server trước, đặc biệt trong các deployment container hóa nơi mạng của container không phải mạng laptop của bạn. Một danh sách model và một chat completion từ bên trong host xác nhận phần gateway trước khi Open WebUI bước vào bức tranh. Sau đó thêm connection và xem selector được điền. Lỗi xác thực là field key; một selector rỗng là lệnh gọi listing; một path nhân đôi (/v1/v1/...) trong log server nghĩa là field URL đã mang sẵn một /v1 và một thứ gì đó nối thêm cái khác, nên hãy đọc URL đúng như đã lưu. Khi chat đã thông suốt, console APIsRouter hiển thị model, số token, và chi phí theo từng request. Với một instance nhiều người dùng, đây là con số quan trọng: người dùng của bạn thực sự chọn model nào, và một tuần của workspace thực sự tốn bao nhiêu, theo từng model, từng ngày, trên một trang.

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":"claude-haiku-4-5-20251001",
       "messages":[{"role":"user","content":"ping"}]}'

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

Làm sao để thêm một endpoint API OpenAI tùy chỉnh vào Open WebUI?

Trong Admin Settings, mở Connections và thêm một connection trong phần OpenAI API: URL https://api.apisrouter.com/v1 cùng key của bạn. Lưu và model selector sẽ được điền từ danh sách /v1/models của endpoint; dùng allowlist Model IDs để chọn lọc nó.

URL có cần hậu tố /v1 không?

Có. Open WebUI nối thêm các route path như /chat/completions vào base URL bạn cung cấp, nên giá trị đúng là https://api.apisrouter.com/v1. Thiếu hậu tố sẽ hiện ra dưới dạng danh sách model rỗng; nhân đôi hậu tố sẽ hiện ra dưới dạng lỗi 404 /v1/v1 trong log.

Tôi có thể chạy Ollama và một connection gateway cùng lúc không?

Có, và đó là cấu hình tiêu chuẩn. Connection Ollama và connection OpenAI API là các phần riêng biệt, cả hai đều nuôi model selector, nên model local và các id catalog như claude-sonnet-4-6 nằm cạnh nhau, mỗi cuộc trò chuyện chọn làn đường của mình.

Vì sao thay đổi biến môi trường của tôi bị bỏ qua?

Open WebUI lưu cài đặt vào database của nó sau lần khởi động đầu tiên, và giá trị đã lưu có ưu tiên cao hơn mặc định từ môi trường. Thay vào đó hãy chỉnh connection trong Admin Settings, hoặc đặt ENABLE_PERSISTENT_CONFIG=false để môi trường luôn có thẩm quyền qua các lần restart.

Mọi người dùng có thấy các model từ một connection admin không?

Connection thêm trong Admin Settings mặc định áp dụng cho toàn workspace, tùy theo các kiểm soát truy cập model và quyền workspace mà phiên bản của bạn cung cấp. Chọn lọc selector bằng allowlist Model IDs và cài đặt truy cập theo từng model thay vì key theo từng người dùng.

Open WebUI có thể tiếp cận Claude và Gemini qua một connection OpenAI không?

Có. Connection nói chat completion chuẩn và chuyển tiếp model id dưới dạng chuỗi thuần, nên bất kỳ id nào gateway phục vụ đều hoạt động: id của Claude, Gemini, DeepSeek, và GPT đều qua một URL và một key.