mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-05-02 16:20:26 +00:00
697 lines
45 KiB
Markdown
697 lines
45 KiB
Markdown
# คู่มือการใช้งาน
|
||
|
||
🌐 **Languages:** 🇺🇸 [English](../../USER_GUIDE.md) | 🇧🇷 [Português (Brasil)](../pt-BR/USER_GUIDE.md) | 🇪🇸 [Español](../es/USER_GUIDE.md) | 🇫🇷 [Français](../fr/USER_GUIDE.md) | 🇮🇹 [Italiano](../it/USER_GUIDE.md) | 🇷🇺 [Русский](../ru/USER_GUIDE.md) | 🇨🇳 [中文 (简体)](../zh-CN/USER_GUIDE.md) | 🇩🇪 [Deutsch](../de/USER_GUIDE.md) | 🇮🇳 [हिन्दी](../in/USER_GUIDE.md) | 🇹🇭 [ไทย](../th/USER_GUIDE.md) | 🇺🇦 [Українська](../uk-UA/USER_GUIDE.md) | 🇸🇦 [العربية](../ar/USER_GUIDE.md) | 🇯🇵 [日本語](../ja/USER_GUIDE.md) | 🇻🇳 [Tiếng Việt](../vi/USER_GUIDE.md) | 🇧🇬 [Български](../bg/USER_GUIDE.md) | 🇩🇰 [Dansk](../da/USER_GUIDE.md) | 🇫🇮 [Suomi](../fi/USER_GUIDE.md) | 🇮🇱 [עברית](../he/USER_GUIDE.md) | 🇭🇺 [Magyar](../hu/USER_GUIDE.md) | 🇮🇩 [Bahasa Indonesia](../id/USER_GUIDE.md) | 🇰🇷 [한국어](../ko/USER_GUIDE.md) | 🇲🇾 [Bahasa Melayu](../ms/USER_GUIDE.md) | 🇳🇱 [Nederlands](../nl/USER_GUIDE.md) | 🇳🇴 [Norsk](../no/USER_GUIDE.md) | 🇵🇹 [Português (Portugal)](../pt/USER_GUIDE.md) | 🇷🇴 [Română](../ro/USER_GUIDE.md) | 🇵🇱 [Polski](../pl/USER_GUIDE.md) | 🇸🇰 [Slovenčina](../sk/USER_GUIDE.md) | 🇸🇪 [Svenska](../sv/USER_GUIDE.md) | 🇵🇭 [Filipino](../phi/USER_GUIDE.md)
|
||
|
||
คู่มือฉบับสมบูรณ์สำหรับการกำหนดค่าผู้ให้บริการ การสร้างคอมโบ การผสานรวมเครื่องมือ CLI และการปรับใช้ OmniRoute
|
||
|
||
---
|
||
|
||
## สารบัญ
|
||
|
||
- [Pricing at a Glance](#-pricing-at-a-glance)
|
||
- [Use Cases](#-use-cases)
|
||
- [Provider Setup](#-provider-setup)
|
||
- [CLI Integration](#-cli-integration)
|
||
- [Deployment](#-deployment)
|
||
- [Available Models](#-available-models)
|
||
- [Advanced Features](#-advanced-features)
|
||
|
||
---
|
||
|
||
## 💰 ราคาโดยสรุป
|
||
|
||
| ชั้น | ผู้ให้บริการ | ราคา | รีเซ็ตโควต้า | ดีที่สุดสำหรับ |
|
||
| ------------------ | ---------------- | ---------------- | ------------------- | ---------------------------- |
|
||
| **💳 สมัครสมาชิก** | รหัสคลอดด์ (Pro) | $20/เดือน | 5 ชม. + รายสัปดาห์ | สมัครสมาชิกแล้ว |
|
||
| | Codex (พลัส/โปร) | $20-200/เดือน | 5 ชม. + รายสัปดาห์ | ผู้ใช้ OpenAI |
|
||
| | ราศีเมถุน CLI | **ฟรี** | 180K/เดือน + 1K/วัน | ทุกคน! |
|
||
| | นักบิน GitHub | $10-19/เดือน | รายเดือน | ผู้ใช้ GitHub |
|
||
| **🔑 คีย์ API** | DeepSeek | จ่ายตามการใช้งาน | ไม่มี | การใช้เหตุผลราคาถูก |
|
||
| | กรอค | จ่ายตามการใช้งาน | ไม่มี | การอนุมานที่รวดเร็วเป็นพิเศษ |
|
||
| | xAI (โกรก) | จ่ายตามการใช้งาน | ไม่มี | Grok 4 การใช้เหตุผล |
|
||
| | มิสทรัล | จ่ายตามการใช้งาน | ไม่มี | โมเดลที่โฮสต์โดยสหภาพยุโรป |
|
||
| | ความฉงนสนเท่ห์ | จ่ายตามการใช้งาน | ไม่มี | การค้นหาเสริม |
|
||
| | ร่วมกัน AI | จ่ายตามการใช้งาน | ไม่มี | โมเดลโอเพ่นซอร์ส |
|
||
| | ดอกไม้ไฟ AI | จ่ายตามการใช้งาน | ไม่มี | ภาพ FLUX ที่รวดเร็ว |
|
||
| | สมอง | จ่ายตามการใช้งาน | ไม่มี | ความเร็วระดับเวเฟอร์ |
|
||
| | เชื่อมโยง | จ่ายตามการใช้งาน | ไม่มี | คำสั่ง R+ RAG |
|
||
| | NVIDIA NIM | จ่ายตามการใช้งาน | ไม่มี | โมเดลองค์กร |
|
||
| **💰 ราคาถูก** | GLM-4.7 | $0.6/1M | ทุกวัน 10.00 น. | สำรองงบประมาณ |
|
||
| | MiniMax M2.1 | $0.2/1M | กลิ้ง 5 ชั่วโมง | ตัวเลือกที่ถูกที่สุด |
|
||
| | คิมิ K2 | $9/เดือน คงที่ | 10M โทเค็น/เดือน | ต้นทุนที่คาดการณ์ได้ |
|
||
| **🆓 ฟรี** | ไอโฟลว์ | $0 | ไม่จำกัด | ฟรี 8 รุ่น |
|
||
| | ควีน | $0 | ไม่จำกัด | ฟรี 3 รุ่น |
|
||
| | คิโระ | $0 | ไม่จำกัด | คลอดด์ฟรี |
|
||
|
||
**💡 เคล็ดลับสำหรับมืออาชีพ:** เริ่มต้นด้วย Gemini CLI (ฟรี 180,000 ต่อเดือน) + iFlow (ฟรีไม่จำกัด) คอมโบ = ค่าใช้จ่าย $0!
|
||
|
||
---
|
||
|
||
## 🎯 กรณีการใช้งาน
|
||
|
||
### กรณีที่ 1: "ฉันสมัครสมาชิก Claude Pro"
|
||
|
||
**ปัญหา:** โควต้าหมดอายุโดยไม่ได้ใช้ อัตราจำกัดระหว่างการเขียนโค้ดจำนวนมาก
|
||
|
||
```
|
||
Combo: "maximize-claude"
|
||
1. cc/claude-opus-4-6 (use subscription fully)
|
||
2. glm/glm-4.7 (cheap backup when quota out)
|
||
3. if/kimi-k2-thinking (free emergency fallback)
|
||
|
||
Monthly cost: $20 (subscription) + ~$5 (backup) = $25 total
|
||
vs. $20 + hitting limits = frustration
|
||
```
|
||
|
||
### กรณีที่ 2: "ฉันต้องการต้นทุนเป็นศูนย์"
|
||
|
||
**ปัญหา:** ไม่สามารถสมัครสมาชิกได้ ต้องการการเข้ารหัส AI ที่เชื่อถือได้
|
||
|
||
```
|
||
Combo: "free-forever"
|
||
1. gc/gemini-3-flash (180K free/month)
|
||
2. if/kimi-k2-thinking (unlimited free)
|
||
3. qw/qwen3-coder-plus (unlimited free)
|
||
|
||
Monthly cost: $0
|
||
Quality: Production-ready models
|
||
```
|
||
|
||
### กรณีที่ 3: "ฉันต้องการการเข้ารหัสตลอด 24 ชั่วโมงทุกวัน ไม่มีการหยุดชะงัก"
|
||
|
||
**ปัญหา:** กำหนดเวลา ไม่สามารถหยุดการทำงานได้
|
||
|
||
```
|
||
Combo: "always-on"
|
||
1. cc/claude-opus-4-6 (best quality)
|
||
2. cx/gpt-5.2-codex (second subscription)
|
||
3. glm/glm-4.7 (cheap, resets daily)
|
||
4. minimax/MiniMax-M2.1 (cheapest, 5h reset)
|
||
5. if/kimi-k2-thinking (free unlimited)
|
||
|
||
Result: 5 layers of fallback = zero downtime
|
||
Monthly cost: $20-200 (subscriptions) + $10-20 (backup)
|
||
```
|
||
|
||
### กรณีที่ 4: "ฉันต้องการ AI ฟรีใน OpenClaw"
|
||
|
||
**ปัญหา:** ต้องการผู้ช่วย AI ในแอปส่งข้อความ ไม่มีค่าใช้จ่ายใดๆ ทั้งสิ้น
|
||
|
||
```
|
||
Combo: "openclaw-free"
|
||
1. if/glm-4.7 (unlimited free)
|
||
2. if/minimax-m2.1 (unlimited free)
|
||
3. if/kimi-k2-thinking (unlimited free)
|
||
|
||
Monthly cost: $0
|
||
Access via: WhatsApp, Telegram, Slack, Discord, iMessage, Signal...
|
||
```
|
||
|
||
---
|
||
|
||
## 📖 การตั้งค่าผู้ให้บริการ
|
||
|
||
### 🔐 ผู้ให้บริการสมัครสมาชิก
|
||
|
||
#### รหัสคลอด (Pro/Max)
|
||
|
||
```bash
|
||
Dashboard → Providers → Connect Claude Code
|
||
→ OAuth login → Auto token refresh
|
||
→ 5-hour + weekly quota tracking
|
||
|
||
Models:
|
||
cc/claude-opus-4-6
|
||
cc/claude-sonnet-4-5-20250929
|
||
cc/claude-haiku-4-5-20251001
|
||
```
|
||
|
||
**เคล็ดลับสำหรับมือโปร:** ใช้ Opus สำหรับงานที่ซับซ้อน และใช้ Sonnet เพื่อความรวดเร็ว โควต้าการติดตาม OmniRoute ต่อรุ่น!
|
||
|
||
#### OpenAI Codex (พลัส/โปร)
|
||
|
||
```bash
|
||
Dashboard → Providers → Connect Codex
|
||
→ OAuth login (port 1455)
|
||
→ 5-hour + weekly reset
|
||
|
||
Models:
|
||
cx/gpt-5.2-codex
|
||
cx/gpt-5.1-codex-max
|
||
```
|
||
|
||
#### Gemini CLI (ฟรี 180K/เดือน!)
|
||
|
||
```bash
|
||
Dashboard → Providers → Connect Gemini CLI
|
||
→ Google OAuth
|
||
→ 180K completions/month + 1K/day
|
||
|
||
Models:
|
||
gc/gemini-3-flash-preview
|
||
gc/gemini-2.5-pro
|
||
```
|
||
|
||
**คุ้มค่าที่สุด:** ระดับฟรีมหาศาล! ใช้สิ่งนี้ก่อนระดับที่ชำระเงิน
|
||
|
||
#### นักบิน GitHub
|
||
|
||
```bash
|
||
Dashboard → Providers → Connect GitHub
|
||
→ OAuth via GitHub
|
||
→ Monthly reset (1st of month)
|
||
|
||
Models:
|
||
gh/gpt-5
|
||
gh/claude-4.5-sonnet
|
||
gh/gemini-3-pro
|
||
```
|
||
|
||
### 💰 ผู้ให้บริการราคาถูก
|
||
|
||
#### GLM-4.7 (รีเซ็ตรายวัน, $0.6/1M)
|
||
|
||
1. ลงทะเบียน: [Zhipu AI](https://open.bigmodel.cn/)
|
||
2. รับคีย์ API จาก Coding Plan
|
||
3. แดชบอร์ด → เพิ่มคีย์ API: ผู้ให้บริการ: `glm`, คีย์ API: `your-key`
|
||
|
||
**ใช้:** `glm/glm-4.7` — **เคล็ดลับสำหรับมืออาชีพ:** แผนการเขียนโค้ดเสนอโควต้า 3× ในราคา 1/7! รีเซ็ตทุกวัน 10.00 น.
|
||
|
||
#### MiniMax M2.1 (รีเซ็ต 5 ชม., $0.20/1M)
|
||
|
||
1. ลงทะเบียน: [MiniMax](https://www.minimax.io/)
|
||
2. รับคีย์ API → แดชบอร์ด → เพิ่มคีย์ API
|
||
|
||
**ใช้:** `minimax/MiniMax-M2.1` — **เคล็ดลับสำหรับมือโปร:** ตัวเลือกที่ถูกที่สุดสำหรับบริบทแบบยาว (โทเค็น 1M)!
|
||
|
||
#### Kimi K2 ($9/เดือน)
|
||
|
||
1. สมัครสมาชิก: [Moonshot AI](https://platform.moonshot.ai/)
|
||
2. รับคีย์ API → แดชบอร์ด → เพิ่มคีย์ API
|
||
|
||
**ใช้:** `kimi/kimi-latest` — **เคล็ดลับสำหรับมืออาชีพ:** แก้ไข $9/เดือนสำหรับโทเค็น 10M = $0.90/ต้นทุนจริง 1M!
|
||
|
||
### 🆓 ผู้ให้บริการฟรี
|
||
|
||
#### iFlow (ฟรี 8 รุ่น)
|
||
|
||
```bash
|
||
Dashboard → Connect iFlow → OAuth login → Unlimited usage
|
||
|
||
Models: if/kimi-k2-thinking, if/qwen3-coder-plus, if/glm-4.7, if/minimax-m2, if/deepseek-r1
|
||
```
|
||
|
||
#### Qwen (ฟรี 3 รุ่น)
|
||
|
||
```bash
|
||
Dashboard → Connect Qwen → Device code auth → Unlimited usage
|
||
|
||
Models: qw/qwen3-coder-plus, qw/qwen3-coder-flash
|
||
```
|
||
|
||
#### คิโระ (โคลด ฟรี)
|
||
|
||
```bash
|
||
Dashboard → Connect Kiro → AWS Builder ID or Google/GitHub → Unlimited
|
||
|
||
Models: kr/claude-sonnet-4.5, kr/claude-haiku-4.5
|
||
```
|
||
|
||
---
|
||
|
||
## 🎨 คอมโบ
|
||
|
||
### ตัวอย่างที่ 1: เพิ่มการสมัครสมาชิกให้สูงสุด → การสำรองข้อมูลราคาถูก
|
||
|
||
```
|
||
Dashboard → Combos → Create New
|
||
|
||
Name: premium-coding
|
||
Models:
|
||
1. cc/claude-opus-4-6 (Subscription primary)
|
||
2. glm/glm-4.7 (Cheap backup, $0.6/1M)
|
||
3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M)
|
||
|
||
Use in CLI: premium-coding
|
||
```
|
||
|
||
### ตัวอย่างที่ 2: ฟรีเท่านั้น (ไม่มีค่าใช้จ่าย)
|
||
|
||
```
|
||
Name: free-combo
|
||
Models:
|
||
1. gc/gemini-3-flash-preview (180K free/month)
|
||
2. if/kimi-k2-thinking (unlimited)
|
||
3. qw/qwen3-coder-plus (unlimited)
|
||
|
||
Cost: $0 forever!
|
||
```
|
||
|
||
---
|
||
|
||
## สมบูรณ์ บูรณาการ CLI
|
||
|
||
### เคอร์เซอร์ IDE
|
||
|
||
```
|
||
Settings → Models → Advanced:
|
||
OpenAI API Base URL: http://localhost:20128/v1
|
||
OpenAI API Key: [from omniroute dashboard]
|
||
Model: cc/claude-opus-4-6
|
||
```
|
||
|
||
### รหัสคลอด
|
||
|
||
แก้ไข `~/.claude/config.json`:
|
||
|
||
```json
|
||
{
|
||
"anthropic_api_base": "http://localhost:20128/v1",
|
||
"anthropic_api_key": "your-omniroute-api-key"
|
||
}
|
||
```
|
||
|
||
### Codex CLI
|
||
|
||
```bash
|
||
export OPENAI_BASE_URL="http://localhost:20128"
|
||
export OPENAI_API_KEY="your-omniroute-api-key"
|
||
codex "your prompt"
|
||
```
|
||
|
||
### โอเพ่นคลอว์
|
||
|
||
แก้ไข `~/.openclaw/openclaw.json`:
|
||
|
||
```json
|
||
{
|
||
"agents": {
|
||
"defaults": {
|
||
"model": { "primary": "omniroute/if/glm-4.7" }
|
||
}
|
||
},
|
||
"models": {
|
||
"providers": {
|
||
"omniroute": {
|
||
"baseUrl": "http://localhost:20128/v1",
|
||
"apiKey": "your-omniroute-api-key",
|
||
"api": "openai-completions",
|
||
"models": [{ "id": "if/glm-4.7", "name": "glm-4.7" }]
|
||
}
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
**หรือใช้แดชบอร์ด:** เครื่องมือ CLI → OpenClaw → กำหนดค่าอัตโนมัติ
|
||
|
||
### ไคลน์ / ดำเนินการต่อ / RooCode
|
||
|
||
```
|
||
Provider: OpenAI Compatible
|
||
Base URL: http://localhost:20128/v1
|
||
API Key: [from dashboard]
|
||
Model: cc/claude-opus-4-6
|
||
```
|
||
|
||
---
|
||
|
||
## 🚀 การปรับใช้
|
||
|
||
### การปรับใช้ VPS
|
||
|
||
```bash
|
||
git clone https://github.com/diegosouzapw/OmniRoute.git
|
||
cd OmniRoute && npm install && npm run build
|
||
|
||
export JWT_SECRET="your-secure-secret-change-this"
|
||
export INITIAL_PASSWORD="your-password"
|
||
export DATA_DIR="/var/lib/omniroute"
|
||
export PORT="20128"
|
||
export HOSTNAME="0.0.0.0"
|
||
export NODE_ENV="production"
|
||
export NEXT_PUBLIC_BASE_URL="http://localhost:20128"
|
||
export API_KEY_SECRET="endpoint-proxy-api-key-secret"
|
||
|
||
npm run start
|
||
# Or: pm2 start npm --name omniroute -- start
|
||
```
|
||
|
||
### นักเทียบท่า
|
||
|
||
```bash
|
||
# Build image (default = runner-cli with codex/claude/droid preinstalled)
|
||
docker build -t omniroute:cli .
|
||
|
||
# Portable mode (recommended)
|
||
docker run -d --name omniroute -p 20128:20128 --env-file ./.env -v omniroute-data:/app/data omniroute:cli
|
||
```
|
||
|
||
สำหรับโหมดรวมโฮสต์ที่มีไบนารี CLI โปรดดูส่วนนักเทียบท่าในเอกสารหลัก
|
||
|
||
### ตัวแปรสภาพแวดล้อม
|
||
|
||
| ตัวแปร | ค่าเริ่มต้น | คำอธิบาย |
|
||
| --------------------- | ------------------------------------ | ------------------------------------------------------------------- |
|
||
| `JWT_SECRET` | `omniroute-default-secret-change-me` | เคล็ดลับการลงนาม JWT (**การเปลี่ยนแปลงในการผลิต**) |
|
||
| `INITIAL_PASSWORD` | `123456` | รหัสผ่านเข้าสู่ระบบครั้งแรก |
|
||
| `DATA_DIR` | `~/.omniroute` | ไดเร็กทอรีข้อมูล (db, การใช้งาน, บันทึก) |
|
||
| `PORT` | ค่าเริ่มต้นของเฟรมเวิร์ก | พอร์ตบริการ (`20128` ในตัวอย่าง) |
|
||
| `HOSTNAME` | ค่าเริ่มต้นของเฟรมเวิร์ก | ผูกโฮสต์ (ค่าเริ่มต้นของ Docker คือ `0.0.0.0`) |
|
||
| `NODE_ENV` | รันไทม์เริ่มต้น | ตั้งค่า `production` สำหรับการปรับใช้ |
|
||
| `BASE_URL` | `http://localhost:20128` | URL ฐานภายในฝั่งเซิร์ฟเวอร์ |
|
||
| `CLOUD_URL` | `https://omniroute.dev` | URL ฐานปลายทางการซิงค์บนคลาวด์ |
|
||
| `API_KEY_SECRET` | `endpoint-proxy-api-key-secret` | ข้อมูลลับ HMAC สำหรับคีย์ API ที่สร้างขึ้น |
|
||
| `REQUIRE_API_KEY` | `false` | บังคับใช้คีย์ Bearer API บน `/v1/*` |
|
||
| `ENABLE_REQUEST_LOGS` | `false` | เปิดใช้งานบันทึกคำขอ/การตอบกลับ |
|
||
| `AUTH_COOKIE_SECURE` | `false` | บังคับ `Secure` คุกกี้รับรองความถูกต้อง (หลังพร็อกซีย้อนกลับ HTTPS) |
|
||
|
||
สำหรับการอ้างอิงตัวแปรสภาพแวดล้อมแบบเต็ม โปรดดูที่ [README](../README.md)
|
||
|
||
---
|
||
|
||
## 📊 รุ่นที่มีจำหน่าย
|
||
|
||
<details>
|
||
<summary><b>ดูรุ่นที่มีทั้งหมด</b></summary>
|
||
**รหัสโคลด (`cc/`)** — โปร/สูงสุด: `cc/claude-opus-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
|
||
|
||
**โคเด็กซ์ (`cx/`)** — บวก/โปร: `cx/gpt-5.2-codex`, `cx/gpt-5.1-codex-max`
|
||
|
||
**ราศีเมถุน CLI (`gc/`)** — ฟรี: `gc/gemini-3-flash-preview`, `gc/gemini-2.5-pro`
|
||
|
||
**โปรแกรมควบคุม GitHub (`gh/`)**: `gh/gpt-5`, `gh/claude-4.5-sonnet`
|
||
|
||
**GLM (`glm/`)** — $0.6/1M: `glm/glm-4.7`
|
||
|
||
**MiniMax (`minimax/`)** — $0.2/1M: `minimax/MiniMax-M2.1`
|
||
|
||
**iFlow (`if/`)** — ฟรี: `if/kimi-k2-thinking`, `if/qwen3-coder-plus`, `if/deepseek-r1`
|
||
|
||
**คิวเวน (`qw/`)** — ฟรี: `qw/qwen3-coder-plus`, `qw/qwen3-coder-flash`
|
||
|
||
**คิโระ (`kr/`)** — ฟรี: `kr/claude-sonnet-4.5`, `kr/claude-haiku-4.5`
|
||
|
||
**ดีพซีค (`ds/`)**: `ds/deepseek-chat`, `ds/deepseek-reasoner`
|
||
|
||
**โกรก (`groq/`)**: `groq/llama-3.3-70b-versatile`, `groq/llama-4-maverick-17b-128e-instruct`
|
||
|
||
**xAI (`xai/`)**: `xai/grok-4`, `xai/grok-4-0709-fast-reasoning`, `xai/grok-code-mini`
|
||
|
||
**มิสทรัล (`mistral/`)**: `mistral/mistral-large-2501`, `mistral/codestral-2501`
|
||
|
||
**ความสับสน (`pplx/`)**: `pplx/sonar-pro`, `pplx/sonar`
|
||
|
||
** AI ร่วมกัน (`together/`)**: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo`
|
||
|
||
**ดอกไม้ไฟ AI (`fireworks/`)**: `fireworks/accounts/fireworks/models/deepseek-v3p1`
|
||
|
||
**เซรีบร้า (`cerebras/`)**: `cerebras/llama-3.3-70b`
|
||
|
||
**เชื่อมโยงกัน (`cohere/`)**: `cohere/command-r-plus-08-2024`
|
||
|
||
**NVIDIA NIM (`nvidia/`)**: `nvidia/nvidia/llama-3.3-70b-instruct`
|
||
|
||
</details>
|
||
|
||
---
|
||
|
||
## 🧩 คุณสมบัติขั้นสูง
|
||
|
||
### โมเดลที่กำหนดเอง
|
||
|
||
เพิ่ม ID รุ่นใดๆ ให้กับผู้ให้บริการโดยไม่ต้องรอการอัปเดตแอป:
|
||
|
||
```bash
|
||
# Via API
|
||
curl -X POST http://localhost:20128/api/provider-models \
|
||
-H "Content-Type: application/json" \
|
||
-d '{"provider": "openai", "modelId": "gpt-4.5-preview", "modelName": "GPT-4.5 Preview"}'
|
||
|
||
# List: curl http://localhost:20128/api/provider-models?provider=openai
|
||
# Remove: curl -X DELETE "http://localhost:20128/api/provider-models?provider=openai&model=gpt-4.5-preview"
|
||
```
|
||
|
||
หรือใช้แดชบอร์ด: **ผู้ให้บริการ → [ผู้ให้บริการ] → โมเดลที่กำหนดเอง**
|
||
|
||
### เส้นทางของผู้ให้บริการเฉพาะ
|
||
|
||
กำหนดเส้นทางคำขอโดยตรงไปยังผู้ให้บริการเฉพาะด้วยการตรวจสอบโมเดล:
|
||
|
||
```bash
|
||
POST http://localhost:20128/v1/providers/openai/chat/completions
|
||
POST http://localhost:20128/v1/providers/openai/embeddings
|
||
POST http://localhost:20128/v1/providers/fireworks/images/generations
|
||
```
|
||
|
||
คำนำหน้าผู้ให้บริการจะถูกเพิ่มอัตโนมัติหากไม่มี โมเดลที่ไม่ตรงกันส่งคืน `400`
|
||
|
||
### การกำหนดค่าพร็อกซีเครือข่าย
|
||
|
||
```bash
|
||
# Set global proxy
|
||
curl -X PUT http://localhost:20128/api/settings/proxy \
|
||
-d '{"global": {"type":"http","host":"proxy.example.com","port":"8080"}}'
|
||
|
||
# Per-provider proxy
|
||
curl -X PUT http://localhost:20128/api/settings/proxy \
|
||
-d '{"providers": {"openai": {"type":"socks5","host":"proxy.example.com","port":"1080"}}}'
|
||
|
||
# Test proxy
|
||
curl -X POST http://localhost:20128/api/settings/proxy/test \
|
||
-d '{"proxy":{"type":"socks5","host":"proxy.example.com","port":"1080"}}'
|
||
```
|
||
|
||
**ลำดับความสำคัญ:** เฉพาะคีย์ → เฉพาะคอมโบ → เฉพาะผู้ให้บริการ → ทั่วโลก → สภาพแวดล้อม
|
||
|
||
### โมเดลแคตตาล็อก API
|
||
|
||
```bash
|
||
curl http://localhost:20128/api/models/catalog
|
||
```
|
||
|
||
ส่งคืนโมเดลที่จัดกลุ่มตามผู้ให้บริการที่มีประเภท (`chat`, `embedding`, `image`)
|
||
|
||
### คลาวด์ซิงค์
|
||
|
||
- ซิงค์ผู้ให้บริการ คอมโบ และการตั้งค่าระหว่างอุปกรณ์ต่างๆ
|
||
- การซิงค์พื้นหลังอัตโนมัติพร้อมการหมดเวลา + ล้มเหลวอย่างรวดเร็ว
|
||
- ต้องการ `BASE_URL`/`CLOUD_URL` ฝั่งเซิร์ฟเวอร์ในการใช้งานจริง
|
||
|
||
### LLM Gateway Intelligence (ระยะที่ 9)
|
||
|
||
- **Semantic Cache** — แคชอัตโนมัติไม่สตรีม อุณหภูมิ=0 การตอบสนอง (บายพาสด้วย `X-OmniRoute-No-Cache: true`)
|
||
- **คำขอ Idempotency** — กรองคำขอที่ซ้ำกันภายใน 5 วินาทีผ่านส่วนหัว `Idempotency-Key` หรือ `X-Request-Id`
|
||
- **การติดตามความคืบหน้า** — เลือกใช้กิจกรรม SSE `event: progress` ผ่านส่วนหัว `X-OmniRoute-Progress: true`
|
||
|
||
---
|
||
|
||
### สนามเด็กเล่นนักแปล
|
||
|
||
เข้าถึงได้ผ่าน **Dashboard → Translator** แก้ไขข้อบกพร่องและเห็นภาพว่า OmniRoute แปลคำขอ API ระหว่างผู้ให้บริการอย่างไร
|
||
|
||
| โหมด | วัตถุประสงค์ |
|
||
| ---------------------- | ---------------------------------------------------------------------------------- |
|
||
| **สนามเด็กเล่น** | เลือกรูปแบบต้นทาง/เป้าหมาย วางคำขอ และดูผลลัพธ์ที่แปลได้ทันที |
|
||
| **เครื่องมือทดสอบแชท** | ส่งข้อความแชทสดผ่านพร็อกซีและตรวจสอบรอบคำขอ/การตอบกลับทั้งหมด |
|
||
| **ม้านั่งทดสอบ** | เรียกใช้การทดสอบเป็นกลุ่มโดยใช้รูปแบบต่างๆ ร่วมกันเพื่อตรวจสอบความถูกต้องของการแปล |
|
||
| **ถ่ายทอดสด** | ดูการแปลแบบเรียลไทม์ตามคำขอที่ไหลผ่านพร็อกซี |
|
||
|
||
**กรณีการใช้งาน:**
|
||
|
||
- ตรวจแก้จุดบกพร่องว่าทำไมการรวมไคลเอนต์/ผู้ให้บริการเฉพาะจึงล้มเหลว
|
||
- ตรวจสอบว่าแท็กการคิด การเรียกใช้เครื่องมือ และการแจ้งเตือนของระบบแปลอย่างถูกต้อง
|
||
- เปรียบเทียบความแตกต่างของรูปแบบระหว่างรูปแบบ OpenAI, Claude, Gemini และ Responses API
|
||
|
||
---
|
||
|
||
### กลยุทธ์การกำหนดเส้นทาง
|
||
|
||
กำหนดค่าผ่าน **แดชบอร์ด → การตั้งค่า → การกำหนดเส้นทาง**
|
||
|
||
| กลยุทธ์ | คำอธิบาย |
|
||
| ------------------------- | ------------------------------------------------------------------------------------------------------------------ |
|
||
| **กรอกก่อน** | ใช้บัญชีตามลำดับความสำคัญ — บัญชีหลักจะจัดการคำขอทั้งหมดจนกว่าจะไม่พร้อมใช้งาน |
|
||
| **โรบินตัวกลม** | วนรอบบัญชีทั้งหมดด้วยขีดจำกัดที่กำหนดได้ (ค่าเริ่มต้น: 3 สายต่อบัญชี) |
|
||
| **P2C (พลังสองตัวเลือก)** | เลือกบัญชีและเส้นทางแบบสุ่ม 2 บัญชีไปยังบัญชีที่ดีต่อสุขภาพมากขึ้น — สร้างสมดุลระหว่างภาระกับการรับรู้เรื่องสุขภาพ |
|
||
| **สุ่ม** | สุ่มเลือกบัญชีสำหรับแต่ละคำขอโดยใช้ Fisher-Yates shuffle |
|
||
| **ใช้น้อยที่สุด** | กำหนดเส้นทางไปยังบัญชีที่มีการประทับเวลา `lastUsedAt` เก่าที่สุด กระจายการรับส่งข้อมูลเท่าๆ กัน |
|
||
| **ปรับต้นทุนให้เหมาะสม** | กำหนดเส้นทางไปยังบัญชีที่มีค่าลำดับความสำคัญต่ำสุด ปรับให้เหมาะสมสำหรับผู้ให้บริการที่มีต้นทุนต่ำที่สุด |
|
||
|
||
#### นามแฝงโมเดลไวด์การ์ด
|
||
|
||
สร้างรูปแบบไวด์การ์ดเพื่อทำการแมปชื่อโมเดลใหม่:
|
||
|
||
```
|
||
Pattern: claude-sonnet-* → Target: cc/claude-sonnet-4-5-20250929
|
||
Pattern: gpt-* → Target: gh/gpt-5.1-codex
|
||
```
|
||
|
||
Wildcard รองรับ `*` (อักขระใดก็ได้) และ `?` (อักขระเดี่ยว)
|
||
|
||
#### โซ่สำรอง
|
||
|
||
กำหนดห่วงโซ่ทางเลือกส่วนกลางที่ใช้กับคำขอทั้งหมด:
|
||
|
||
```
|
||
Chain: production-fallback
|
||
1. cc/claude-opus-4-6
|
||
2. gh/gpt-5.1-codex
|
||
3. glm/glm-4.7
|
||
```
|
||
|
||
---
|
||
|
||
### ความยืดหยุ่นและเซอร์กิตเบรกเกอร์
|
||
|
||
กำหนดค่าผ่าน **แดชบอร์ด → การตั้งค่า → ความยืดหยุ่น**
|
||
|
||
OmniRoute ใช้ความยืดหยุ่นระดับผู้ให้บริการด้วยองค์ประกอบสี่ประการ:
|
||
|
||
1. **โปรไฟล์ผู้ให้บริการ** — การกำหนดค่าต่อผู้ให้บริการสำหรับ:
|
||
- เกณฑ์ความล้มเหลว (จำนวนความล้มเหลวก่อนเปิด)
|
||
- ระยะเวลาคูลดาวน์
|
||
- ความไวในการตรวจจับขีด จำกัด อัตรา
|
||
- พารามิเตอร์แบ็คออฟเอ็กซ์โปเนนเชียล
|
||
|
||
2. **ขีดจำกัดอัตราที่แก้ไขได้** — ค่าเริ่มต้นระดับระบบที่กำหนดค่าได้ในแดชบอร์ด:
|
||
- **คำขอต่อนาที (RPM)** — คำขอสูงสุดต่อนาทีต่อบัญชี
|
||
- **เวลาขั้นต่ำระหว่างคำขอ** — ช่องว่างขั้นต่ำเป็นมิลลิวินาทีระหว่างคำขอ
|
||
- **คำขอพร้อมกันสูงสุด** — คำขอพร้อมกันสูงสุดต่อบัญชี
|
||
- คลิก **แก้ไข** เพื่อแก้ไข จากนั้น **บันทึก** หรือ **ยกเลิก** ค่ายังคงมีอยู่ผ่าน API ความยืดหยุ่น
|
||
|
||
3. **เซอร์กิตเบรกเกอร์** — ติดตามความล้มเหลวของผู้ให้บริการแต่ละราย และเปิดวงจรโดยอัตโนมัติเมื่อถึงเกณฑ์:
|
||
- **ปิด** (สมบูรณ์) — คำขอดำเนินไปตามปกติ
|
||
- **เปิด** — ผู้ให้บริการถูกบล็อกชั่วคราวหลังจากเกิดข้อผิดพลาดซ้ำแล้วซ้ำอีก
|
||
- **HALF_OPEN** — ทดสอบว่าผู้ให้บริการฟื้นตัวหรือไม่
|
||
|
||
4. **นโยบายและตัวระบุที่ถูกล็อค** — แสดงสถานะเซอร์กิตเบรกเกอร์และตัวระบุที่ถูกล็อคพร้อมความสามารถในการบังคับปลดล็อค
|
||
|
||
5. **การตรวจจับขีดจำกัดอัตราอัตโนมัติ** — ตรวจสอบส่วนหัว `429` และ `Retry-After` เพื่อหลีกเลี่ยงไม่ให้ถึงขีดจำกัดอัตราของผู้ให้บริการในเชิงรุก
|
||
|
||
**เคล็ดลับสำหรับมือโปร:** ใช้ปุ่ม **รีเซ็ตทั้งหมด** เพื่อล้างเซอร์กิตเบรกเกอร์และคูลดาวน์ทั้งหมดเมื่อผู้ให้บริการฟื้นตัวจากการหยุดทำงาน
|
||
|
||
---
|
||
|
||
### ส่งออก / นำเข้าฐานข้อมูล
|
||
|
||
จัดการการสำรองฐานข้อมูลใน **แดชบอร์ด → การตั้งค่า → ระบบและที่เก็บข้อมูล**
|
||
|
||
| การกระทำ | คำอธิบาย |
|
||
| --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||
| **ฐานข้อมูลการส่งออก** | ดาวน์โหลดฐานข้อมูล SQLite ปัจจุบันเป็นไฟล์ `.sqlite` |
|
||
| **ส่งออกทั้งหมด (.tar.gz)** | ดาวน์โหลดไฟล์เก็บถาวรการสำรองข้อมูลแบบเต็ม รวมถึง: ฐานข้อมูล การตั้งค่า คอมโบ การเชื่อมต่อของผู้ให้บริการ (ไม่มีข้อมูลประจำตัว) ข้อมูลเมตาของคีย์ API |
|
||
| **นำเข้าฐานข้อมูล** | อัปโหลดไฟล์ `.sqlite` เพื่อแทนที่ฐานข้อมูลปัจจุบัน การสำรองข้อมูลก่อนนำเข้าจะถูกสร้างขึ้นโดยอัตโนมัติ |
|
||
|
||
```bash
|
||
# API: Export database
|
||
curl -o backup.sqlite http://localhost:20128/api/db-backups/export
|
||
|
||
# API: Export all (full archive)
|
||
curl -o backup.tar.gz http://localhost:20128/api/db-backups/exportAll
|
||
|
||
# API: Import database
|
||
curl -X POST http://localhost:20128/api/db-backups/import \
|
||
-F "file=@backup.sqlite"
|
||
```
|
||
|
||
**การตรวจสอบการนำเข้า:** ไฟล์ที่นำเข้าได้รับการตรวจสอบความถูกต้อง (การตรวจสอบ SQLite Pragma), ตารางที่จำเป็น (`provider_connections`, `provider_nodes`, `combos`, `api_keys`) และขนาด (สูงสุด 100MB)
|
||
|
||
**กรณีการใช้งาน:**
|
||
|
||
- โยกย้าย OmniRoute ระหว่างเครื่อง
|
||
- สร้างการสำรองข้อมูลภายนอกสำหรับการกู้คืนระบบ
|
||
- แบ่งปันการกำหนดค่าระหว่างสมาชิกในทีม (ส่งออกทั้งหมด → แชร์ไฟล์เก็บถาวร)
|
||
|
||
---
|
||
|
||
### แดชบอร์ดการตั้งค่า
|
||
|
||
หน้าการตั้งค่าแบ่งออกเป็น 5 แท็บเพื่อให้ง่ายต่อการนำทาง:
|
||
|
||
| แท็บ | สารบัญ |
|
||
| ------------------- | ------------------------------------------------------------------------------------------------------------------------ |
|
||
| **ความปลอดภัย** | การตั้งค่าการเข้าสู่ระบบ/รหัสผ่าน, การควบคุมการเข้าถึง IP, การตรวจสอบสิทธิ์ API สำหรับ `/models` และการบล็อกผู้ให้บริการ |
|
||
| **การกำหนดเส้นทาง** | กลยุทธ์การกำหนดเส้นทางทั่วโลก (6 ตัวเลือก), นามแฝงโมเดลไวด์การ์ด, เชนทางเลือก, ค่าเริ่มต้นคอมโบ |
|
||
| **ความยืดหยุ่น** | โปรไฟล์ผู้ให้บริการ ขีดจำกัดอัตราที่แก้ไขได้ สถานะเซอร์กิตเบรกเกอร์ นโยบาย และตัวระบุที่ถูกล็อค |
|
||
| **เอไอ** | คิดการกำหนดค่างบประมาณ, การแทรกพร้อมท์ของระบบทั่วโลก, สถิติแคชพร้อมต์ |
|
||
| **ขั้นสูง** | การกำหนดค่าพร็อกซีส่วนกลาง (HTTP/SOCKS5) |
|
||
|
||
---
|
||
|
||
### ต้นทุนและการจัดการงบประมาณ
|
||
|
||
เข้าถึงได้ผ่าน **แดชบอร์ด → ค่าใช้จ่าย**
|
||
|
||
| แท็บ | วัตถุประสงค์ |
|
||
| ------------ | ------------------------------------------------------------------------------------------------- |
|
||
| **งบประมาณ** | กำหนดขีดจำกัดการใช้จ่ายต่อคีย์ API ด้วยงบประมาณรายวัน/รายสัปดาห์/รายเดือนและการติดตามแบบเรียลไทม์ |
|
||
| **ราคา** | ดูและแก้ไขรายการการกำหนดราคาโมเดล — ต้นทุนต่อโทเค็นอินพุต/เอาท์พุต 1K ต่อผู้ให้บริการ |
|
||
|
||
```bash
|
||
# API: Set a budget
|
||
curl -X POST http://localhost:20128/api/usage/budget \
|
||
-H "Content-Type: application/json" \
|
||
-d '{"keyId": "key-123", "limit": 50.00, "period": "monthly"}'
|
||
|
||
# API: Get current budget status
|
||
curl http://localhost:20128/api/usage/budget
|
||
```
|
||
|
||
**การติดตามต้นทุน:** ทุกคำขอจะบันทึกการใช้โทเค็นและคำนวณต้นทุนโดยใช้ตารางราคา ดูรายละเอียดใน **แดชบอร์ด → การใช้งาน** ตามผู้ให้บริการ รุ่น และคีย์ API
|
||
|
||
---
|
||
|
||
### การถอดเสียง
|
||
|
||
OmniRoute รองรับการถอดเสียงผ่านปลายทางที่เข้ากันได้กับ OpenAI:
|
||
|
||
```bash
|
||
POST /v1/audio/transcriptions
|
||
Authorization: Bearer your-api-key
|
||
Content-Type: multipart/form-data
|
||
|
||
# Example with curl
|
||
curl -X POST http://localhost:20128/v1/audio/transcriptions \
|
||
-H "Authorization: Bearer your-api-key" \
|
||
-F "file=@audio.mp3" \
|
||
-F "model=deepgram/nova-3"
|
||
```
|
||
|
||
ผู้ให้บริการที่มีอยู่: **Deepgram** (`deepgram/`), **AssemblyAI** (`assemblyai/`)
|
||
|
||
รูปแบบเสียงที่รองรับ: `mp3`, `wav`, `m4a`, `flac`, `ogg`, `webm`
|
||
|
||
---
|
||
|
||
### กลยุทธ์การปรับสมดุลคอมโบ
|
||
|
||
กำหนดค่าการปรับสมดุลต่อคอมโบใน **แดชบอร์ด → คอมโบ → สร้าง/แก้ไข → กลยุทธ์**
|
||
|
||
| กลยุทธ์ | คำอธิบาย |
|
||
| ----------------------------- | -------------------------------------------------------------- |
|
||
| **โรบินตัวกลม** | หมุนเวียนไปตามโมเดลต่างๆ ตามลำดับ |
|
||
| **ลำดับความสำคัญ** | ลองใช้โมเดลแรกเสมอ ถอยกลับเฉพาะข้อผิดพลาด |
|
||
| **สุ่ม** | เลือกโมเดลแบบสุ่มจากคอมโบสำหรับแต่ละคำขอ |
|
||
| **ถ่วงน้ำหนัก** | เส้นทางตามสัดส่วนตามน้ำหนักที่กำหนดต่อรุ่น |
|
||
| **ใช้งานน้อยที่สุด** | กำหนดเส้นทางไปยังโมเดลที่มีคำขอล่าสุดน้อยที่สุด (ใช้เมตริกผสม) |
|
||
| **การเพิ่มประสิทธิภาพต้นทุน** | เส้นทางไปยังรุ่นที่ถูกที่สุด (ใช้ตารางราคา) |
|
||
|
||
ค่าเริ่มต้นคอมโบสากลสามารถตั้งค่าได้ใน **แดชบอร์ด → การตั้งค่า → การกำหนดเส้นทาง → ค่าเริ่มต้นคอมโบ**
|
||
|
||
---
|
||
|
||
### แดชบอร์ดสุขภาพ
|
||
|
||
เข้าถึงได้ทาง **Dashboard → Health** ภาพรวมความสมบูรณ์ของระบบเรียลไทม์พร้อมการ์ด 6 ใบ:
|
||
|
||
| บัตร | มันแสดงอะไร |
|
||
| ----------------------------- | ---------------------------------------------------------------- |
|
||
| **สถานะระบบ** | สถานะการออนไลน์ เวอร์ชัน การใช้หน่วยความจำ ไดเร็กทอรีข้อมูล |
|
||
| **สุขภาพของผู้ให้บริการ** | สถานะเซอร์กิตเบรกเกอร์ต่อผู้ให้บริการ (ปิด/เปิด/เปิดครึ่ง) |
|
||
| **จำกัดอัตรา** | คูลดาวน์จำกัดอัตราที่ใช้งานอยู่ต่อบัญชีพร้อมเวลาที่เหลืออยู่ |
|
||
| **การล็อกที่ใช้งานอยู่** | ผู้ให้บริการถูกบล็อกชั่วคราวโดยนโยบายการล็อค |
|
||
| **แคชลายเซ็น** | สถิติแคชการขจัดข้อมูลซ้ำซ้อน (คีย์ที่ใช้งานอยู่ อัตราการเข้าถึง) |
|
||
| **การวัดระยะไกลแบบหน่วงเวลา** | การรวมเวลาแฝง p50/p95/p99 ต่อผู้ให้บริการ |
|
||
|
||
**เคล็ดลับสำหรับมือโปร:** หน้าสุขภาพจะรีเฟรชอัตโนมัติทุกๆ 10 วินาที ใช้การ์ดเซอร์กิตเบรกเกอร์เพื่อระบุว่าผู้ให้บริการรายใดกำลังประสบปัญหา
|