Merge remote-tracking branch 'origin/master' into gitea/feature/end
Resolved conflicts taking origin/master (v0.5.55) as canonical, with local features re-applied: - runtime log level (LOG_LEVEL env + dashboard Settings → Logging, applied immediately and persisted across restarts) - free/noAuth provider enable/disable toggle via providerStrategies.enabled - parallel model testing (Test All Models / Test Selected Keys)
This commit is contained in:
1445
i18n/README.es.md
Normal file
1445
i18n/README.es.md
Normal file
File diff suppressed because it is too large
Load Diff
1442
i18n/README.fa_IR.md
Normal file
1442
i18n/README.fa_IR.md
Normal file
File diff suppressed because it is too large
Load Diff
1445
i18n/README.fr.md
Normal file
1445
i18n/README.fr.md
Normal file
File diff suppressed because it is too large
Load Diff
951
i18n/README.id-ID.md
Normal file
951
i18n/README.id-ID.md
Normal file
@@ -0,0 +1,951 @@
|
||||
<div align="center">
|
||||
<img src="../images/9router.png?1" alt="9Router Dashboard" width="800"/>
|
||||
|
||||
# 9Router - Router AI Gratis
|
||||
|
||||
**Jangan berhenti ngoding. Otomatis dialihkan ke model AI gratis & murah dengan smart fallback.**
|
||||
|
||||
**Hubungkan semua tool AI coding (Claude Code, Cursor, Antigravity, Copilot, Codex, Gemini, OpenCode, Cline, OpenClaw...) ke 40+ provider AI dan 100+ model.**
|
||||
|
||||
[](https://www.npmjs.com/package/9router)
|
||||
[](https://www.npmjs.com/package/9router)
|
||||
[](https://github.com/decolua/9router/blob/main/LICENSE)
|
||||
|
||||
[🚀 Mulai Cepat](#-mulai-cepat) • [💡 Fitur](#-fitur-utama) • [📖 Setup](#-panduan-setup) • [🌐 Website](https://9router.com)
|
||||
|
||||
[🇻🇳 Tiếng Việt](./README.vi.md) • [🇨🇳 中文](./README.zh-CN.md) • [🇯🇵 日本語](./README.ja-JP.md) • [🇮🇩 Bahasa Indonesia](./README.id-ID.md)
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
## 🤔 Kenapa 9Router?
|
||||
|
||||
**Berhenti buang-buang uang dan terhambat limit:**
|
||||
|
||||
- ❌ Kuota langganan hangus tiap bulan tanpa terpakai
|
||||
- ❌ Rate limit bikin ngoding berhenti di tengah jalan
|
||||
- ❌ API mahal ($20–50/bulan per provider)
|
||||
- ❌ Harus gonta-ganti provider secara manual
|
||||
|
||||
**9Router menyelesaikan itu semua:**
|
||||
|
||||
- ✅ **Maksimalkan langganan** - lacak kuota dan habiskan sebelum reset
|
||||
- ✅ **Fallback otomatis** - langganan → murah → gratis, tanpa downtime
|
||||
- ✅ **Multi-akun** - round-robin antar akun untuk tiap provider
|
||||
- ✅ **Universal** - mendukung Claude Code, Codex, Gemini CLI, Cursor, Cline, dan tool CLI apa pun
|
||||
|
||||
---
|
||||
|
||||
## 🔄 Cara Kerja
|
||||
|
||||
```
|
||||
┌─────────────┐
|
||||
│ Tool CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...)
|
||||
│ kamu │
|
||||
└──────┬──────┘
|
||||
│ http://localhost:20128/v1
|
||||
↓
|
||||
┌─────────────────────────────────────────┐
|
||||
│ 9Router (Smart Router) │
|
||||
│ • Konversi format (OpenAI ↔ Claude) │
|
||||
│ • Pelacakan kuota │
|
||||
│ • Refresh token otomatis │
|
||||
└──────┬──────────────────────────────────┘
|
||||
│
|
||||
├─→ [Tier 1: Langganan] Claude Code, Codex, Gemini CLI
|
||||
│ ↓ kuota habis
|
||||
├─→ [Tier 2: Murah] GLM ($0.6/1M), MiniMax ($0.2/1M)
|
||||
│ ↓ batas budget tercapai
|
||||
└─→ [Tier 3: Gratis] iFlow, Qwen, Kiro (unlimited)
|
||||
|
||||
Hasil: ngoding tanpa berhenti, biaya minimum
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ⚡ Mulai Cepat
|
||||
|
||||
**1. Install secara global:**
|
||||
|
||||
```bash
|
||||
npm install -g 9router
|
||||
9router
|
||||
```
|
||||
|
||||
🎉 Dashboard terbuka di `http://localhost:20128`
|
||||
|
||||
**2. Hubungkan provider gratis (tanpa perlu daftar):**
|
||||
|
||||
Dashboard → Providers → hubungkan **Claude Code** atau **Antigravity** → login OAuth → selesai!
|
||||
|
||||
**3. Pakai di tool CLI kamu:**
|
||||
|
||||
```
|
||||
Konfigurasi Claude Code/Codex/Gemini CLI/OpenClaw/Cursor/Cline:
|
||||
Endpoint: http://localhost:20128/v1
|
||||
API Key: [salin dari dashboard]
|
||||
Model: if/kimi-k2-thinking
|
||||
```
|
||||
|
||||
**Cuma itu!** Mulai ngoding dengan model AI gratis.
|
||||
|
||||
**Alternatif: jalankan dari source (repo ini):**
|
||||
|
||||
Paket repo ini bersifat privat (`9router-app`), jadi menjalankan dari source/Docker adalah jalur yang diharapkan untuk pengembangan lokal.
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
npm install
|
||||
PORT=20128 NEXT_PUBLIC_BASE_URL=http://localhost:20128 npm run dev
|
||||
```
|
||||
|
||||
Mode produksi:
|
||||
|
||||
```bash
|
||||
npm run build
|
||||
PORT=20128 HOSTNAME=0.0.0.0 NEXT_PUBLIC_BASE_URL=http://localhost:20128 npm run start
|
||||
```
|
||||
|
||||
URL default:
|
||||
- Dashboard: `http://localhost:20128/dashboard`
|
||||
- API kompatibel OpenAI: `http://localhost:20128/v1`
|
||||
|
||||
---
|
||||
|
||||
## 🎥 Video Tutorial
|
||||
|
||||
<div align="center">
|
||||
|
||||
### 📺 Panduan Setup Lengkap - 9Router + Claude Code Gratis
|
||||
|
||||
[](https://www.youtube.com/watch?v=raEyZPg5xE0)
|
||||
|
||||
**🎬 Tonton tutorial langkah demi langkah:**
|
||||
- ✅ Install dan setup 9Router
|
||||
- ✅ Konfigurasi Claude Sonnet 4.5 gratis
|
||||
- ✅ Integrasi dengan Claude Code
|
||||
- ✅ Demo live coding
|
||||
|
||||
**⏱️ Durasi:** 20 menit | **👥 Dibuat oleh:** Developer Community
|
||||
|
||||
[▶️ Tonton di YouTube](https://www.youtube.com/watch?v=o3qYCyjrFYg)
|
||||
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Tool CLI yang Didukung
|
||||
|
||||
9Router bekerja mulus dengan semua tool AI coding utama:
|
||||
|
||||
<div align="center">
|
||||
<table>
|
||||
<tr>
|
||||
<td align="center" width="120">
|
||||
<img src="../public/providers/claude.png" width="60" alt="Claude Code"/><br/>
|
||||
<b>Claude-Code</b>
|
||||
</td>
|
||||
<td align="center" width="120">
|
||||
<img src="../public/providers/openclaw.png" width="60" alt="OpenClaw"/><br/>
|
||||
<b>OpenClaw</b>
|
||||
</td>
|
||||
<td align="center" width="120">
|
||||
<img src="../public/providers/codex.png" width="60" alt="Codex"/><br/>
|
||||
<b>Codex</b>
|
||||
</td>
|
||||
<td align="center" width="120">
|
||||
<img src="../public/providers/opencode.png" width="60" alt="OpenCode"/><br/>
|
||||
<b>OpenCode</b>
|
||||
</td>
|
||||
<td align="center" width="120">
|
||||
<img src="../public/providers/cursor.png" width="60" alt="Cursor"/><br/>
|
||||
<b>Cursor</b>
|
||||
</td>
|
||||
<td align="center" width="120">
|
||||
<img src="../public/providers/antigravity.png" width="60" alt="Antigravity"/><br/>
|
||||
<b>Antigravity</b>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" width="120">
|
||||
<img src="../public/providers/cline.png" width="60" alt="Cline"/><br/>
|
||||
<b>Cline</b>
|
||||
</td>
|
||||
<td align="center" width="120">
|
||||
<img src="../public/providers/continue.png" width="60" alt="Continue"/><br/>
|
||||
<b>Continue</b>
|
||||
</td>
|
||||
<td align="center" width="120">
|
||||
<img src="../public/providers/droid.png" width="60" alt="Droid"/><br/>
|
||||
<b>Droid</b>
|
||||
</td>
|
||||
<td align="center" width="120">
|
||||
<img src="../public/providers/roo.png" width="60" alt="Roo"/><br/>
|
||||
<b>Roo</b>
|
||||
</td>
|
||||
<td align="center" width="120">
|
||||
<img src="../public/providers/copilot.png" width="60" alt="Copilot"/><br/>
|
||||
<b>Copilot</b>
|
||||
</td>
|
||||
<td align="center" width="120">
|
||||
<img src="../public/providers/kilocode.png" width="60" alt="Kilo Code"/><br/>
|
||||
<b>Kilo Code</b>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
## 🌐 Provider yang Didukung
|
||||
|
||||
### 🔐 Provider OAuth
|
||||
|
||||
<div align="center">
|
||||
<table>
|
||||
<tr>
|
||||
<td align="center" width="120">
|
||||
<img src="../public/providers/claude.png" width="60" alt="Claude Code"/><br/>
|
||||
<b>Claude-Code</b>
|
||||
</td>
|
||||
<td align="center" width="120">
|
||||
<img src="../public/providers/antigravity.png" width="60" alt="Antigravity"/><br/>
|
||||
<b>Antigravity</b>
|
||||
</td>
|
||||
<td align="center" width="120">
|
||||
<img src="../public/providers/codex.png" width="60" alt="Codex"/><br/>
|
||||
<b>Codex</b>
|
||||
</td>
|
||||
<td align="center" width="120">
|
||||
<img src="../public/providers/github.png" width="60" alt="GitHub"/><br/>
|
||||
<b>GitHub</b>
|
||||
</td>
|
||||
<td align="center" width="120">
|
||||
<img src="../public/providers/cursor.png" width="60" alt="Cursor"/><br/>
|
||||
<b>Cursor</b>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
### 🆓 Provider Gratis
|
||||
|
||||
<div align="center">
|
||||
<table>
|
||||
<tr>
|
||||
<td align="center" width="150">
|
||||
<img src="../public/providers/iflow.png" width="70" alt="iFlow"/><br/>
|
||||
<b>iFlow AI</b><br/>
|
||||
<sub>8+ model • unlimited</sub>
|
||||
</td>
|
||||
<td align="center" width="150">
|
||||
<img src="../public/providers/qwen.png" width="70" alt="Qwen"/><br/>
|
||||
<b>Qwen Code</b><br/>
|
||||
<sub>3+ model • unlimited</sub>
|
||||
</td>
|
||||
<td align="center" width="150">
|
||||
<img src="../public/providers/gemini-cli.png" width="70" alt="Gemini CLI"/><br/>
|
||||
<b>Gemini CLI</b><br/>
|
||||
<sub>180 ribu request/bulan gratis</sub>
|
||||
</td>
|
||||
<td align="center" width="150">
|
||||
<img src="../public/providers/kiro.png" width="70" alt="Kiro"/><br/>
|
||||
<b>Kiro AI</b><br/>
|
||||
<sub>Claude • unlimited</sub>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
### 🔑 Provider API Key (40+)
|
||||
|
||||
<div align="center">
|
||||
<table>
|
||||
<tr>
|
||||
<td align="center" width="100">
|
||||
<img src="../public/providers/openrouter.png" width="50" alt="OpenRouter"/><br/>
|
||||
<sub>OpenRouter</sub>
|
||||
</td>
|
||||
<td align="center" width="100">
|
||||
<img src="../public/providers/glm.png" width="50" alt="GLM"/><br/>
|
||||
<sub>GLM</sub>
|
||||
</td>
|
||||
<td align="center" width="100">
|
||||
<img src="../public/providers/kimi.png" width="50" alt="Kimi"/><br/>
|
||||
<sub>Kimi</sub>
|
||||
</td>
|
||||
<td align="center" width="100">
|
||||
<img src="../public/providers/minimax.png" width="50" alt="MiniMax"/><br/>
|
||||
<sub>MiniMax</sub>
|
||||
</td>
|
||||
<td align="center" width="100">
|
||||
<img src="../public/providers/openai.png" width="50" alt="OpenAI"/><br/>
|
||||
<sub>OpenAI</sub>
|
||||
</td>
|
||||
<td align="center" width="100">
|
||||
<img src="../public/providers/anthropic.png" width="50" alt="Anthropic"/><br/>
|
||||
<sub>Anthropic</sub>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" width="100">
|
||||
<img src="../public/providers/gemini.png" width="50" alt="Gemini"/><br/>
|
||||
<sub>Gemini</sub>
|
||||
</td>
|
||||
<td align="center" width="100">
|
||||
<img src="../public/providers/deepseek.png" width="50" alt="DeepSeek"/><br/>
|
||||
<sub>DeepSeek</sub>
|
||||
</td>
|
||||
<td align="center" width="100">
|
||||
<img src="../public/providers/groq.png" width="50" alt="Groq"/><br/>
|
||||
<sub>Groq</sub>
|
||||
</td>
|
||||
<td align="center" width="100">
|
||||
<img src="../public/providers/xai.png" width="50" alt="xAI"/><br/>
|
||||
<sub>xAI</sub>
|
||||
</td>
|
||||
<td align="center" width="100">
|
||||
<img src="../public/providers/mistral.png" width="50" alt="Mistral"/><br/>
|
||||
<sub>Mistral</sub>
|
||||
</td>
|
||||
<td align="center" width="100">
|
||||
<img src="../public/providers/perplexity.png" width="50" alt="Perplexity"/><br/>
|
||||
<sub>Perplexity</sub>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" width="100">
|
||||
<img src="../public/providers/together.png" width="50" alt="Together"/><br/>
|
||||
<sub>Together AI</sub>
|
||||
</td>
|
||||
<td align="center" width="100">
|
||||
<img src="../public/providers/fireworks.png" width="50" alt="Fireworks"/><br/>
|
||||
<sub>Fireworks</sub>
|
||||
</td>
|
||||
<td align="center" width="100">
|
||||
<img src="../public/providers/cerebras.png" width="50" alt="Cerebras"/><br/>
|
||||
<sub>Cerebras</sub>
|
||||
</td>
|
||||
<td align="center" width="100">
|
||||
<img src="../public/providers/cohere.png" width="50" alt="Cohere"/><br/>
|
||||
<sub>Cohere</sub>
|
||||
</td>
|
||||
<td align="center" width="100">
|
||||
<img src="../public/providers/nvidia.png" width="50" alt="NVIDIA"/><br/>
|
||||
<sub>NVIDIA</sub>
|
||||
</td>
|
||||
<td align="center" width="100">
|
||||
<img src="../public/providers/siliconflow.png" width="50" alt="SiliconFlow"/><br/>
|
||||
<sub>SiliconFlow</sub>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p><i>...dan 20+ provider lain seperti Nebius, Chutes, Hyperbolic, serta endpoint custom yang kompatibel dengan OpenAI/Anthropic</i></p>
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
## 💡 Fitur Utama
|
||||
|
||||
| Fitur | Ringkasan | Manfaat |
|
||||
|-------|-----------|---------|
|
||||
| 🎯 **Smart Fallback 3 Tingkat** | Routing otomatis: langganan → murah → gratis | Ngoding tanpa berhenti, zero downtime |
|
||||
| 📊 **Pelacakan Kuota Real-time** | Hitungan token live + hitung mundur reset | Nilai langganan termanfaatkan maksimal |
|
||||
| 🔄 **Konversi Format** | OpenAI ↔ Claude ↔ Gemini mulus | Bekerja dengan tool CLI apa pun |
|
||||
| 👥 **Dukungan Multi-akun** | Beberapa akun per provider | Load balancing + redundansi |
|
||||
| 🔄 **Auto Refresh Token** | Token OAuth diperbarui otomatis | Tidak perlu login ulang manual |
|
||||
| 🎨 **Combo Kustom** | Buat kombinasi model tanpa batas | Fallback sesuai kebutuhanmu |
|
||||
| 📝 **Log Request** | Log lengkap request/response | Troubleshooting jadi mudah |
|
||||
| 💾 **Cloud Sync** | Sinkronkan pengaturan antar perangkat | Setup sama di mana pun |
|
||||
| 📊 **Analitik Penggunaan** | Lacak token, biaya, dan tren | Optimalkan pengeluaran |
|
||||
| 🌐 **Deploy di Mana Saja** | Localhost, VPS, Docker, Cloudflare Workers | Opsi deployment fleksibel |
|
||||
|
||||
<details>
|
||||
<summary><b>📖 Detail Fitur</b></summary>
|
||||
|
||||
### 🎯 Smart Fallback 3 Tingkat
|
||||
|
||||
Buat combo dengan fallback otomatis:
|
||||
|
||||
```
|
||||
Combo: "my-coding-stack"
|
||||
1. cc/claude-opus-4-6 (langganan)
|
||||
2. glm/glm-4.7 (backup murah, $0.6/1M)
|
||||
3. if/kimi-k2-thinking (fallback gratis)
|
||||
|
||||
→ Otomatis beralih saat kuota habis atau terjadi error
|
||||
```
|
||||
|
||||
### 📊 Pelacakan Kuota Real-time
|
||||
|
||||
- Konsumsi token per provider
|
||||
- Hitung mundur reset (5 jam, harian, mingguan)
|
||||
- Estimasi biaya untuk tier berbayar
|
||||
- Laporan pengeluaran bulanan
|
||||
|
||||
### 🔄 Konversi Format
|
||||
|
||||
Konversi mulus antar format:
|
||||
- **OpenAI** ↔ **Claude** ↔ **Gemini** ↔ **OpenAI Responses**
|
||||
- Tool CLI mengirim dalam format OpenAI → 9Router mengonversi → provider menerima dalam format nativenya
|
||||
- Bekerja dengan semua tool yang mendukung custom OpenAI endpoint
|
||||
|
||||
### 👥 Dukungan Multi-akun
|
||||
|
||||
- Tambahkan beberapa akun per provider
|
||||
- Round-robin otomatis atau routing berbasis prioritas
|
||||
- Saat satu akun mencapai kuota, fallback ke akun berikutnya
|
||||
|
||||
### 🔄 Auto Refresh Token
|
||||
|
||||
- Token OAuth di-refresh otomatis sebelum kedaluwarsa
|
||||
- Tidak perlu autentikasi ulang manual
|
||||
- Pengalaman mulus di semua provider
|
||||
|
||||
### 🎨 Combo Kustom
|
||||
|
||||
- Buat kombinasi model tanpa batas
|
||||
- Campur tier langganan, murah, dan gratis
|
||||
- Beri nama combo agar mudah diakses
|
||||
- Bagikan combo antar perangkat lewat cloud sync
|
||||
|
||||
### 📝 Log Request
|
||||
|
||||
- Log lengkap request/response dalam mode debug
|
||||
- Lacak API call, header, dan payload
|
||||
- Troubleshoot masalah integrasi
|
||||
- Ekspor log untuk dianalisis
|
||||
|
||||
### 💾 Cloud Sync
|
||||
|
||||
- Sinkronkan provider, combo, dan pengaturan antar perangkat
|
||||
- Sinkronisasi latar belakang otomatis
|
||||
- Penyimpanan terenkripsi yang aman
|
||||
- Akses setup dari mana saja
|
||||
|
||||
#### Catatan tentang cloud runtime
|
||||
|
||||
- Untuk produksi, disarankan memakai variabel cloud sisi server:
|
||||
- `BASE_URL` (URL callback internal yang dipakai scheduler sinkronisasi)
|
||||
- `CLOUD_URL` (base URL endpoint cloud sync)
|
||||
- `NEXT_PUBLIC_BASE_URL` dan `NEXT_PUBLIC_CLOUD_URL` masih didukung untuk kompatibilitas/UI, tetapi runtime server memprioritaskan `BASE_URL`/`CLOUD_URL`.
|
||||
- Request cloud sync memakai timeout + perilaku fail-fast untuk menghindari UI menggantung saat DNS/jaringan cloud tidak tersedia.
|
||||
|
||||
### 📊 Analitik Penggunaan
|
||||
|
||||
- Lacak pemakaian token per provider dan per model
|
||||
- Estimasi biaya dan tren pengeluaran
|
||||
- Laporan dan insight bulanan
|
||||
- Optimalkan pengeluaran AI
|
||||
|
||||
> **💡 PENTING - tentang biaya di dashboard:**
|
||||
>
|
||||
> "Biaya" yang ditampilkan pada analitik penggunaan **hanya untuk pelacakan dan perbandingan**.
|
||||
> 9Router sendiri **tidak menagih apa pun**. Kamu hanya membayar langsung ke provider jika memakai layanan berbayar.
|
||||
>
|
||||
> **Contoh:** jika dashboard menampilkan "Total biaya $290" untuk pemakaian model iFlow,
|
||||
> itu adalah jumlah yang seharusnya kamu bayar bila memakai API berbayar secara langsung. Biaya sebenarnya = **$0** (iFlow gratis tanpa batas).
|
||||
>
|
||||
> Anggap saja ini "pelacak penghematan" yang menunjukkan berapa banyak yang kamu hemat lewat model gratis dan routing 9Router!
|
||||
|
||||
### 🌐 Deploy di Mana Saja
|
||||
|
||||
- 💻 **Localhost** - default, jalan offline
|
||||
- ☁️ **VPS/Cloud** - berbagi antar perangkat
|
||||
- 🐳 **Docker** - deploy satu perintah
|
||||
- 🚀 **Cloudflare Workers** - jaringan edge global
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
## 💰 Ringkasan Harga
|
||||
|
||||
| Tier | Provider | Biaya | Reset Kuota | Cocok Untuk |
|
||||
|------|----------|-------|-------------|-------------|
|
||||
| **💳 Langganan** | Claude Code (Pro) | $20/bulan | 5 jam + mingguan | Yang sudah punya langganan |
|
||||
| | Codex (Plus/Pro) | $20-200/bulan | 5 jam + mingguan | Pengguna OpenAI |
|
||||
| | Gemini CLI | **Gratis** | 180rb/bulan + 1rb/hari | Semua orang! |
|
||||
| | GitHub Copilot | $10-19/bulan | Bulanan | Pengguna GitHub |
|
||||
| **💰 Murah** | GLM-4.7 | $0.6/1M | Setiap hari jam 10.00 | Backup hemat |
|
||||
| | MiniMax M2.1 | $0.2/1M | Rolling 5 jam | Opsi paling murah |
|
||||
| | Kimi K2 | $9/bulan flat | 10 juta token/bulan | Biaya yang bisa diprediksi |
|
||||
| **🆓 Gratis** | iFlow | $0 | Unlimited | 8 model gratis |
|
||||
| | Qwen | $0 | Unlimited | 3 model gratis |
|
||||
| | Kiro | $0 | Unlimited | Claude gratis |
|
||||
|
||||
**💡 Tips pro:** combo Gemini CLI (180rb request/bulan gratis) + iFlow (gratis unlimited) = biaya $0!
|
||||
|
||||
---
|
||||
|
||||
### 📊 Tentang Biaya dan Penagihan 9Router
|
||||
|
||||
**Fakta soal penagihan 9Router:**
|
||||
|
||||
✅ **Software 9Router = gratis selamanya** (open source, tanpa tagihan)
|
||||
✅ **"Biaya" di dashboard = tampilan/pelacakan saja** (bukan tagihan sungguhan)
|
||||
✅ **Pembayaran langsung ke provider** (langganan atau biaya API)
|
||||
✅ **Provider gratis tetap gratis** (iFlow, Kiro, Qwen = $0 unlimited)
|
||||
❌ **9Router tidak mengirim invoice** atau menagih kartumu
|
||||
|
||||
**Cara kerja tampilan biaya:**
|
||||
|
||||
Dashboard menampilkan **estimasi biaya** seandainya kamu memakai API berbayar secara langsung. Ini **bukan tagihan**, melainkan alat pembanding yang menunjukkan penghematanmu.
|
||||
|
||||
**Contoh skenario:**
|
||||
```
|
||||
Tampilan dashboard:
|
||||
• Total request: 1.662
|
||||
• Total token: 47 juta
|
||||
• Biaya tertampil: $290
|
||||
|
||||
Kenyataannya:
|
||||
• Provider: iFlow (gratis unlimited)
|
||||
• Yang benar-benar dibayar: $0.00
|
||||
• Arti $290: jumlah yang kamu hemat dengan memakai model gratis!
|
||||
```
|
||||
|
||||
**Aturan pembayaran:**
|
||||
- **Provider langganan** (Claude Code, Codex): bayar langsung di website masing-masing
|
||||
- **Provider murah** (GLM, MiniMax): bayar langsung, 9Router hanya melakukan routing
|
||||
- **Provider gratis** (iFlow, Kiro, Qwen): benar-benar gratis selamanya, tanpa biaya tersembunyi
|
||||
- **9Router**: tidak menagih apa pun
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Studi Kasus
|
||||
|
||||
### Kasus 1: "Saya punya langganan Claude Pro"
|
||||
|
||||
**Masalah:** kuota hangus tanpa terpakai, kena rate limit saat ngoding berat
|
||||
|
||||
**Solusi:**
|
||||
```
|
||||
Combo: "maximize-claude"
|
||||
1. cc/claude-opus-4-6 (manfaatkan langganan semaksimal mungkin)
|
||||
2. glm/glm-4.7 (backup murah saat kuota habis)
|
||||
3. if/kimi-k2-thinking (fallback darurat gratis)
|
||||
|
||||
Biaya bulanan: $20 (langganan) + ~$5 (backup) = total $25
|
||||
vs. $20 + kena limit = frustrasi
|
||||
```
|
||||
|
||||
### Kasus 2: "Saya mau biaya nol"
|
||||
|
||||
**Masalah:** tidak mampu bayar langganan, tapi butuh AI coding yang andal
|
||||
|
||||
**Solusi:**
|
||||
```
|
||||
Combo: "free-forever"
|
||||
1. gc/gemini-3-flash (180rb request/bulan gratis)
|
||||
2. if/kimi-k2-thinking (gratis unlimited)
|
||||
3. qw/qwen3-coder-plus (gratis unlimited)
|
||||
|
||||
Biaya bulanan: $0
|
||||
Kualitas: model siap produksi
|
||||
```
|
||||
|
||||
### Kasus 3: "Ngoding 24/7 tanpa terputus"
|
||||
|
||||
**Masalah:** deadline mepet, downtime tidak dapat ditoleransi
|
||||
|
||||
**Solusi:**
|
||||
```
|
||||
Combo: "always-on"
|
||||
1. cc/claude-opus-4-6 (kualitas terbaik)
|
||||
2. cx/gpt-5.2-codex (langganan kedua)
|
||||
3. glm/glm-4.7 (murah, reset harian)
|
||||
4. minimax/MiniMax-M2.1 (paling murah, reset 5 jam)
|
||||
5. if/kimi-k2-thinking (gratis unlimited)
|
||||
|
||||
Hasil: 5 lapis fallback = zero downtime
|
||||
Biaya bulanan: $20-200 (langganan) + $10-20 (backup)
|
||||
```
|
||||
|
||||
### Kasus 4: "Saya mau pakai AI gratis di OpenClaw"
|
||||
|
||||
**Masalah:** butuh asisten AI di aplikasi pesan (WhatsApp, Telegram, Slack...), sepenuhnya gratis
|
||||
|
||||
**Solusi:**
|
||||
```
|
||||
Combo: "openclaw-free"
|
||||
1. if/glm-4.7 (gratis unlimited)
|
||||
2. if/minimax-m2.1 (gratis unlimited)
|
||||
3. if/kimi-k2-thinking (gratis unlimited)
|
||||
|
||||
Biaya bulanan: $0
|
||||
Cara akses: WhatsApp, Telegram, Slack, Discord, iMessage, Signal...
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ❓ FAQ
|
||||
|
||||
<details>
|
||||
<summary><b>📊 Kenapa dashboard menampilkan biaya yang besar?</b></summary>
|
||||
|
||||
Dashboard melacak pemakaian token dan menampilkan **estimasi biaya** seandainya kamu memakai API berbayar secara langsung. Ini **bukan tagihan nyata**, melainkan acuan untuk melihat berapa banyak yang kamu hemat dengan memakai model gratis atau langganan yang sudah ada lewat 9Router.
|
||||
|
||||
**Contoh:**
|
||||
- **Tampilan dashboard:** "Total biaya $290"
|
||||
- **Kenyataan:** sedang memakai iFlow (gratis unlimited)
|
||||
- **Biaya sebenarnya:** **$0.00**
|
||||
- **Arti $290:** jumlah yang **dihemat** karena memakai model gratis alih-alih API berbayar!
|
||||
|
||||
Tampilan biaya adalah "pelacak penghematan" untuk memahami pola pemakaian dan peluang optimasi.
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><b>💳 Apakah 9Router menagih saya?</b></summary>
|
||||
|
||||
**Tidak.** 9Router adalah software open source gratis yang berjalan di komputermu sendiri. Tidak ada penagihan sama sekali.
|
||||
|
||||
**Kamu membayar ke:**
|
||||
- ✅ **Provider langganan** (Claude Code $20/bulan, Codex $20-200/bulan) → bayar langsung di website masing-masing
|
||||
- ✅ **Provider murah** (GLM, MiniMax) → bayar langsung, 9Router hanya me-routing request
|
||||
- ❌ **9Router sendiri** → **tidak menagih apa pun**
|
||||
|
||||
9Router adalah proxy/router lokal. Ia tidak menyimpan informasi kartu kredit, tidak bisa mengirim invoice, dan tidak punya sistem penagihan. Sepenuhnya software gratis.
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><b>🆓 Apakah provider gratis benar-benar unlimited?</b></summary>
|
||||
|
||||
**Ya!** Provider yang ditandai gratis (iFlow, Kiro, Qwen) benar-benar unlimited dan **tanpa biaya tersembunyi**.
|
||||
|
||||
Ini adalah layanan gratis yang disediakan masing-masing perusahaan:
|
||||
- **iFlow**: akses gratis unlimited ke 8+ model via OAuth
|
||||
- **Kiro**: model Claude gratis unlimited via AWS Builder ID
|
||||
- **Qwen**: akses gratis unlimited ke model Qwen via device authentication
|
||||
|
||||
9Router hanya me-routing request — tidak ada "jebakan" atau tagihan di kemudian hari. Layanannya memang gratis, dan 9Router membuatnya lebih mudah dipakai dengan dukungan fallback.
|
||||
|
||||
**Catatan:** beberapa provider langganan (Antigravity, GitHub Copilot) punya masa preview gratis dan bisa jadi berbayar nanti, tetapi hal itu diumumkan secara jelas oleh provider tersebut, bukan oleh 9Router.
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><b>💰 Bagaimana cara menekan biaya AI seminimal mungkin?</b></summary>
|
||||
|
||||
**Strategi free-first:**
|
||||
|
||||
1. **Mulai dari combo 100% gratis:**
|
||||
```
|
||||
1. gc/gemini-3-flash (180rb/bulan gratis dari Google)
|
||||
2. if/kimi-k2-thinking (gratis unlimited dari iFlow)
|
||||
3. qw/qwen3-coder-plus (gratis unlimited dari Qwen)
|
||||
```
|
||||
**Biaya: $0/bulan**
|
||||
|
||||
2. **Tambahkan backup murah hanya bila perlu:**
|
||||
```
|
||||
4. glm/glm-4.7 ($0.6 per 1 juta token)
|
||||
```
|
||||
**Tambahan biaya: bayar sesuai pemakaian saja**
|
||||
|
||||
3. **Gunakan provider langganan paling akhir:**
|
||||
- Hanya jika kamu memang sudah punya
|
||||
- 9Router memaksimalkan nilainya lewat pelacakan kuota
|
||||
|
||||
**Hasil:** sebagian besar pengguna bisa jalan dengan $0/bulan hanya dengan tier gratis!
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><b>📈 Bagaimana kalau pemakaian tiba-tiba melonjak?</b></summary>
|
||||
|
||||
Smart fallback 9Router mencegah tagihan tak terduga:
|
||||
|
||||
**Skenario:** kuota habis di tengah sprint coding
|
||||
|
||||
**Tanpa 9Router:**
|
||||
- ❌ Kena rate limit → kerja berhenti → frustrasi
|
||||
- ❌ Atau: tagihan API mahal tanpa disengaja
|
||||
|
||||
**Dengan 9Router:**
|
||||
- ✅ Langganan mencapai batas → otomatis fallback ke tier murah
|
||||
- ✅ Tier murah jadi mahal → otomatis fallback ke tier gratis
|
||||
- ✅ Ngoding tidak berhenti → biaya tetap terprediksi
|
||||
|
||||
**Kamu yang pegang kendali:** atur batas pengeluaran per provider di dashboard, dan 9Router akan mematuhinya.
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
## 📖 Panduan Setup
|
||||
|
||||
<details>
|
||||
<summary><b>🔐 Provider Langganan (maksimalkan nilainya)</b></summary>
|
||||
|
||||
### Claude Code (Pro/Max)
|
||||
|
||||
```bash
|
||||
Dashboard → Providers → hubungkan Claude Code
|
||||
→ login OAuth → refresh token otomatis
|
||||
→ pelacakan kuota 5 jam + mingguan
|
||||
|
||||
Model:
|
||||
cc/claude-opus-4-6
|
||||
cc/claude-sonnet-4-5-20250929
|
||||
cc/claude-haiku-4-5-20251001
|
||||
```
|
||||
|
||||
**Tips pro:** pakai Opus untuk tugas kompleks, Sonnet kalau mengutamakan kecepatan. 9Router melacak kuota per model!
|
||||
|
||||
### OpenAI Codex (Plus/Pro)
|
||||
|
||||
```bash
|
||||
Dashboard → Providers → hubungkan Codex
|
||||
→ login OAuth (port 1455)
|
||||
→ reset 5 jam + mingguan
|
||||
|
||||
Model:
|
||||
cx/gpt-5.2-codex
|
||||
cx/gpt-5.1-codex-max
|
||||
```
|
||||
|
||||
### Gemini CLI (180rb request/bulan gratis!)
|
||||
|
||||
```bash
|
||||
Dashboard → Providers → hubungkan Gemini CLI
|
||||
→ Google OAuth
|
||||
→ 180rb/bulan + 1rb/hari
|
||||
|
||||
Model:
|
||||
gc/gemini-3-flash-preview
|
||||
gc/gemini-2.5-pro
|
||||
```
|
||||
|
||||
**Value terbaik:** free tier-nya besar sekali! Pakai ini sebelum tier berbayar.
|
||||
|
||||
### GitHub Copilot
|
||||
|
||||
```bash
|
||||
Dashboard → Providers → hubungkan GitHub
|
||||
→ OAuth via GitHub
|
||||
→ reset bulanan (tanggal 1 tiap bulan)
|
||||
|
||||
Model:
|
||||
gh/gpt-5
|
||||
gh/claude-4.5-sonnet
|
||||
gh/gemini-3-pro
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><b>💰 Provider Murah (backup)</b></summary>
|
||||
|
||||
### GLM-4.7 (reset harian, $0.6/1M)
|
||||
|
||||
1. Daftar: [Zhipu AI](https://open.bigmodel.cn/)
|
||||
2. Ambil API key dari Coding Plan
|
||||
3. Dashboard → tambahkan API key:
|
||||
- Provider: `glm`
|
||||
- API Key: `your-key`
|
||||
|
||||
**Pemakaian:** `glm/glm-4.7`
|
||||
|
||||
**Tips pro:** Coding Plan memberi kuota 3x lipat dengan biaya 1/7! Reset setiap hari jam 10.00.
|
||||
|
||||
### MiniMax M2.1 (reset 5 jam, $0.20/1M)
|
||||
|
||||
1. Daftar: [MiniMax](https://www.minimax.io/)
|
||||
2. Ambil API key
|
||||
3. Dashboard → tambahkan API key
|
||||
|
||||
**Pemakaian:** `minimax/MiniMax-M2.1`
|
||||
|
||||
**Tips pro:** opsi termurah dengan konteks panjang (1 juta token)!
|
||||
|
||||
### Kimi K2 ($9/bulan flat)
|
||||
|
||||
1. Berlangganan: [Moonshot AI](https://platform.moonshot.ai/)
|
||||
2. Ambil API key
|
||||
3. Dashboard → tambahkan API key
|
||||
|
||||
**Pemakaian:** `kimi/kimi-latest`
|
||||
|
||||
**Tips pro:** $9/bulan flat untuk 10 juta token = biaya efektif $0.90/1M!
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><b>🆓 Provider Gratis (backup darurat)</b></summary>
|
||||
|
||||
### iFlow (8 model gratis)
|
||||
|
||||
```bash
|
||||
Dashboard → hubungkan iFlow
|
||||
→ login OAuth iFlow
|
||||
→ pemakaian unlimited
|
||||
|
||||
Model:
|
||||
if/kimi-k2-thinking
|
||||
if/qwen3-coder-plus
|
||||
if/glm-4.7
|
||||
if/minimax-m2
|
||||
if/deepseek-r1
|
||||
```
|
||||
|
||||
### Qwen (3 model gratis)
|
||||
|
||||
```bash
|
||||
Dashboard → hubungkan Qwen
|
||||
→ autentikasi device code
|
||||
→ pemakaian unlimited
|
||||
|
||||
Model:
|
||||
qw/qwen3-coder-plus
|
||||
qw/qwen3-coder-flash
|
||||
```
|
||||
|
||||
### Kiro (Claude gratis)
|
||||
|
||||
```bash
|
||||
Dashboard → hubungkan Kiro
|
||||
→ AWS Builder ID atau Google/GitHub
|
||||
→ pemakaian unlimited
|
||||
|
||||
Model:
|
||||
kr/claude-sonnet-4.5
|
||||
kr/claude-haiku-4.5
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><b>🎨 Membuat Combo</b></summary>
|
||||
|
||||
### Contoh 1: maksimalkan langganan → backup murah
|
||||
|
||||
```
|
||||
Dashboard → Combos → buat baru
|
||||
|
||||
Nama: premium-coding
|
||||
Model:
|
||||
1. cc/claude-opus-4-6 (langganan, utama)
|
||||
2. glm/glm-4.7 (backup murah, $0.6/1M)
|
||||
3. minimax/MiniMax-M2.1 (fallback termurah, $0.20/1M)
|
||||
|
||||
Pemakaian di CLI: premium-coding
|
||||
|
||||
Contoh biaya bulanan (100 juta token):
|
||||
80 juta lewat Claude (langganan): tambahan $0
|
||||
15 juta lewat GLM: $9
|
||||
5 juta lewat MiniMax: $1
|
||||
Total: $10
|
||||
```
|
||||
|
||||
### Contoh 2: combo 100% gratis
|
||||
|
||||
```
|
||||
Nama: free-forever
|
||||
Model:
|
||||
1. gc/gemini-3-flash (180rb request/bulan gratis)
|
||||
2. if/kimi-k2-thinking (gratis unlimited)
|
||||
3. qw/qwen3-coder-plus (gratis unlimited)
|
||||
4. kr/claude-sonnet-4.5 (gratis unlimited)
|
||||
|
||||
Biaya bulanan: $0
|
||||
```
|
||||
|
||||
### Tips membuat combo
|
||||
|
||||
- Urutkan dari kualitas/prioritas tertinggi ke fallback paling murah
|
||||
- Selalu taruh minimal satu provider gratis di posisi terakhir
|
||||
- Pakai nama combo yang deskriptif agar mudah dipilih dari CLI
|
||||
- Aktifkan cloud sync agar combo ikut tersedia di perangkat lain
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
## 🐳 Deployment
|
||||
|
||||
<details>
|
||||
<summary><b>Docker</b></summary>
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
--name 9router \
|
||||
-p 20128:20128 \
|
||||
-v 9router-data:/app/data \
|
||||
-e PORT=20128 \
|
||||
-e BASE_URL=http://localhost:20128 \
|
||||
ghcr.io/decolua/9router:latest
|
||||
```
|
||||
|
||||
Dashboard: `http://localhost:20128/dashboard`
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><b>VPS / Cloud</b></summary>
|
||||
|
||||
```bash
|
||||
npm install -g 9router
|
||||
PORT=20128 HOSTNAME=0.0.0.0 BASE_URL=https://your-domain.com 9router
|
||||
```
|
||||
|
||||
Disarankan menaruhnya di belakang reverse proxy (Nginx/Caddy) dengan HTTPS, dan membatasi akses hanya untuk dirimu sendiri.
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><b>Cloudflare Workers</b></summary>
|
||||
|
||||
```bash
|
||||
npm run build
|
||||
npx wrangler deploy
|
||||
```
|
||||
|
||||
Atur `BASE_URL` dan `CLOUD_URL` sebagai environment variable di dashboard Cloudflare.
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
## 🧪 Troubleshooting
|
||||
|
||||
| Masalah | Kemungkinan Penyebab | Solusi |
|
||||
|---------|----------------------|--------|
|
||||
| Tool CLI tidak bisa konek | Endpoint salah | Pastikan `http://localhost:20128/v1` |
|
||||
| 401 / Unauthorized | API key salah | Salin ulang key dari dashboard |
|
||||
| Model tidak ditemukan | Prefix provider salah | Pakai format `provider/model`, mis. `if/kimi-k2-thinking` |
|
||||
| Selalu fallback ke gratis | Kuota langganan habis | Cek hitung mundur reset di dashboard |
|
||||
| OAuth gagal | Port callback terpakai | Tutup proses lain (mis. port 1455 untuk Codex) |
|
||||
| UI menggantung saat sync | DNS/jaringan cloud bermasalah | Cek `CLOUD_URL`; sync memakai timeout fail-fast |
|
||||
|
||||
Aktifkan mode debug di dashboard untuk melihat log lengkap request/response.
|
||||
|
||||
---
|
||||
|
||||
## 🤝 Kontribusi
|
||||
|
||||
Kontribusi sangat diterima!
|
||||
|
||||
1. Fork repo ini
|
||||
2. Buat branch fitur (`git checkout -b feature/nama-fitur`)
|
||||
3. Commit perubahanmu (`git commit -m 'feat: tambah fitur X'`)
|
||||
4. Push ke branch (`git push origin feature/nama-fitur`)
|
||||
5. Buka Pull Request
|
||||
|
||||
---
|
||||
|
||||
## 📄 Lisensi
|
||||
|
||||
MIT License — lihat [LICENSE](https://github.com/decolua/9router/blob/main/LICENSE) untuk detailnya.
|
||||
|
||||
---
|
||||
|
||||
<div align="center">
|
||||
|
||||
**Kalau 9Router membantumu, kasih ⭐ di [GitHub](https://github.com/decolua/9router)!**
|
||||
|
||||
[🌐 Website](https://9router.com) • [📦 npm](https://www.npmjs.com/package/9router) • [🐛 Laporkan Bug](https://github.com/decolua/9router/issues)
|
||||
|
||||
</div>
|
||||
1526
i18n/README.pt-BR.md
Normal file
1526
i18n/README.pt-BR.md
Normal file
File diff suppressed because it is too large
Load Diff
723
i18n/README.th.md
Normal file
723
i18n/README.th.md
Normal file
@@ -0,0 +1,723 @@
|
||||
นี่คือเอกสารแปลภาษาไทยของไฟล์ Markdown ต้นฉบับ โดยรักษาโครงสร้างและซินแท็กซ์ทางเทคนิคทั้งหมดไว้เหมือนเดิม
|
||||
|
||||
<div align="center">
|
||||
<img src="../images/9router.png?1" alt="แดชบอร์ด 9Router" width="800"/>
|
||||
|
||||
# 9Router - Free AI Router
|
||||
|
||||
**ไม่ต้องหยุดเขียนโค้ด ประหยัดโทเค็น 20-40% ด้วย RTK + สลับอัตโนมัติไปยังโมเดล AI ฟรีและราคาถูก**
|
||||
|
||||
**ผู้ให้บริการ AI ฟรีสำหรับ OpenClaw**
|
||||
|
||||
<p align="center">
|
||||
<img src="../public/providers/openclaw.png" alt="OpenClaw" width="80"/>
|
||||
</p>
|
||||
|
||||
[](https://www.npmjs.com/package/9router)
|
||||
[](https://www.npmjs.com/package/9router)
|
||||
[](https://github.com/decolua/9router/blob/main/LICENSE)
|
||||
|
||||
[🚀 เริ่มต้นใช้งาน](#-quick-start) • [💡 ฟีเจอร์](#-key-features) • [📖 การตั้งค่า](#-setup-guide) • [🌐 เว็บไซต์](https://9router.com)
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
## 🤔 ทำไมต้อง 9Router?
|
||||
|
||||
**หยุดเสียเงินและเจอขีดจำกัด:**
|
||||
|
||||
- ❌ โควตาสมาชิกหมดอายุโดยไม่ได้ใช้ทุกเดือน
|
||||
- ❌ Rate Limit หยุดคุณระหว่างเขียนโค้ด
|
||||
- ❌ ค่า API แพง ($20-50/เดือน ต่อผู้ให้บริการแต่ละราย)
|
||||
- ❌ ต้องสลับผู้ให้บริการด้วยตนเอง
|
||||
|
||||
**9Router แก้ปัญหาเหล่านี้:**
|
||||
|
||||
- ✅ **ประหยัดโทเค็น RTK** - บีบอัดผลลัพธ์จากเครื่องมือ (`git diff`, `grep`, `ls`...) ก่อนส่งให้ LLM
|
||||
- ✅ **เพิ่มประสิทธิภาพสมาชิก** - ติดตามโควตา ใช้ทุกบิตก่อนรีเซ็ต
|
||||
- ✅ **สลับอัตโนมัติ** - สมาชิก → ถูก → ฟรี, ไม่มีเวลาหยุดทำงาน
|
||||
- ✅ **รองรับหลายบัญชี** - Round-robin ระหว่างบัญชีของผู้ให้บริการแต่ละราย
|
||||
- ✅ **ใช้งานได้ทุกที่** - ใช้ได้กับ Claude Code, Codex, Cursor, Cline, เครื่องมือ CLI ใดก็ได้
|
||||
|
||||
---
|
||||
|
||||
## 🔄 วิธีการทำงาน
|
||||
|
||||
```
|
||||
┌─────────────┐
|
||||
│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...)
|
||||
│ Tool │
|
||||
└──────┬──────┘
|
||||
│ http://localhost:20128/v1
|
||||
↓
|
||||
┌─────────────────────────────────────────────┐
|
||||
│ 9Router (Smart Router) │
|
||||
│ • RTK Token Saver (ตัดโทเค็น tool_result) │
|
||||
│ • แปลงรูปแบบ (OpenAI ↔ Claude) │
|
||||
│ • ติดตามโควตา │
|
||||
│ • รีเฟรชโทเค็นอัตโนมัติ │
|
||||
└──────┬──────────────────────────────────────┘
|
||||
│
|
||||
├─→ [Tier 1: สมาชิก] Claude Code, Codex, GitHub Copilot
|
||||
│ ↓ โควตาหมด
|
||||
├─→ [Tier 2: ถูก] GLM ($0.6/1M), MiniMax ($0.2/1M)
|
||||
│ ↓ งบหมด
|
||||
└─→ [Tier 3: ฟรี] Kiro, OpenCode Free, Vertex ($300 เครดิตฟรี)
|
||||
|
||||
ผลลัพธ์: ไม่ต้องหยุดเขียนโค้ด ค่าใช้จ่ายน้อยที่สุด + ประหยัดโทเค็น 20-40% ด้วย RTK
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ⚡ เริ่มต้นใช้งาน
|
||||
|
||||
**1. ติดตั้งแบบ Global:**
|
||||
|
||||
```bash
|
||||
npm install -g 9router
|
||||
9router
|
||||
```
|
||||
|
||||
🎉 เปิดแดชบอร์ดที่ `http://localhost:20128`
|
||||
|
||||
**2. เชื่อมต่อผู้ให้บริการฟรี (ไม่ต้องสมัคร):**
|
||||
|
||||
แดชบอร์ด → Providers → เชื่อมต่อ **Kiro AI** (Claude ฟรีไม่จำกัด) หรือ **OpenCode Free** (ไม่ต้องยืนยันตัวตน) → เสร็จ!
|
||||
|
||||
**3. ใช้ในเครื่องมือ CLI ของคุณ:**
|
||||
|
||||
```
|
||||
ตั้งค่า Claude Code/Codex/OpenClaw/Cursor/Cline:
|
||||
Endpoint: http://localhost:20128/v1
|
||||
API Key: [คัดลอกจากแดชบอร์ด]
|
||||
Model: kr/claude-sonnet-4.5
|
||||
```
|
||||
|
||||
**เสร็จแล้ว!** เริ่มเขียนโค้ดด้วยโมเดล AI ฟรี
|
||||
|
||||
**วิธีอื่น: รันจากซอร์สโค้ด (เก็บรักษาไว้ใน repo นี้):**
|
||||
|
||||
Repo นี้เป็น private package (`9router-app`) ดังนั้นการรันจากซอร์ส/Docker คือเส้นทางพัฒนาท้องถิ่นที่คาดไว้
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
npm install
|
||||
PORT=20128 NEXT_PUBLIC_BASE_URL=http://localhost:20128 npm run dev
|
||||
```
|
||||
|
||||
โหมด Production:
|
||||
|
||||
```bash
|
||||
npm run build
|
||||
PORT=20128 HOSTNAME=0.0.0.0 NEXT_PUBLIC_BASE_URL=http://localhost:20128 npm run start
|
||||
```
|
||||
|
||||
URL ค่าเริ่มต้น:
|
||||
- แดชบอร์ด: `http://localhost:20128/dashboard`
|
||||
- OpenAI-compatible API: `http://localhost:20128/v1`
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ เครื่องมือ CLI ที่รองรับ
|
||||
|
||||
9Router ทำงานได้อย่างราบรื่นกับเครื่องมือเขียนโค้ด AI ทุกประเภท:
|
||||
|
||||
<div align="center">
|
||||
<table>
|
||||
<tr>
|
||||
<td align="center" width="120">
|
||||
<img src="../public/providers/claude.png" width="60" alt="Claude Code"/><br/>
|
||||
<b>Claude-Code</b>
|
||||
</td>
|
||||
<td align="center" width="120">
|
||||
<img src="../public/providers/openclaw.png" width="60" alt="OpenClaw"/><br/>
|
||||
<b>OpenClaw</b>
|
||||
</td>
|
||||
<td align="center" width="120">
|
||||
<img src="../public/providers/codex.png" width="60" alt="Codex"/><br/>
|
||||
<b>Codex</b>
|
||||
</td>
|
||||
<td align="center" width="120">
|
||||
<img src="../public/providers/opencode.png" width="60" alt="OpenCode"/><br/>
|
||||
<b>OpenCode</b>
|
||||
</td>
|
||||
<td align="center" width="120">
|
||||
<img src="../public/providers/cursor.png" width="60" alt="Cursor"/><br/>
|
||||
<b>Cursor</b>
|
||||
</td>
|
||||
<td align="center" width="120">
|
||||
<img src="../public/providers/antigravity.png" width="60" alt="Antigravity"/><br/>
|
||||
<b>Antigravity</b>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" width="120">
|
||||
<img src="../public/providers/cline.png" width="60" alt="Cline"/><br/>
|
||||
<b>Cline</b>
|
||||
</td>
|
||||
<td align="center" width="120">
|
||||
<img src="../public/providers/continue.png" width="60" alt="Continue"/><br/>
|
||||
<b>Continue</b>
|
||||
</td>
|
||||
<td align="center" width="120">
|
||||
<img src="../public/providers/droid.png" width="60" alt="Droid"/><br/>
|
||||
<b>Droid</b>
|
||||
</td>
|
||||
<td align="center" width="120">
|
||||
<img src="../public/providers/roo.png" width="60" alt="Roo"/><br/>
|
||||
<b>Roo</b>
|
||||
</td>
|
||||
<td align="center" width="120">
|
||||
<img src="../public/providers/copilot.png" width="60" alt="Copilot"/><br/>
|
||||
<b>Copilot</b>
|
||||
</td>
|
||||
<td align="center" width="120">
|
||||
<img src="../public/providers/kilocode.png" width="60" alt="Kilo Code"/><br/>
|
||||
<b>Kilo Code</b>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
## ผู้ให้บริการที่รองรับ
|
||||
|
||||
### 🔐 ผู้ให้บริการ OAuth
|
||||
|
||||
<div align="center">
|
||||
<table>
|
||||
<tr>
|
||||
<td align="center" width="120">
|
||||
<img src="../public/providers/claude.png" width="60" alt="Claude Code"/><br/>
|
||||
<b>Claude-Code</b>
|
||||
</td>
|
||||
<td align="center" width="120">
|
||||
<img src="../public/providers/antigravity.png" width="60" alt="Antigravity"/><br/>
|
||||
<b>Antigravity</b>
|
||||
</td>
|
||||
<td align="center" width="120">
|
||||
<img src="../public/providers/codex.png" width="60" alt="Codex"/><br/>
|
||||
<b>Codex</b>
|
||||
</td>
|
||||
<td align="center" width="120">
|
||||
<img src="../public/providers/github.png" width="60" alt="GitHub"/><br/>
|
||||
<b>GitHub</b>
|
||||
</td>
|
||||
<td align="center" width="120">
|
||||
<img src="../public/providers/cursor.png" width="60" alt="Cursor"/><br/>
|
||||
<b>Cursor</b>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
### 🆓 ผู้ให้บริการฟรี
|
||||
|
||||
<div align="center">
|
||||
<table>
|
||||
<tr>
|
||||
<td align="center" width="150">
|
||||
<img src="../public/providers/kiro.png" width="70" alt="Kiro"/><br/>
|
||||
<b>Kiro AI</b><br/>
|
||||
<sub>Claude 4.5 + GLM-5 + MiniMax • ไม่จำกัด ฟรี</sub>
|
||||
</td>
|
||||
<td align="center" width="150">
|
||||
<img src="../public/providers/opencode.png" width="70" alt="OpenCode"/><br/>
|
||||
<b>OpenCode Free</b><br/>
|
||||
<sub>ไม่ต้องยืนยันตัวตน • ดึงโมเดลอัตโนมัติ • ไม่จำกัด ฟรี</sub>
|
||||
</td>
|
||||
<td align="center" width="150">
|
||||
<img src="../public/providers/gemini.png" width="70" alt="Vertex AI"/><br/>
|
||||
<b>Vertex AI</b><br/>
|
||||
<sub>Gemini 3 Pro + GLM-5 + DeepSeek • เครดิตฟรี $300</sub>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
> **หมายเหตุ:** iFlow, Qwen และ Gemini CLI หยุดให้บริการในปี 2026 แล้ว ใช้ Kiro / OpenCode Free / Vertex แทน
|
||||
|
||||
### 🔑 ผู้ให้บริการ API Key (40+)
|
||||
|
||||
<div align="center">
|
||||
<table>
|
||||
<tr>
|
||||
<td align="center" width="100">
|
||||
<img src="../public/providers/openrouter.png" width="50" alt="OpenRouter"/><br/>
|
||||
<sub>OpenRouter</sub>
|
||||
</td>
|
||||
<td align="center" width="100">
|
||||
<img src="../public/providers/glm.png" width="50" alt="GLM"/><br/>
|
||||
<sub>GLM</sub>
|
||||
</td>
|
||||
<td align="center" width="100">
|
||||
<img src="../public/providers/kimi.png" width="50" alt="Kimi"/><br/>
|
||||
<sub>Kimi</sub>
|
||||
</td>
|
||||
<td align="center" width="100">
|
||||
<img src="../public/providers/minimax.png" width="50" alt="MiniMax"/><br/>
|
||||
<sub>MiniMax</sub>
|
||||
</td>
|
||||
<td align="center" width="100">
|
||||
<img src="../public/providers/openai.png" width="50" alt="OpenAI"/><br/>
|
||||
<sub>OpenAI</sub>
|
||||
</td>
|
||||
<td align="center" width="100">
|
||||
<img src="../public/providers/anthropic.png" width="50" alt="Anthropic"/><br/>
|
||||
<sub>Anthropic</sub>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" width="100">
|
||||
<img src="../public/providers/gemini.png" width="50" alt="Gemini"/><br/>
|
||||
<sub>Gemini</sub>
|
||||
</td>
|
||||
<td align="center" width="100">
|
||||
<img src="../public/providers/deepseek.png" width="50" alt="DeepSeek"/><br/>
|
||||
<sub>DeepSeek</sub>
|
||||
</td>
|
||||
<td align="center" width="100">
|
||||
<img src="../public/providers/groq.png" width="50" alt="Groq"/><br/>
|
||||
<sub>Groq</sub>
|
||||
</td>
|
||||
<td align="center" width="100">
|
||||
<img src="../public/providers/xai.png" width="50" alt="xAI"/><br/>
|
||||
<sub>xAI</sub>
|
||||
</td>
|
||||
<td align="center" width="100">
|
||||
<img src="../public/providers/mistral.png" width="50" alt="Mistral"/><br/>
|
||||
<sub>Mistral</sub>
|
||||
</td>
|
||||
<td align="center" width="100">
|
||||
<img src="../public/providers/perplexity.png" width="50" alt="Perplexity"/><br/>
|
||||
<sub>Perplexity</sub>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" width="100">
|
||||
<img src="../public/providers/together.png" width="50" alt="Together"/><br/>
|
||||
<sub>Together AI</sub>
|
||||
</td>
|
||||
<td align="center" width="100">
|
||||
<img src="../public/providers/fireworks.png" width="50" alt="Fireworks"/><br/>
|
||||
<sub>Fireworks</sub>
|
||||
</td>
|
||||
<td align="center" width="100">
|
||||
<img src="../public/providers/cerebras.png" width="50" alt="Cerebras"/><br/>
|
||||
<sub>Cerebras</sub>
|
||||
</td>
|
||||
<td align="center" width="100">
|
||||
<img src="../public/providers/cohere.png" width="50" alt="Cohere"/><br/>
|
||||
<sub>Cohere</sub>
|
||||
</td>
|
||||
<td align="center" width="100">
|
||||
<img src="../public/providers/nvidia.png" width="50" alt="NVIDIA"/><br/>
|
||||
<sub>NVIDIA</sub>
|
||||
</td>
|
||||
<td align="center" width="100">
|
||||
<img src="../public/providers/siliconflow.png" width="50" alt="SiliconFlow"/><br/>
|
||||
<sub>SiliconFlow</sub>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p><i>...และผู้ให้บริการอีกกว่า 20 ราย รวมถึง Nebius, Chutes, Hyperbolic และ OpenAI/Anthropic compatible endpoints แบบกำหนดเอง</i></p>
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
## 💡 ฟีเจอร์หลัก
|
||||
|
||||
| ฟีเจอร์ | ทำอะไร | ทำไมถึงสำคัญ |
|
||||
|---------|--------------|----------------|
|
||||
| 🚀 **RTK Token Saver** ([RTK](https://github.com/rtk-ai/rtk) ⭐40K) | บีบอัดผลลัพธ์จากเครื่องมือ (`git diff`, `grep`, `ls`, `tree`...) ก่อนส่งให้ LLM | ประหยัด **โทเค็น input 20-40%** ต่อคำขอ |
|
||||
| 🧠 **Headroom Token Saver** ([Headroom](https://github.com/chopratejas/headroom)) | พร็อกซี `/v1/compress` ภายนอกก่อนเลือกผู้ให้บริการ | ประหยัดโทเค็นบริบทมากขึ้นโดยไม่ต้องเปลี่ยน client |
|
||||
| 🪨 **Caveman Mode** ([Caveman](https://github.com/JuliusBrussee/caveman) ⭐52K) | ฉีด caveman-speak prompt → LLM ตอบสั้นกระชับ เนื้อหาทางเทคนิคยังครบถ้วน | ประหยัด **โทเค็น output สูงสุด 65%** |
|
||||
| 🐴 **Ponytail** ([Ponytail](https://github.com/DietrichGebert/ponytail)) | ฉีด prompt "lazy senior dev" → LLM เขียนโค้ดน้อยที่สุด YAGNI-first (Lite/Full/Ultra) | **โทเค็น output น้อยลง, ไม่ต้อง refactor มาก** |
|
||||
| 🎯 **Smart 3-Tier Fallback** | เลือกเส้นทางอัตโนมัติ: สมาชิก → ถูก → ฟรี | ไม่ต้องหยุดเขียนโค้ด, ไม่มีเวลาหยุดทำงาน |
|
||||
| 📊 **ติดตามโควตาแบบ Real-Time** | นับโทเค็นแบบ live + นับถอยหลังรีเซ็ต | เพิ่มประสิทธิภาพมูลค่าสมาชิก |
|
||||
| 🔄 **แปลงรูปแบบ** | OpenAI ↔ Claude ↔ Gemini ↔ Cursor ↔ Kiro ↔ Vertex | ใช้ได้กับเครื่องมือ CLI ทุกประเภท |
|
||||
| 👥 **รองรับหลายบัญชี** | หลายบัญชีต่อผู้ให้บริการ | Load balancing + สำรองข้อมูล |
|
||||
| 🔄 **รีเฟรชโทเค็นอัตโนมัติ** | OAuth token รีเฟรชอัตโนมัติ | ไม่ต้องล็อกอินซ้ำด้วยตนเอง |
|
||||
| 🎨 **Combo กำหนดเอง** | สร้างการผสมผสานโมเดลไม่จำกัด | ปรับแต่ง fallback ตามความต้องการ |
|
||||
| 📝 **บันทึก Request** | โหมด debug พร้อม log request/response ครบถ้วน | แก้ไขปัญหาได้ง่าย |
|
||||
| 💾 **ซิงค์คลาวด์** | ซิงค์การตั้งค่าระหว่างอุปกรณ์ | การตั้งค่าเดียวกันทุกที่ |
|
||||
| 📊 **วิเคราะห์การใช้งาน** | ติดตามโทเค็น, ค่าใช้จ่าย, แนวโน้มตามเวลา | ปรับแต่งค่าใช้จ่าย |
|
||||
| 🌐 **Deploy ได้ทุกที่** | Localhost, VPS, Docker, Cloudflare Workers | ตัวเลือก deploy ที่ยืดหยุ่น |
|
||||
|
||||
<details>
|
||||
<summary><b>📖 รายละเอียดฟีเจอร์</b></summary>
|
||||
|
||||
### 🚀 RTK Token Saver
|
||||
|
||||
ผลลัพธ์จากเครื่องมือ (`git diff`, `grep`, `find`, `ls`, `tree`, log dumps...) มักกินงบประมาณ prompt 30-50% RTK ตรวจสอบและบีบอัดอย่างชาญฉลาดแบบ lossless **ก่อน**คำขอถึง LLM:
|
||||
|
||||
- **ตัวกรอง:** `git-diff`, `git-status`, `grep`, `find`, `ls`, `tree`, `dedup-log`, `smart-truncate`, `read-numbered`, `search-list`
|
||||
- **ตรวจจับอัตโนมัติ:** ไม่ต้องตั้งค่า — RTK .peek 1KB แรกของแต่ละ `tool_result` และเลือกตัวกรองที่ถูกต้อง
|
||||
- **ปลอดภัยโดยการออกแบบ:** ถ้าตัวกรองล้มเหลว, ขว้าง error, หรือทำให้ผลลัพธ์ใหญ่ขึ้น RTK จะเก็บข้อความต้นฉบับไว้โดยเงียบๆ ไม่มี error ทำให้คำขอของคุณล้มเหลว
|
||||
- **ใช้ได้ทุกที่:** ใช้ได้กับทุกรูปแบบ (OpenAI, Claude, Gemini, Cursor, Kiro, OpenAI Responses) เพราะทำงาน **ก่อน**การแปลงรูปแบบใดๆ
|
||||
- **เปิดใช้งานเป็นค่าเริ่มต้น:** ปิด/เปิดได้ตลอดเวลาใน แดชบอร์ด → ตั้งค่า Endpoint
|
||||
|
||||
```
|
||||
ไม่ใช้ RTK: ส่ง 47K โทเค็นให้ LLM
|
||||
ใช้ RTK: ส่ง 28K โทเค็นให้ LLM (ประหยัด 40% · บริบทเดียวกัน · คำตอบเดียวกัน)
|
||||
```
|
||||
|
||||
### 🧠 Headroom Token Saver
|
||||
|
||||
Headroom เป็นตัวเลือกและทำงานแยกกัน 9Router เรียก endpoint `/v1/compress` ของ Headroom จากนั้นยังคงเลือกเส้นทาง, fallback, auth และติดตามการใช้งานตามปกติ:
|
||||
|
||||
```
|
||||
Client → 9Router → Headroom /v1/compress → 9Router → provider
|
||||
```
|
||||
|
||||
ตั้งค่าท้องถิ่น:
|
||||
|
||||
```bash
|
||||
pip install "headroom-ai[proxy]"
|
||||
headroom proxy --port 8787
|
||||
```
|
||||
|
||||
เปิดใช้งานใน แดชบอร์ด → Endpoint → Token Saver → Headroom URL ค่าเริ่มต้น: `http://localhost:8787`
|
||||
|
||||
ตัวอย่าง Docker:
|
||||
|
||||
```bash
|
||||
# Headroom service ใน Docker network เดียวกัน
|
||||
http://host.docker.internal:8787
|
||||
```
|
||||
|
||||
ถ้า Headroom ดับหรือคืน error, 9Router จะ fail open และส่งคำขอต้นฉบับ
|
||||
|
||||
### 🐴 Ponytail (Lazy Senior Dev)
|
||||
|
||||
Ponytail ฉีด prompt *"lazy senior dev"* เข้าไปในทุกคำขอ ทำให้ LLM เขียนโค้ดน้อยที่สุดแบบ YAGNI-first — ลบมากกว่าเพิ่ม, stdlib มากกว่า dep ใหม่, one-liner มากกว่า abstraction
|
||||
|
||||
- **Lite** — สร้างตามที่ขอ, บอกชื่อทางเลือกที่ lazy กว่า
|
||||
- **Full** — บังคับ YAGNI ladder: stdlib → native → existing deps → one-liner → minimal code
|
||||
- **Ultra** — YAGNI extremist: ลบก่อน, ส่ง one-liner, ตั้งคำถามกับ requirement ที่เหลือในคำตอบเดียวกัน
|
||||
|
||||
```
|
||||
ไม่ใช้ Ponytail: โค้ดเยอะ, abstraction เยอะ, "เผื่อไว้" scaffolding
|
||||
ใช้ Ponytail: diff สั้นที่สุดที่ทำงานได้, ไม่เพิ่ม abstraction ที่ไม่ได้ขอ, โทเค็นน้อยลง
|
||||
```
|
||||
|
||||
ไม่มีวันแลก: input validation, error handling ที่ป้องกัน data loss, security, accessibility หรือสิ่งที่ขอมาอย่างชัดเจน เปิดใช้งานใน แดชบอร์ด → Endpoint → Ponytail ใช้คู่กับ Caveman (ความกระชับ output) และ RTK (การบีบอัด input) ได้
|
||||
|
||||
### 🎯 Smart 3-Tier Fallback
|
||||
|
||||
สร้าง combo พร้อม fallback อัตโนมัติ:
|
||||
|
||||
```
|
||||
Combo: "my-coding-stack"
|
||||
1. cc/claude-opus-4-6 (สมาชิกของคุณ)
|
||||
2. glm/glm-4.7 (สำรองราคาถูก, $0.6/1M)
|
||||
3. if/kimi-k2-thinking (fallback ฟรี)
|
||||
|
||||
→ สลับอัตโนมัติเมื่อโควตาหมดหรือเกิด error
|
||||
```
|
||||
|
||||
### 📊 ติดตามโควตาแบบ Real-Time
|
||||
|
||||
- การใช้โทเค็นต่อผู้ให้บริการ
|
||||
- นับถอยหลังรีเซ็ต (5 ชั่วโมง, รายวัน, รายสัปดาห์)
|
||||
- ประมาณการค่าใช้จ่ายสำหรับชั้นแบบเสียค่าใช้จ่าย
|
||||
- รายงานค่าใช้จ่ายรายเดือน
|
||||
|
||||
### 🔄 แปลงรูปแบบ
|
||||
|
||||
แปลงรูปแบบได้อย่างราบรื่น:
|
||||
- **OpenAI** ↔ **Claude** ↔ **Gemini** ↔ **Cursor** ↔ **Kiro** ↔ **Vertex** ↔ **Antigravity** ↔ **Ollama** ↔ **OpenAI Responses**
|
||||
- เครื่องมือ CLI ของคุณส่งรูปแบบ OpenAI → 9Router แปลง → ผู้ให้บริการได้รับรูปแบบต้นฉบับ
|
||||
- ใช้ได้กับเครื่องมือใดก็ได้ที่รองรับ custom OpenAI endpoints
|
||||
|
||||
### 👥 รองรับหลายบัญชี
|
||||
|
||||
- เพิ่มหลายบัญชีสำหรับผู้ให้บริการแต่ละราย
|
||||
- เลือกเส้นทาง round-robin หรือตามลำดับความสำคัญอัตโนมัติ
|
||||
- Fallback ไปยังบัญชีถัดไปเมื่อบัญชีหนึ่งชนโควตา
|
||||
|
||||
### 🔄 รีเฟรชโทเค็นอัตโนมัติ
|
||||
|
||||
- OAuth token รีเฟรชอัตโนมัติก่อนหมดอายุ
|
||||
- ไม่ต้องยืนยันตัวตนใหม่ด้วยตนเอง
|
||||
- ประสบการณ์ที่ราบรื่นบนผู้ให้บริการทุกราย
|
||||
|
||||
### 🎨 Combo กำหนดเอง
|
||||
|
||||
- สร้างการผสมผสานโมเดลไม่จำกัด
|
||||
- ผสมชั้นสมาชิก, ราคาถูกและฟรี
|
||||
- ตั้งชื่อ combo เพื่อเข้าถึงง่าย
|
||||
- แชร์ combo ระหว่างอุปกรณ์ด้วยการซิงค์คลาวด์
|
||||
|
||||
### 📝 บันทึก Request
|
||||
|
||||
- เปิดโหมด debug เพื่อดู log request/response ครบถ้วน
|
||||
- ติดตาม API calls, headers และ payloads
|
||||
- แก้ไขปัญหาการเชื่อมต่อ
|
||||
- Export log เพื่อวิเคราะห์
|
||||
|
||||
### 💾 ซิงค์คลาวด์
|
||||
|
||||
- ซิงค์ผู้ให้บริการ, combo และการตั้งค่าระหว่างอุปกรณ์
|
||||
- ซิงค์เบื้องหลังอัตโนมัติ
|
||||
- จัดเก็บข้อมูลแบบเข้ารหัสปลอดภัย
|
||||
- เข้าถึงการตั้งค่าของคุณจากทุกที่
|
||||
|
||||
### 📊 วิเคราะห์การใช้งาน
|
||||
|
||||
- ติดตามการใช้โทเค็นตามผู้ให้บริการและโมเดล
|
||||
- ประมาณการค่าใช้จ่ายและแนวโน้มค่าใช้จ่าย
|
||||
- รายงานและข้อมูลเชิงลึกรายเดือน
|
||||
- ปรับแต่งค่าใช้จ่าย AI ของคุณ
|
||||
|
||||
### 🌐 Deploy ได้ทุกที่
|
||||
|
||||
- 💻 **Localhost** - ค่าเริ่มต้น, ทำงานออฟไลน์
|
||||
- ☁️ **VPS/Cloud** - แชร์ระหว่างอุปกรณ์
|
||||
- 🐳 **Docker** - Deploy ด้วยคำสั่งเดียว
|
||||
- 🚀 **Cloudflare Workers** - เครือข่าย edge ทั่วโลก
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
## 💰 สรุปราคา
|
||||
|
||||
| ประเภท | ผู้ให้บริการ | ค่าใช้จ่าย | รีเซ็ตโควตา | ดีที่สุดสำหรับ |
|
||||
|------|----------|------|-------------|----------|
|
||||
| **💳 สมาชิก** | Claude Code (Pro) | $20/เดือน | 5 ชม. + รายสัปดาห์ | มีสมาชิกอยู่แล้ว |
|
||||
| | Codex (Plus/Pro) | $20-200/เดือน | 5 ชม. + รายสัปดาห์ | ผู้ใช้ OpenAI |
|
||||
| | GitHub Copilot | $10-19/เดือน | รายเดือน | ผู้ใช้ GitHub |
|
||||
| **💰 ราคาถูก** | GLM-4.7 | $0.6/1M | ทุกวัน 10:00 AM | สำรองงบ |
|
||||
| | MiniMax M2.1 | $0.2/1M | 5 ชั่วโมง | ถูกที่สุด |
|
||||
| | Kimi K2 | $9/เดือน คงที่ | 10M โทเค็น/เดือน | ค่าใช้จ่ายที่คาดเดาได้ |
|
||||
| **🆓 ฟรี** | Kiro | $0 | ไม่จำกัด | Claude ฟรี |
|
||||
| | OpenCode Free | $0 | ไม่จำกัด | ไม่ต้องยืนยันตัวตน |
|
||||
| | Vertex AI | $0 | $300 เครดิตฟรี | Gemini 3 Pro |
|
||||
|
||||
**💡 เคล็ดลับ:** เริ่มจาก combo Kiro (Claude ฟรีไม่จำกัด) + OpenCode Free (ไม่ต้องยืนยันตัวตน) = ค่าใช้จ่าย $0!
|
||||
|
||||
---
|
||||
|
||||
## 🎯 กรณีการใช้งาน
|
||||
|
||||
### กรณีที่ 1: "ฉันมีสมาชิก Claude Pro"
|
||||
|
||||
**ปัญหา:** โควตาหมดอายุโดยไม่ได้ใช้, Rate Limit ตอนเขียนโค้ดหนัก
|
||||
|
||||
**วิธีแก้:**
|
||||
```
|
||||
Combo: "maximize-claude"
|
||||
1. cc/claude-opus-4-6 (ใช้สมาชิกเต็มที่)
|
||||
2. glm/glm-4.7 (สำรองราคาถูกเมื่อโควตาหมด)
|
||||
3. kr/claude-sonnet-4.5 (fallback ฉุกเฉินฟรี)
|
||||
|
||||
ค่าใช้จ่ายรายเดือน: $20 (สมาชิก) + ~$5 (สำรอง) = $25 รวม
|
||||
เทียบกับ $20 + ชนโควตา = ผิดหวัง
|
||||
```
|
||||
|
||||
### กรณีที่ 2: "ฉันต้องการค่าใช้จ่ายเป็นศูนย์"
|
||||
|
||||
**ปัญหา:** ไม่มีงบจ่ายสมาชิก, ต้องการ AI เขียนโค้ดที่เชื่อถือได้
|
||||
|
||||
**วิธีแก้:**
|
||||
```
|
||||
Combo: "free-forever"
|
||||
1. kr/claude-sonnet-4.5 (Claude ฟรีไม่จำกัด)
|
||||
2. oc/* (OpenCode Free ไม่ต้องยืนยันตัวตน)
|
||||
3. vertex/gemini-3.1-pro-preview (Vertex $300 เครดิตฟรี)
|
||||
|
||||
ค่าใช้จ่ายรายเดือน: $0
|
||||
คุณภาพ: โมเดลพร้อมใช้งาน production
|
||||
```
|
||||
|
||||
### กรณีที่ 3: "ฉันต้องเขียนโค้ด 24/7 ไม่มีสะดุด"
|
||||
|
||||
**ปัญหา:** Deadline, ไม่สามารถหยุดทำงานได้
|
||||
|
||||
**วิธีแก้:**
|
||||
```
|
||||
Combo: "always-on"
|
||||
1. cc/claude-opus-4-6 (คุณภาพดีที่สุด)
|
||||
2. cx/gpt-5.5 (สมาชิกที่สอง)
|
||||
3. glm/glm-5.1 (ราคาถูก, รีเซ็ตทุกวัน)
|
||||
4. minimax/MiniMax-M2.7 (ถูกที่สุด, รีเซ็ต 5 ชม.)
|
||||
5. kr/claude-sonnet-4.5 (ฟรีไม่จำกัด)
|
||||
|
||||
ผลลัพธ์: 5 ชั้น fallback = ไม่มีเวลาหยุดทำงาน
|
||||
ค่าใช้จ่ายเดือน: $20-200 (สมาชิก) + $10-20 (สำรอง)
|
||||
```
|
||||
|
||||
### กรณีที่ 4: "ฉันต้องการ AI ฟรีใน OpenClaw"
|
||||
|
||||
**ปัญหา:** ต้องการ AI assistant ในแอปพลิเคชันแชท (WhatsApp, Telegram, Slack...), ฟรีทั้งหมด
|
||||
|
||||
**วิธีแก้:**
|
||||
```
|
||||
Combo: "openclaw-free"
|
||||
1. kr/claude-sonnet-4.5 (Claude ฟรีไม่จำกัด)
|
||||
2. kr/glm-5 (GLM ฟรีไม่จำกัด)
|
||||
3. kr/MiniMax-M2.5 (MiniMax ฟรีไม่จำกัด)
|
||||
|
||||
ค่าใช้จ่ายรายเดือน: $0
|
||||
เข้าถึงผ่าน: WhatsApp, Telegram, Slack, Discord, iMessage, Signal...
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ❓ คำถามที่พบบ่อย
|
||||
|
||||
<details>
|
||||
<summary><b>💳 9Router เก็บเงินฉันหรือไม่?</b></summary>
|
||||
|
||||
**ไม่.** 9Router เป็นซอฟต์แวร์ฟรีแบบ open source ที่ทำงานบนเครื่องของคุณเอง มันไม่มีวันเรียกเก็บเงินจากคุณ
|
||||
|
||||
**คุณจ่ายเงินเฉพาะ:**
|
||||
- ✅ **ผู้ให้บริการสมาชิก** (Claude Code $20/เดือน, Codex $20-200/เดือน) → จ่ายตรงให้พวกเขาบนเว็บไซต์ของพวกเขา
|
||||
- ✅ **ผู้ให้บริการราคาถูก** (GLM, MiniMax) → จ่ายตรงให้พวกเขา, 9Router แค่เลือกเส้นทางคำขอของคุณ
|
||||
- ❌ **ตัว 9Router เอง** → **ไม่มีวันเรียกเก็บเงินใดๆ ทั้งสิ้น**
|
||||
|
||||
9Router เป็น proxy/router ท้องถิ่น มันไม่มีบัตรเครดิตของคุณ, ไม่สามารถส่งใบแจ้งหนี้ได้ และไม่มีระบบชำระเงิน เป็นซอฟต์แวร์ฟรีทั้งหมด
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><b>🆓 ผู้ให้บริการฟรีไม่จำกัดจริงหรือ?</b></summary>
|
||||
|
||||
**จริง!** ผู้ให้บริการที่ระบุว่าฟรี (Kiro, OpenCode Free, Vertex) ไม่จำกัดจริงๆ **ไม่มีค่าใช้จ่ายแอบแฝง**
|
||||
|
||||
นี่คือบริการฟรีที่บริษัทต่างๆ ให้บริการ:
|
||||
- **Kiro**: Claude ฟรีไม่จำกัดผ่าน AWS Builder ID
|
||||
- **OpenCode Free**: ไม่ต้องยืนยันตัวตน, ดึงโมเดลอัตโนมัติ
|
||||
- **Vertex AI**: $300 เครดิตฟรีสำหรับ Gemini 3 Pro
|
||||
|
||||
9Router แค่เลือกเส้นทางคำขอของคุณไปหาพวกเขา — ไม่มี "กับดัก" หรือการเรียกเก็บเงินในอนาคต เป็นบริการที่ฟรีจริงๆ และ 9Router ทำให้ใช้งานง่ายด้วยการรองรับ fallback
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><b>💰 ทำอย่างไรเพื่อลดค่าใช้จ่าย AI จริงของฉัน?</b></summary>
|
||||
|
||||
**กลยุทธ์ Free First:**
|
||||
|
||||
1. **เริ่มจาก combo ฟรี 100%:**
|
||||
```
|
||||
1. kr/claude-sonnet-4.5 (Claude ฟรีไม่จำกัด)
|
||||
2. oc/* (OpenCode Free ไม่ต้องยืนยันตัวตน)
|
||||
3. vertex/gemini-3.1-pro-preview ($300 เครดิตฟรี)
|
||||
```
|
||||
**ค่าใช้จ่าย: $0/เดือน**
|
||||
|
||||
2. **เพิ่มสำรองราคาถูก** เมื่อจำเป็นเท่านั้น:
|
||||
```
|
||||
4. glm/glm-5.1 ($0.6/1M โทเค็น)
|
||||
```
|
||||
**ค่าใช้จ่ายเพิ่มเติม:** จ่ายเฉพาะที่ใช้
|
||||
|
||||
3. **ใช้ผู้ให้บริการสมาชิก** ก็ต่อเมื่อมีอยู่แล้ว:
|
||||
- 9Router ช่วยเพิ่มประสิทธิภาพมูลค่าของพวกเขาผ่านการติดตามโควตา
|
||||
|
||||
**ผลลัพธ์:** ผู้ใช้ส่วนใหญ่สามารถทำงานที่ $0/เดือน โดยใช้เฉพาะชั้นฟรี!
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
## 🐛 การแก้ไขปัญหา
|
||||
|
||||
**"Language model did not provide messages"**
|
||||
- โควตาผู้ให้บริการหมด → ตรวจสอบตัวติดตามโควตาในแดชบอร์ด
|
||||
- วิธีแก้: ใช้ combo fallback หรือสลับไปชั้นที่ถูกกว่า
|
||||
|
||||
**Rate Limiting**
|
||||
- สมาชิกหมดโควตา → Fallback ไป GLM/MiniMax
|
||||
- เพิ่ม combo: `cc/claude-opus-4-6 → glm/glm-5.1 → kr/claude-sonnet-4.5`
|
||||
|
||||
**OAuth Token หมดอายุ**
|
||||
- รีเฟรชอัตโนมัติโดย 9Router
|
||||
- ถ้าปัญหายังคงอยู่: แดชบอร์ด → ผู้ให้บริการ → เชื่อมต่อใหม่
|
||||
|
||||
**ค่าใช้จ่ายสูง**
|
||||
- เปิดใช้ RTK ใน แดชบอร์ด → ตั้งค่า Endpoint (เปิดเป็นค่าเริ่มต้น, ประหยัด 20-40% โทเค็น)
|
||||
- ตรวจสอบสถิติการใช้งานในแดชบอร์ด
|
||||
- สลับโมเดลหลักไป GLM/MiniMax
|
||||
- ใช้ชั้นฟรี (Kiro, OpenCode Free, Vertex) สำหรับงานที่ไม่สำคัญ
|
||||
|
||||
**แดชบอร์ดเปิดผิดพอร์ต**
|
||||
- ตั้ง `PORT=20128` และ `NEXT_PUBLIC_BASE_URL=http://localhost:20128`
|
||||
|
||||
**ล็อกอินครั้งแรกไม่ทำงาน**
|
||||
- ตรวจสอบ `INITIAL_PASSWORD` ใน `.env`
|
||||
- ถ้ายังไม่ตั้งค่า รหัสผ่านสำรองคือ `123456`
|
||||
|
||||
**ไม่มี request log ใต้ `logs/`**
|
||||
- ตั้ง `ENABLE_REQUEST_LOGS=true`
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Tech Stack
|
||||
|
||||
- **Runtime**: Node.js 20+
|
||||
- **Framework**: Next.js 16
|
||||
- **UI**: React 19 + Tailwind CSS 4
|
||||
- **Database**: SQLite (better-sqlite3 / node:sqlite / sql.js fallback)
|
||||
- **Streaming**: Server-Sent Events (SSE)
|
||||
- **Auth**: OAuth 2.0 (PKCE) + JWT + API Keys
|
||||
|
||||
---
|
||||
|
||||
## 📝 API Reference
|
||||
|
||||
### Chat Completions
|
||||
|
||||
```bash
|
||||
POST http://localhost:20128/v1/chat/completions
|
||||
Authorization: Bearer your-api-key
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"model": "cc/claude-opus-4-6",
|
||||
"messages": [
|
||||
{"role": "user", "content": "เขียนฟังก์ชันเพื่อ..."}
|
||||
],
|
||||
"stream": true
|
||||
}
|
||||
```
|
||||
|
||||
### List Models
|
||||
|
||||
```bash
|
||||
GET http://localhost:20128/v1/models
|
||||
Authorization: Bearer your-api-key
|
||||
|
||||
→ คืนค่าโมเดลทั้งหมด + combo ในรูปแบบ OpenAI
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📧 สนับสนุน
|
||||
|
||||
- **เว็บไซต์**: [9router.com](https://9router.com)
|
||||
- **GitHub**: [github.com/decolua/9router](https://github.com/decolua/9router)
|
||||
- **Issues**: [github.com/decolua/9router/issues](https://github.com/decolua/9router/issues)
|
||||
|
||||
---
|
||||
|
||||
## 👥 ผู้มีส่วนร่วม
|
||||
|
||||
ขอขอบคุณผู้มีส่วนร่วมทุกคนที่ช่วยทำให้ 9Router ดียิ่งขึ้น!
|
||||
|
||||
[](https://github.com/decolua/9router/graphs/contributors)
|
||||
|
||||
---
|
||||
|
||||
## 📄 ลิขสิทธิ์
|
||||
|
||||
MIT License - ดู [LICENSE](../LICENSE) สำหรับรายละเอียด
|
||||
|
||||
---
|
||||
|
||||
<div align="center">
|
||||
<sub>สร้างด้วย ❤️ สำหรับนักพัฒนาที่เขียนโค้ด 24/7</sub>
|
||||
</div>
|
||||
@@ -1,21 +1,15 @@
|
||||
Dưới đây là bản dịch tiếng Việt của tài liệu Markdown, giữ nguyên toàn bộ cú pháp và cấu trúc kỹ thuật.
|
||||
|
||||
<div align="center">
|
||||
<img src="../images/9router.png?1" alt="Bảng điều khiển 9Router" width="800"/>
|
||||
|
||||
# 9Router - Free AI Router
|
||||
# 9Router - Free AI Router & Token Saver
|
||||
|
||||
**Không bao giờ ngừng code. Tự động định tuyến tới các mô hình AI MIỄN PHÍ & giá rẻ với cơ chế dự phòng thông minh.**
|
||||
**Không bao giờ ngừng code. Tiết kiệm 20-40% token với RTK + tự động dự phòng sang các mô hình AI MIỄN PHÍ & giá rẻ.**
|
||||
|
||||
**Nhà cung cấp AI Miễn cho OpenClaw.**
|
||||
|
||||
<p align="center">
|
||||
<img src="../public/providers/openclaw.png" alt="OpenClaw" width="80"/>
|
||||
</p>
|
||||
**Kết nối tất cả công cụ AI Code (Claude Code, Codex, Cursor, Cline, Copilot, Antigravity...) tới 40+ Nhà cung cấp AI & 100+ Mô hình.**
|
||||
|
||||
[](https://www.npmjs.com/package/9router)
|
||||
[](https://www.npmjs.com/package/9router)
|
||||
[](https://github.com/decolua/9router/blob/main/LICENSE)
|
||||
[](https://github.com/decolua/9router/blob/main/LICENSE)
|
||||
|
||||
[🚀 Bắt đầu nhanh](#-quick-start) • [💡 Tính năng](#-key-features) • [📖 Cài đặt](#-setup-guide) • [🌐 Website](https://9router.com)
|
||||
</div>
|
||||
@@ -24,19 +18,21 @@ Dưới đây là bản dịch tiếng Việt của tài liệu Markdown, giữ
|
||||
|
||||
## 🤔 Tại sao chọn 9Router?
|
||||
|
||||
**Ngừng lãng phí tiền bạc và gặp phải giới hạn:**
|
||||
**Ngừng lãng phí tiền bạc, token và không bao giờ lo chạm giới hạn (rate limit):**
|
||||
|
||||
- ❌ Hạn mức gói đăng ký hết hạn mỗi tháng mà không dùng hết
|
||||
- ❌ Giới hạn tốc độ (rate limit) ngăn bạn giữaừng khi code
|
||||
- ❌ Các API đắt đỏ ($20-50/tháng cho mỗi nhà cung cấp)
|
||||
- ❌ Phải chuyển đổi thủ công giữa các nhà cung cấp
|
||||
- ❌ Giới hạn tốc độ (rate limit) làm gián đoạn công việc mid-coding
|
||||
- ❌ Kết quả của công cụ (git diff, grep, ls...) ngốn rất nhiều token
|
||||
- ❌ Chi phí API đắt đỏ ($20-50/tháng cho từng nhà cung cấp)
|
||||
- ❌ Phải chuyển đổi thủ công giữa các nhà cung cấp AI
|
||||
|
||||
**9Router giải quyết vấn đề này:**
|
||||
|
||||
- ✅ **Tối đa hóa gói đăng ký** - Theo dõi hạn mức, sử dụng từng bit trước khi reset
|
||||
- ✅ **Tự động dự phòng** - Gói đăng ký → Giá rẻ → Miễn phí, thời gian chết bằng không
|
||||
- ✅ **Đa tài khoản** - Vòng tròn (round-robin) các tài khoản của mỗi nhà cung cấp
|
||||
- ✅ **Phổ quát** - Hoạt động với Claude Code, Codex, Gemini CLI, Cursor, Cline, bất kỳ công cụ CLI nào
|
||||
- ✅ **RTK Token Saver** - Tự động nén nội dung `tool_result`, tiết kiệm 20-40% token trên mỗi request
|
||||
- ✅ **Tối đa hóa gói đăng ký** - Theo dõi hạn mức, tận dụng triệt để trước khi reset
|
||||
- ✅ **Tự động dự phòng (Auto Fallback)** - Gói đăng ký → Giá rẻ → Miễn phí, không lo downtime
|
||||
- ✅ **Đa tài khoản (Multi-account)** - Xoay vòng (round-robin) các tài khoản cho mỗi nhà cung cấp
|
||||
- ✅ **Phổ quát (Universal)** - Hoạt động với Claude Code, Codex, Cursor, Cline, Antigravity và mọi công cụ CLI
|
||||
|
||||
---
|
||||
|
||||
@@ -44,25 +40,26 @@ Dưới đây là bản dịch tiếng Việt của tài liệu Markdown, giữ
|
||||
|
||||
```
|
||||
┌─────────────┐
|
||||
│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...)
|
||||
│ Tool │
|
||||
│ Công cụ │ (Claude Code, Codex, OpenClaw, Cursor, Cline, Antigravity...)
|
||||
│ CLI AI │
|
||||
└──────┬──────┘
|
||||
│ http://localhost:20128/v1
|
||||
↓
|
||||
┌────────────────────────────────────────┐
|
||||
│ 9Router (Smart Router) │
|
||||
│ • Format translation (OpenAI ↔ Claude) │
|
||||
│ • Quota tracking │
|
||||
│ • Auto token refresh │
|
||||
└──────┬──────────────────────────────────┘
|
||||
┌─────────────────────────────────────────────┐
|
||||
│ 9Router (Smart Router) │
|
||||
│ • RTK Token Saver (nén tool_result token) │
|
||||
│ • Dịch chuyển định dạng (OpenAI ↔ Claude) │
|
||||
│ • Quota tracking (theo dõi hạn mức) │
|
||||
│ • Tự động làm mới OAuth Token │
|
||||
└──────┬──────────────────────────────────────┘
|
||||
│
|
||||
├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI
|
||||
│ ↓ quota exhausted
|
||||
├─→ [Tier 2: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M)
|
||||
│ budget limit
|
||||
└─→ [Tier 3: FREE] iFlow, Qwen, Kiro (unlimited)
|
||||
├─→ [Tier 1: GÓI ĐĂNG KÝ] Claude Code, Codex, GitHub Copilot
|
||||
│ ↓ hết hạn mức quota
|
||||
├─→ [Tier 2: GIÁ RẺ] GLM ($0.6/1M), MiniMax ($0.2/1M)
|
||||
│ ↓ chạm ngân sách
|
||||
└─→ [Tier 3: MIỄN PHÍ] Kiro AI, OpenCode Free, Vertex AI ($300 credits)
|
||||
|
||||
Result: Never stop coding, minimal cost
|
||||
Kết quả: Không bao giờ ngừng code, chi phí tối thiểu + tiết kiệm 20-40% token qua RTK
|
||||
```
|
||||
|
||||
---
|
||||
@@ -76,26 +73,26 @@ npm install -g 9router
|
||||
9router
|
||||
```
|
||||
|
||||
🎉 Bảng điều khiển mở tại `http://localhost:20128`
|
||||
🎉 Bảng điều khiển (Dashboard) sẽ tự động mở tại `http://localhost:20128`
|
||||
|
||||
**2. Kết nối nhà cung cấp MIỄN PHÍ (không cần đăng ký):**
|
||||
|
||||
Bảng điều khiển → Providers -> Kết nối **ude Code** hoặc **Antigravity** -> Đăng nhập OAuth -> Xong!
|
||||
Bảng điều khiển → Providers → Kết nối **Kiro AI** (~50 credits/tháng miễn phí: Claude 4.5 + GLM-5 + MiniMax) hoặc **OpenCode Free** (không cần auth) → Xong!
|
||||
|
||||
**3. Sử dụng trong công cụ CLI của bạn:**
|
||||
|
||||
```
|
||||
Cài đặt Claude Code/Codex/Gemini CLI/OpenClaw/Cursor/Cline:
|
||||
Cài đặt Claude Code/Codex/OpenClaw/Cursor/Cline/Antigravity:
|
||||
Endpoint: http://localhost:20128/v1
|
||||
API Key: [sao chép từ bảng điều khiển]
|
||||
Model: if/kimi-k2-thinking
|
||||
Model: kr/claude-sonnet-4.5
|
||||
```
|
||||
|
||||
**Xong rồi!** Bắt đầu code với các mô hình AI MIỄN PHÍ.
|
||||
**Thế là xong!** Bắt đầu code ngay với các mô hình AI MIỄN PHÍ.
|
||||
|
||||
**Phương án khác: chạy từ nguồn (k lưu trữ này):**
|
||||
**Phương án khác: chạy từ mã nguồn (repository này):**
|
||||
|
||||
Gói kho lưu trữ này là riêng tư (`9router-app`), vì vậy việc thực thi nguồn/Docker là đường dẫn phát triển cục bộ dự kiến.
|
||||
Gói kho lưu trữ này là riêng tư (`9router-app`), vì vậy việc chạy từ nguồn/Docker là cách phát triển cục bộ mặc định.
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
@@ -111,11 +108,12 @@ PORT=20128 HOSTNAME=0.0.0.0 NEXT_PUBLIC_BASE_URL=http://localhost:20128 npm run
|
||||
```
|
||||
|
||||
URL mặc định:
|
||||
- Bảng điều khiển: `http://localhost:20128/dashboard`
|
||||
- Bảng điều khiển Dashboard: `http://localhost:20128/dashboard`
|
||||
- API tương thích OpenAI: `http://localhost:20128/v1`
|
||||
|
||||
---
|
||||
|
||||
|
||||
## 🎥 Hướng dẫn Video
|
||||
|
||||
<div align="center">
|
||||
|
||||
@@ -42,25 +42,26 @@
|
||||
|
||||
```
|
||||
┌─────────────┐
|
||||
│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...)
|
||||
│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline, Antigravity...)
|
||||
│ Tool │
|
||||
└──────┬──────┘
|
||||
│ http://localhost:201281
|
||||
│ http://localhost:20128/v1
|
||||
↓
|
||||
┌─────────────────────────────────────────┐
|
||||
│ 9Router (Smart Router) │
|
||||
│ • Format translation (OpenAI ↔ Claude) │
|
||||
│ • Quota tracking │
|
||||
│ • Auto token refresh │
|
||||
└──────┬──────────────────────────────────┘
|
||||
┌─────────────────────────────────────────────┐
|
||||
│ 9Router (Smart Router) │
|
||||
│ • RTK Token Saver (节省 20-40% Token) │
|
||||
│ • 格式转换 (OpenAI ↔ Claude) │
|
||||
│ • 配额追踪 (Quota tracking) │
|
||||
│ • 自动刷新 OAuth Token │
|
||||
└──────┬──────────────────────────────────────┘
|
||||
│
|
||||
├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI
|
||||
│ ↓ quota exhausted
|
||||
├─→ [Tier 2: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M)
|
||||
│ ↓ budget limit
|
||||
└─→ [Tier 3: FREE] iFlow, Qwen, Kiro (unlimited)
|
||||
├─→ [Tier 1: 订阅] Claude Code, Codex, GitHub Copilot
|
||||
│ ↓ 配额用尽
|
||||
├─→ [Tier 2: 低价] GLM ($0.6/1M), MiniMax ($0.2/1M)
|
||||
│ ↓ 触及预算上限
|
||||
└─→ [Tier 3: 免费] Kiro AI, OpenCode Free, Vertex AI ($300 credits)
|
||||
|
||||
Result: Never stop coding, minimal cost
|
||||
结果:永不停歇的编程体验,最低成本 + 通过 RTK 节省 20-40% Token
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user