Open WebUI กับ Hunyuan ในเครื่อง: นำ hy4 ไปไว้หลังส่วนติดต่อแบบ self-hosted
การเชื่อมต่อ hy4 ที่รันอยู่ในเครื่องเข้ากับ Open WebUI: การ deploy ด้วย Docker, การชี้ไปที่ endpoint ของ Ollama หรือ llama.cpp, การเปิดใช้โมเดล, การตั้งค่ารายการโมเดลของผู้ดูแล, การเข้าถึงผ่าน LAN และการตรวจสอบสิทธิ์, พร้อมสองรูปแบบการตั้งค่าและตารางแก้ปัญหา
Open WebUI กับ Hunyuan ในเครื่อง: นำ hy4 ไปไว้หลังส่วนติดต่อแบบ self-hosted
Open WebUI เป็นส่วนติดต่อแชทแบบ self-hosted ที่นิยมที่สุด และมีเส้นทางไปยังโมเดลในเครื่องที่สั้นที่สุด: มันออกแบบมาเพื่อรองรับ Ollama มาโดยตั้งต้น และการเชื่อมต่อ llama.cpp ก็ใช้เพียง URL ที่เข้ากันได้กับ OpenAI เมื่อโมเดลในเครื่องคือ hy4 ผลลัพธ์คือ บันทึกการสนทนา น้ำหนักโมเดล และข้อมูลทั้งหมดอยู่บนเครื่องของคุณ พร้อมส่วนติดต่อที่รู้สึกใกล้เคียงกับผลิตภัณฑ์แชทที่ให้บริการ บทความนี้ให้การตั้งค่าแบบเต็มและตารางแก้ปัญหา
สรุปใน 30 วินาที
เริ่ม Open WebUI ใน Docker เพิ่มการเชื่อมต่อ OpenAI ใน Admin Settings, Connections โดยให้ Base URL ชี้ไปที่ http://host.docker.internal:8080/v1 สำหรับ llama.cpp หรือใช้การเชื่อมต่อ Ollama ที่มีมาให้ จากนั้นเปิดใช้ hy4-local ใน Models และเริ่มสนทนา ห้ามใช้ 127.0.0.1 ภายใน container
ทางเลือกที่หนึ่ง: ใช้ Ollama โดยตรง (สะดวกที่สุด)
Open WebUI มีการเชื่อมต่อ Ollama มาให้ จึงใช้เพียงที่อยู่เดียว:
docker run -d -p 3000:8080 \
-e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
-v open-webui:/app/backend/data \
--name open-webui \
ghcr.io/open-webui/open-webui:main
เปิด http://localhost:3000 ลงทะเบียนบัญชีแรก (ผู้ใช้คนแรกที่ลงทะเบียนจะเป็นผู้ดูแลระบบโดยอัตโนมัติ) จากนั้น:
ยืนยันว่า Ollama ทำงานอยู่
บนเครื่องโฮสต์ รันollama listและตรวจว่าเห็นhy4-localถ้ายังไม่มี ให้สร้างก่อนด้วยollama create hy4-local -f Modelfileตรวจสอบสถานะการเชื่อมต่อ
เปิด Admin Settings → Connections และยืนยันว่าการเชื่อมต่อ Ollama แสดงเป็นเชื่อมต่อแล้วเปิดใช้โมเดล
ไปที่ Admin Settings → Models ค้นหาhy4-localและเปิดสวิตช์การใช้งานเริ่มสนทนา
สร้างการสนทนาใหม่และเลือกhy4-localจากรายการโมเดล
127.0.0.1 ภายใน container คือตัว container เอง
ความล้มเหลวที่พบบ่อยที่สุดคือการตั้ง OLLAMA_BASE_URL เป็น http://127.0.0.1:11434 แล้วเห็นส่วนติดต่อรายงานว่ายังไม่เชื่อมต่อ 127.0.0.1 ใน container ชี้ไปที่เนมสเปซเครือข่ายของ container นั้น ไม่ใช่เครื่องโฮสต์ ให้ใช้ host.docker.internal และถ้าเวอร์ชัน Docker ของคุณไม่แก้ชื่อนี้ ให้เพิ่ม --add-host=host.docker.internal:host-gateway ตอนเริ่ม container
ทางเลือกที่สอง: เชื่อมต่อกับบริการ llama.cpp
ถ้าคุณให้บริการโมเดลด้วย llama-server แทน Ollama ให้เพิ่มการเชื่อมต่อ OpenAI ใน Open WebUI:
ยืนยันว่า llama-server ทำงานอยู่
บนเครื่องโฮสต์รัน./llama-server -m ./Q4_K_M.gguf --host 0.0.0.0 --port 8080 --ctx-size 32768 --jinjaโปรดทราบการฟังที่0.0.0.0ไม่ใช่127.0.0.1มิฉะนั้น container จะเข้าถึงไม่ได้เพิ่มการเชื่อมต่อ OpenAI
Admin Settings → Connections → OpenAI กดเพิ่ม ตั้ง Base URL เป็นhttp://host.docker.internal:8080/v1และ API Key เป็นค่า placeholder ใดก็ได้เพิ่มโมเดลด้วยตนเอง
ถ้ารายการโมเดลไม่โหลด ให้เพิ่มชื่อโมเดลใน Admin Settings → Models และรักษาชื่อให้ตรงกับชื่อที่ llama-server เริ่มด้วยตรวจสอบและเปิดใช้
กลับไปที่รายการโมเดลเพื่อเปิดใช้ แล้วทดสอบในการสนทนาใหม่
ทำไมแนะนำ llama-server แทน vLLM กับ Open WebUI
llama-server ไม่ตรวจสอบชื่อโมเดลอย่างเข้มงวด ใช้หน่วยความจำน้อยกว่า และเริ่มเร็ว เหมาะกับส่วนติดต่อในเครื่องของบุคคลหรือทีมเล็ก vLLM เหมาะกับการให้บริการที่มี concurrency สูงกว่า แต่ตรวจสอบรายการโมเดลอย่างเข้มงวด ดังนั้นชื่อจึงต้องตรงกันอย่างสมบูรณ์เมื่อต่อกับส่วนติดต่อ ทั้งสองตัวใช้ได้ เลือกตาม concurrency
ทางเลือกที่สาม: ตั้งค่าผ่าน environment variable
เมื่อ deploy แบบ container การใส่ค่าผ่าน environment variable มีเสถียรภาพมากกว่า:
docker run -d -p 3000:8080 \
-e OPENAI_API_BASE_URL="http://host.docker.internal:8080/v1" \
-e OPENAI_API_KEY="ollama" \
-e OLLAMA_BASE_URL="http://host.docker.internal:11434" \
-e WEBUI_AUTH=true \
-v open-webui:/app/backend/data \
--add-host=host.docker.internal:host-gateway \
--name open-webui \
ghcr.io/open-webui/open-webui:main
ตรวจชื่อตัวแปรกับเอกสารของเวอร์ชันที่คุณ deploy
ชื่อ environment variable ของ Open WebUI เคยปรับระหว่างเวอร์ชัน เช่น ความแตกต่างในอดีตระหว่าง OPENAI_API_BASE_URL กับ OPENAI_API_BASE สิ่งที่แสดงในที่นี่คือรูปแบบปัจจุบันที่พบบ่อย ก่อนนำไปใช้ให้เปรียบเทียบกับเอกสารของเวอร์ชันที่คุณกำลัง deploy
ตารางเปรียบเทียบการตั้งค่า
| สถานการณ์ | ฝั่งเซิร์ฟเวอร์ | การตั้งค่าฝั่ง Open WebUI | Base URL |
|---|---|---|---|
| สะดวกที่สุด | Ollama | การเชื่อมต่อ Ollama ที่มีมาให้ | http://host.docker.internal:11434 |
| ปรับพารามิเตอร์ได้ | llama.cpp | เพิ่มการเชื่อมต่อ OpenAI | http://host.docker.internal:8080/v1 |
| โมเดลคลาวด์ | EXAIV cloud | เพิ่มการเชื่อมต่อ OpenAI | https://exaiv.com/api/ai/v1 |
| ใช้ทั้งคู่ | ทั้งสองอย่าง | เพิ่มการเชื่อมต่อทั้งสองอย่าง | ตามแต่ละแถวข้างต้น |
ในเครื่องกับคลาวด์สามารถอยู่ร่วมกันได้
Open WebUI รองรับการเชื่อมต่อหลายรายการพร้อมกัน ในรายการโมเดล โมเดล hy4 ในเครื่องและโมเดลบนคลาวด์จะอยู่คู่ขนานกัน ทำให้คุณสลับตามความละเอียดอ่อนของข้อมูลของแต่ละงานได้ ซึ่งมักใช้งานได้ดีกว่าการใช้ทั้งหมดในเครื่องหรือทั้งหมดบนคลาวด์
การเข้าถึงผ่าน LAN และภายนอก
ตามค่าเริ่มต้น Open WebUI ฟังเฉพาะพอร์ต 8080 ภายใน container และถูกแมปออกสู่เครื่องโฮสต์ผ่าน -p 3000:8080 หากต้องการให้อุปกรณ์อื่นในเครือข่ายเข้าได้:
docker run -d -p 3000:8080 \
-e WEBUI_AUTH=true \
-e WEBUI_URL=http://192.168.1.10:3000 \
-v open-webui:/app/backend/data \
--name open-webui \
ghcr.io/open-webui/open-webui:main
ก่อนเปิดออกนอกเครือข่าย ให้ทำสามสิ่งนี้
ข้อแรก เปิด WEBUI_AUTH และตั้งรหัสผ่านที่แข็งแรงให้ทุกบัญชี เพราะบัญชีแรกของ Open WebUI ไม่มีรหัสผ่านและเป็นผู้ดูแลโดยอัตโนมัติ ข้อสอง อย่าเปิดพอร์ต Ollama ให้เข้าถึงได้โดยตรงจากเครือข่ายสาธารณะ เพราะมันไม่มีการตรวจสอบสิทธิ์ ทำให้ใครก็ใช้พลังการคำนวณของคุณได้ ข้อสาม ถ้าจำเป็นต้องเข้าถึงจากสาธารณะจริง ๆ ให้วางชั้น reverse proxy ไว้ข้างหน้าเพื่อทำ TLS และควบคุมการเข้าถึง
ตารางแก้ปัญหา
| อาการ | สาเหตุ | วิธีจัดการ |
|---|---|---|
| การเชื่อมต่อ Ollama แสดงว่ายังไม่เชื่อมต่อ | ใช้ 127.0.0.1 ใน container | เปลี่ยนเป็น host.docker.internal และเพิ่ม host-gateway mapping |
| รายการโมเดลว่างเปล่า | บริการไม่ทำงานหรือเส้นทางผิด | ตรวจพอร์ตบนเครื่องโฮสต์ด้วย curl แล้วเพิ่มชื่อโมเดลด้วยตนเองในหน้างาน |
| ผลลัพธ์แปลก ๆ | เทมเพลตการสนทนาไม่ตรง | แก้ TEMPLATE หรือ --jinja ตาม model card |
| คำตอบช้าลงเรื่อย ๆ | โมเดลรันบน CPU | ยืนยันว่า GPU มีผล หรือใช้ quantization ที่เล็กลง |
| การเปิดครั้งแรกช้ามาก | โมเดลกำลังโหลดเข้าหน่วยความจำ | เป็นเรื่องปกติ |
| ส่วนติดต่อหมุนวนไม่จบ | บริบทใหญ่เกินทำให้หน่วยความจำหมด | ลด num_ctx หรือเปลี่ยนเป็น quantization ที่เล็กลง |
| บทสนทนาปนกันระหว่างผู้ใช้ | การตั้งค่าจุดเก็บ session ถูกแชร์ผิด | ตรวจ volume ที่ถูก mount และการตั้งค่าสิทธิ์ของผู้ใช้ |
FAQ
การตั้งค่าโมเดลในเครื่องกับโมเดลคลาวด์ใน Open WebUI ต่างกันอย่างไร?
ทำไมรายการโมเดลจึงว่างเปล่า?
ทำไมใน container ถึงใช้ 127.0.0.1 ไม่ได้?
Open WebUI ใช้ร่วมกับโมเดลคลาวด์ได้หรือไม่?
เรียก Hunyuan ผ่าน API ของ EXAIV ได้ไหม?
อ่านต่อ
- การเชื่อมต่อ hy4 กับ Ollama — นำ Hunyuan ในเครื่องเข้ากับ Dify, Cursor และเครื่องมืออื่น
- Open WebUI integration — การตั้งค่าการเชื่อมต่อโมเดลคลาวด์ (ซึ่งเป็นเส้นทางต่างจากบทความนี้)
- hy4 GGUF local deployment — เตรียม quantization และหน่วยความจำก่อนให้บริการ
- Dify integration — วิธีต่อแพลตฟอร์มแอปพลิเคชัน self-hosted อีกตัว
- RAG กับ hy4 — ให้โมเดลในเครื่องมีฐานความรู้
- ภาพรวมครอบครัว Tencent Hunyuan — ภาพรวมทั้งหมดของครอบครัว Hunyuan
แหล่งข้อมูล
ชื่อ environment variable และรายการการตั้งค่าเป็นไปตามเอกสารของเวอร์ชันที่คุณกำลัง deploy บทความนี้สะท้อนสถานะ ณ เวลาเก็บตัวอย่าง