การติดตั้ง Open WebUI และการกำหนดค่า OmniProxy
ต้องการรวมโมเดลในเครื่องและโมเดลบนคลาวด์ไว้ในหน้าต่างแชตเดียวกัน แต่กังวลว่าการติดตั้งและการเชื่อมต่อจะซับซ้อนใช่ไหม Open WebUI มีหน้าต่างแชตที่คุ้นเคย เมื่อติดตั้งเสร็จแล้ว เพียงกรอกพารามิเตอร์การเชื่อมต่อตามขั้นตอนก็เริ่มใช้งานได้
Open WebUI เป็นหน้าต่างแชตที่สามารถติดตั้งใช้งานได้ด้วยตนเองบนคอมพิวเตอร์หรือเซิร์ฟเวอร์ของคุณ และยังทำงานแบบออฟไลน์ได้อย่างสมบูรณ์ โดยไม่ได้ผูกกับโมเดลของผู้ให้บริการรายใดรายหนึ่ง คุณสามารถเชื่อมต่อทั้งเครื่องมืออย่าง Ollama ที่ใช้รันโมเดลภายในเครื่อง และ API ที่เข้ากันได้กับรูปแบบ OpenAI ซึ่งหมายถึงปลายทางที่ให้บริการโมเดลโดยใช้รูปแบบคำขอเดียวกัน ด้วยวิธีนี้จึงสามารถสลับระหว่างโมเดลในเครื่องและโมเดลบนคลาวด์ได้ภายในหน้าต่างเดียว
เหมาะสำหรับการใช้งานระยะยาวของทีมและองค์กร ความสามารถที่อัปเดตเร็วขึ้นจะปรากฏใน Computer ก่อน ซึ่งเป็นผลิตภัณฑ์ที่ Open WebUI ใช้ทดลองฟีเจอร์ใหม่
การเตรียมพร้อมก่อนติดตั้ง
Open WebUI ใช้งานได้บน macOS, Linux และ Windows คุณสามารถติดตั้งผ่าน Docker, Python หรือ Kubernetes ได้ Docker จะรวมแอปพลิเคชันและสภาพแวดล้อมการทำงานไว้ในคอนเทนเนอร์ที่ค่อนข้างแยกจากระบบ จึงเป็นวิธีที่แนะนำ หากไม่มี Docker คุณสามารถใช้คำสั่ง Python ที่ผ่านการทดสอบด้านล่างได้ ส่วน Kubernetes เป็นระบบสำหรับติดตั้งใช้งานและจัดการคอนเทนเนอร์ โดยดูขั้นตอนที่เกี่ยวข้องได้จาก Quick Start ท้ายบทความ
แนะนำอย่างเป็นทางการ
Docker
- ใช้ docker run คำสั่งเดียว
- เปิด 3000 ในเบราว์เซอร์
- ข้อมูลอยู่ในวอลุ่มข้อมูล
ต้องการเพียงแชต
อิมเมจ slim
- ขนาดดาวน์โหลดเล็กกว่า
- เปลี่ยนแท็กเป็น :slim
- ยังคงใช้ฟังก์ชันแชตได้
บทความนี้ไม่ลงรายละเอียด
อีกสองวิธี
- ติดตั้ง Python ด้วยตนเอง
- ปรับใช้ด้วย Kubernetes
- ดู Quick Start อย่างเป็นทางการ
เตรียมสิ่งต่อไปนี้ก่อนเริ่ม:
- Docker ที่ติดตั้งและทำงานได้แล้ว
- สตริงคีย์ที่ใช้เฉพาะสำหรับคุณ เรียกใช้
openssl rand -hex 32เพื่อสร้าง แล้วใส่ลงในWEBUI_SECRET_KEYต้องเก็บค่านี้ไว้โดยไม่เปลี่ยนแปลง หากเปลี่ยนเมื่อติดตั้งคอนเทนเนอร์ใหม่ ผู้ที่เข้าสู่ระบบอยู่แล้วจะถูกออกจากระบบ - OmniProxy ที่กำลังทำงานอยู่ และ Model ID จากรายการโมเดลปัจจุบันของระบบ Model ID คือชื่อเต็มที่ใช้เลือกโมเดลเฉพาะ
การติดตั้งและเริ่มใช้งานครั้งแรก
เปิดเทอร์มินัลแล้วเรียกใช้คำสั่งจาก Quick Start โดยเปลี่ยน your-secret-key เป็นสตริงคีย์ที่สร้างไว้ก่อนหน้านี้:
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data -e WEBUI_SECRET_KEY=your-secret-key --name open-webui --restart always ghcr.io/open-webui/open-webui:main
ตัวเลือกต่าง ๆ ในคำสั่งนี้มีหน้าที่ดังต่อไปนี้:
-p 3000:8080: ทำให้คุณเปิดหน้าต่างผ่านพอร์ต 3000 ของคอมพิวเตอร์เครื่องนี้ได้ หากพอร์ต 3000 ถูกใช้งานอยู่ ให้เปลี่ยนตัวเลขทางซ้าย-v open-webui:/app/backend/data: จัดเก็บแชต ผู้ใช้ และการตั้งค่าไว้ใน data volume ซึ่งเป็นตำแหน่งสำหรับเก็บข้อมูลระยะยาวภายนอกคอนเทนเนอร์ เนื้อหาจะยังอยู่หลังอัปเดตคอนเทนเนอร์ ดังนั้นอย่านำตัวเลือกนี้ออก--add-host=host.docker.internal:host-gateway: ทำให้คอนเทนเนอร์เข้าถึงบริการอื่นที่ทำงานอยู่บนคอมพิวเตอร์เครื่องนี้ได้--restart always: ทำให้คอนเทนเนอร์เริ่มทำงานอีกครั้งหลังรีสตาร์ตคอมพิวเตอร์
หลังจากเรียกใช้คำสั่งแล้ว ให้เปิด http://localhost:3000 ในเบราว์เซอร์ และสร้างบัญชีแรกตามคำแนะนำบนหน้าเว็บ
หากใช้สำหรับแชตผ่าน API เท่านั้น สามารถเปลี่ยนแท็กอิมเมจจาก :main เป็น :slim ได้ slim เป็นอิมเมจขนาดเล็กกว่าซึ่งไม่มีโมเดลเสียงและโมเดล embedding ภายในคอนเทนเนอร์ แต่หน้าต่างแชตยังคงใช้งานได้ หากต้องการความสามารถภายในเครื่องเหล่านี้ ให้ใช้ :main ต่อไป
เมื่อต้องการอัปเดต ขั้นตอนแบบดำเนินการเองคือเรียกใช้ docker rm -f open-webui ก่อน จากนั้นเรียกใช้ docker pull ghcr.io/open-webui/open-webui:main แล้วเริ่มระบบใหม่ด้วยคำสั่ง docker run เดิม ต้องคง data volume และ WEBUI_SECRET_KEY ไว้เหมือนเดิม
เมื่อไม่มี Docker
Quick Start มีวิธีติดตั้งด้วย Python เช่นกัน เมื่อวันที่ 2026-10-09 มีการใช้คำสั่งด้านล่างเพื่อติดตั้ง Open WebUI v0.11.4 บน macOS และทดสอบการสนทนาหนึ่งครั้งสำเร็จ ขณะนั้นคอมพิวเตอร์เครื่องนี้ไม่มี Docker Desktop
DATA_DIR=~/.open-webui uvx --python 3.11 open-webui@latest serve
หลังเริ่มระบบ ให้เปิด http://localhost:8080 ในเบราว์เซอร์ นี่คือพอร์ตที่ใช้กับการติดตั้งด้วย Python ไม่ใช่พอร์ต 3000 ของ Docker
การเริ่มระบบครั้งแรกจะดาวน์โหลดโมเดล embedding ซึ่งอาจใช้เวลาหลายนาที โมเดล embedding จะแปลงข้อความเป็นข้อมูลที่เหมาะสำหรับการค้นหาและจับคู่ รอจนหน้าลงชื่อเข้าใช้ปรากฏขึ้นแล้วจึงดำเนินการต่อ บัญชีแรกที่ลงทะเบียนจะเป็นผู้ดูแลระบบ ภาษาของอินเทอร์เฟซจะเป็นไปตามระบบ และในการทดสอบครั้งนี้แสดงเป็นภาษาจีนตัวย่อ
DATA_DIR ต้องชี้ไปยังไดเรกทอรีที่จะเก็บไว้ในระยะยาวเพื่อจัดเก็บข้อมูลของ Open WebUI หากไม่กำหนดค่า ข้อมูลอาจถูกเก็บไว้ในไดเรกทอรีชั่วคราวและสูญหายหลังปิดโปรแกรม หากไม่ได้กำหนด WEBUI_SECRET_KEY โปรแกรมจะเขียนไฟล์ .webui_secret_key ลงในไดเรกทอรีปัจจุบัน โปรดเริ่มระบบจากไดเรกทอรีที่ต้องการเก็บไว้ หรือกำหนดตัวแปรนี้ด้วยตนเอง
รับค่าการเชื่อมต่อจาก OmniProxy
คัดลอกรายการสามอย่างต่อไปนี้จาก OmniProxy ของคุณ:
URL: https://your-omniproxy-origin.example/v1
API Key: <YOUR_OMNIPROXY_API_KEY>
Model ID: คัดลอกจากรายการโมเดลปัจจุบันของ OmniProxy
URL คือที่อยู่ที่ Open WebUI ใช้เชื่อมต่อกับ API และต้องลงท้ายด้วย /v1 อย่าเติม /chat/completions ต่อท้าย เนื่องจาก Open WebUI จะเพิ่มส่วนนี้เอง
ต้องคัดลอก Model ID แบบเต็มจากรายการปัจจุบันของ OmniProxy หาก ID มีคำนำหน้าแหล่งที่มาและเครื่องหมายทับ ต้องเก็บไว้ทั้งหมด ชื่อย่อสองรายการด้านล่างเป็นเพียงข้อมูลเปรียบเทียบจากเอกสารของผู้ให้บริการ ณ วันที่ 2026-10-09 หากไม่มีอยู่ในรายการปัจจุบัน อย่านำไปใช้:
- Claude API ID ของ Claude Sonnet 5.5:
claude-sonnet-5-5 - ชื่อ API ของ Gemini 3.8 Flash:
gemini-3.8-flash
อย่าใส่คีย์ของผู้ให้บริการลงใน Open WebUI หากเกตเวย์ไม่ได้ตรวจสอบคีย์ สามารถเว้น API Key ว่างไว้ได้ และไม่ควรสร้างคีย์ขึ้นมาเอง
เบราว์เซอร์
เครื่องนี้ที่ 3000
- เปิดหน้าแชต
- ลงทะเบียนให้เสร็จก่อน
- จากนั้นไปที่การตั้งค่า
ภายในคอนเทนเนอร์
Open WebUI
- อย่าใช้ localhost
- เปลี่ยนเป็นชื่อโฮสต์ของเครื่อง
- URL ลงท้ายด้วย /v1
คอมพิวเตอร์เครื่องเดียวกัน
OmniProxy
- เก็บคีย์ไว้ที่เกตเวย์
- ใช้รายการโมเดลตามเกตเวย์
- จากนั้นดูบันทึกการเรียกใช้
หากบริการโมเดลทำงานอยู่บนโฮสต์ แต่ Open WebUI ทำงานในคอนเทนเนอร์ Docker ให้เปลี่ยน localhost ใน URL เป็น host.docker.internal โฮสต์หมายถึงคอมพิวเตอร์ที่รัน Docker โดยตรง หาก OmniProxy รับการเชื่อมต่อเฉพาะบนคอมพิวเตอร์เครื่องนี้ สามารถเขียน URL เป็น http://host.docker.internal:พอร์ต/v1 โดยเปลี่ยนพอร์ตให้เป็นพอร์ตที่ OmniProxy ใช้งานจริง
หาก Open WebUI ทำงานในเครื่องผ่านคำสั่ง Python จากส่วนก่อนหน้า และ OmniProxy ก็ทำงานอยู่ในเครื่องเดียวกัน ให้ใช้ 127.0.0.1 หรือ localhost เป็นที่อยู่ ในกรณีนี้อย่าใช้ host.docker.internal
กรอกการกำหนดค่าเครื่องมือ
อินเทอร์เฟซภาษาจีนตัวย่อของ v0.11.4 เมื่อวันที่ 2026-10-09 ใช้ชื่อเมนูต่างจาก Settings > Admin > Connections ในคำอธิบายภาษาอังกฤษ ให้ดำเนินการตามตัวเลือกที่ปรากฏจริง:
- ขยายแถบด้านข้างทางซ้าย
- คลิกเมนูผู้ใช้ที่ด้านล่าง
- คลิก การตั้งค่า
- คลิก การเชื่อมต่อภายนอก ในกลุ่มผู้ดูแลระบบด้านล่าง
- เปิด OpenAI API
- คลิก + ทางขวาของ จัดการการเชื่อมต่อ OpenAI API
- ในหน้าต่าง แก้ไขการเชื่อมต่อ ที่ปรากฏขึ้น ให้กรอก URL จนถึง
/v1และคงประเภท API เป็น Chat Completions - คง วิธีการยืนยันตัวตน เป็น คีย์ (Bearer) โดย Bearer เป็นวิธีใส่ API Key ลงในคำขอเพื่อยืนยันตัวตน เมื่อ OmniProxy ส่งคีย์ให้คุณ ให้นำไปใส่ใน API Key หากเกตเวย์ไม่ได้ตรวจสอบคีย์ ให้เว้นช่องนี้ว่างไว้ เมื่อวันที่ 2026-10-09 การตรวจสอบและการสนทนาหนึ่งครั้งสำเร็จแม้เว้นช่องนี้ว่าง
- คลิก ตรวจสอบการเชื่อมต่อ ข้าง URL หาก OmniProxy มี
/modelsระบบจะดึงรายการโมเดลจากที่นี่ - เปิด ขั้นสูง หากเว้น Model ID ว่าง ระบบจะใช้โมเดลทั้งหมดที่ส่งกลับจาก
/modelsของที่อยู่นี้ เฉพาะเมื่อการตรวจสอบล้มเหลว ให้ใส่ ID แบบเต็มจากรายการใน เพิ่ม Model ID แล้วคลิก เพิ่ม เพิ่มแต่ละ ID เพียงครั้งเดียว โดยช่องว่างหน้าและหลังจะถูกตัดออก - คลิก บันทึก ในหน้าต่างนี้ แล้วคลิก บันทึก ที่มุมขวาล่างของหน้าการเชื่อมต่อภายนอกอีกครั้ง
การบันทึกการกำหนดค่าเพียงอย่างเดียวไม่สามารถใช้แทนการตรวจสอบได้ ตรวจสอบการเชื่อมต่อ จะส่งคำขอไปยัง /models ของอีกฝ่าย ซึ่งเป็น API สำหรับแสดงรายการโมเดลที่ใช้งานได้ บริการบางแห่งไม่มี API นี้ การตรวจสอบจึงอาจแสดงข้อผิดพลาด แต่การแชตอาจยังใช้งานได้ ในกรณีนี้ให้เพิ่ม Model ID ด้วยตนเอง
ตรวจสอบด้วยงานจริง
กลับไปที่หน้าแชต เปิดเมนูโมเดลข้างช่องป้อนข้อความ แล้วเลือก ID แบบเต็มจากรายการของ OmniProxy ส่งข้อความสั้น ๆ เช่น ขอให้ตอบกลับเพียงหนึ่งคำ ต้องมีคำตอบปรากฏขึ้นจริงในช่องแชต
เมื่อวันที่ 2026-10-09 มีการสนทนานี้ผ่านการติดตั้ง v0.11.4 ด้วย Python แล้ว Docker ยังคงเป็นวิธีที่แนะนำ แต่การทดสอบครั้งนี้ไม่ได้ทำซ้ำใน Docker
จากนั้นเปิดบันทึกการเรียกใช้ของ OmniProxy เพื่อตรวจสอบแหล่งที่มาและ Model ID ของคำขอนี้ หากเห็นเพียงว่าบันทึกสำเร็จ หรือเห็นเพียงว่าโมเดลปรากฏในเมนู ยังไม่ถือว่าดำเนินการเสร็จสมบูรณ์
อินเทอร์เฟซ
เลือกโมเดลได้
- บันทึก Connections แล้ว
- โมเดลปรากฏในรายการ
- ส่งคำถามสั้นหนึ่งคำถาม
คำตอบ
มีคำตอบในช่องแชต
- ไม่ใช่ข้อความว่าง
- ไม่ใช่ข้อผิดพลาดในการเชื่อมต่อ
- เปลี่ยนโมเดลแล้วลองอีกครั้ง
บันทึก
มองเห็นได้ในเกตเวย์
- แหล่งที่มาคือการเชื่อมต่อครั้งนี้
- ID โมเดลตรงกัน
- ไม่มีคีย์ปรากฏบนหน้าเว็บ
ข้อผิดพลาดที่พบบ่อย
- ใช้
localhostหรือ127.0.0.1ภายในคอนเทนเนอร์: ที่อยู่ทั้งสองนี้ชี้ไปยังตัวคอนเทนเนอร์เอง ไม่ใช่โฮสต์ ให้เปลี่ยนเป็นhost.docker.internalและตรวจสอบว่าคำสั่งเริ่มระบบมี--add-host=host.docker.internal:host-gatewayหาก Open WebUI ไม่ได้ทำงานในคอนเทนเนอร์ ให้ทำตรงกันข้ามและใช้ที่อยู่ภายในเครื่อง - เบราว์เซอร์เปิดไม่ได้: สำหรับ Docker ให้ตรวจสอบพอร์ต 3000 ส่วน Python ให้ตรวจสอบพอร์ต 8080 การเริ่มระบบครั้งแรกต้องรอให้ดาวน์โหลดโมเดล embedding เสร็จสิ้น ใช้
docker psเพื่อตรวจสอบว่าคอนเทนเนอร์กำลังทำงานอยู่หรือไม่ หากพอร์ต 3000 ถูกใช้งาน ให้แก้ไขพอร์ตทางซ้ายของ-p - ID ในเมนูโมเดลยาวกว่าชื่อย่อของผู้ให้บริการ: ใช้ ID แบบเต็มจากเมนู รวมถึงเครื่องหมายทับที่อยู่ภายใน
- ผู้ใช้ทั้งหมดถูกออกจากระบบหลังอัปเดต: ค่า
WEBUI_SECRET_KEYเปลี่ยนไป ให้เริ่มระบบใหม่โดยใช้สตริงคีย์ที่สร้างไว้ครั้งแรก - ตรวจสอบการเชื่อมต่อ ล้มเหลว: ให้เพิ่ม Model ID ด้วยตนเองใน ขั้นสูง ก่อน แล้วตรวจสอบด้วยการสนทนาจริงหนึ่งประโยค บริการบางแห่งไม่มี
/modelsดังนั้นแม้การตรวจสอบจะแสดงข้อผิดพลาด การแชตอาจยังใช้งานได้ - ไม่พบโมเดล: คัดลอก ID ใหม่จากรายการปัจจุบันของ OmniProxy และอย่าใช้ชื่อที่หมดอายุแล้วต่อไป
เอกสารอ้างอิง
ดูคำสั่งติดตั้งได้ที่ Open WebUI Quick Start และดูขั้นตอนการเชื่อมต่อได้ที่ คำอธิบายการเชื่อมต่อ OpenAI-compatible ส่วน Model ID ที่ใช้เป็นตัวอย่างดูได้ที่ ภาพรวมโมเดล Claude และ รายการโมเดล Gemini
แทนที่ตัววางตำแหน่งทั้งหมดด้วยค่าจากการกำหนดค่า OmniProxy ของคุณ ห้ามเผยแพร่คีย์จริง
ผลลัพธ์ที่บันทึกหรือ HTTP 200 เพียงอย่างเดียวไม่พิสูจน์ความเข้ากันได้เต็มรูปแบบของเอเจนต์ ตรวจสอบแหล่งที่มาและโมเดลในบันทึกการเรียกใช้ของ OmniProxy