Skip to content

Repository files navigation

πŸš€ qwen2API - Self-Hosted Qwen API Gateway

Go 1.24+ React 19 Multi-Protocol API WAF Bypass Termux & Linux License GPL-3.0

Gateway AI mandiri berkinerja tinggi (High-Performance Self-Hosted Gateway) yang mengonversi kemampuan resmi Qwen AI menjadi API standar yang kompatibel penuh dengan OpenAI, Anthropic, dan Google Gemini.

Dilengkapi sistem Bypass Alibaba Cloud WAF (RGV587_ERROR) berbasis protokol Android APK resmi, dukungan Tool Calling / Function Calling untuk AI Coding Agent, serta WebUI modern berbahasa Indonesia yang ringan dan siap jalan di Android Termux maupun Server VPS Linux.


🌟 Fitur Utama

  • πŸ›‘οΈ Bypass Alibaba Cloud WAF (Anti RGV587_ERROR): Mengintegrasikan protokol resmi Android APK (ai.qwenlm.chat.android), signature token app_waf, dan ID perangkat unik dinamis. Permintaan terbebas dari blokir tantangan JavaScript slider captcha.
  • πŸ”‘ Login Otomatis Email & Sandi: Login langsung ke server Qwen (/api/v2/auths/signin) dengan enkripsi kata sandi SHA-256. Tidak perlu repot membuka DevTools / F12 untuk menyalin token sesi secara manual (opsi token manual tetap tersedia untuk login Google OAuth).
  • πŸ› οΈ AI Agent & Tool Calling Support (100% Works): Kompatibel penuh dengan spesifikasi Function Calling OpenAI (tools & tool_calls) dan Anthropic (tool_use). Teruji sukses untuk autonomous agent seperti Cline, Roo Code, Claude Code, Cursor, dan LangChain.
  • πŸ–ΌοΈ Image & Video Lab (WanX Media): Mendukung pembuatan gambar AI (/v1/images/generations) dan video AI (/v1/videos/generations) dengan built-in Media Proxy dan kebijakan no-referrer, mencegah galat 403 denied by Referer ACL dari CDN Alibaba Cloud.
  • πŸ”„ Account Pool & Rotasi Otomatis: Manajemen multi-akun dengan auto-failover, pelacakan rate limit terpisah (chat, image, video), dan sistem sesi pra-hangat (pre-warm pool) untuk respons instan.
  • 🎨 WebUI Dashboard Modern: Dashboard berbasis React 19 + Tailwind CSS + Lucide Icons yang bersih, responsif, dan 100% berbahasa Indonesia untuk mengelola akun, API key, konfigurasi runtime, dan uji coba interaktif.
  • πŸ“± Termux & VPS Native: Backend ditulis murni dalam bahasa Go dengan penggunaan RAM sangat minim (< 50MB) tanpa ketergantungan browser headless berat (Playwright/Chromium) untuk operasional API harian.

πŸ—οΈ Arsitektur & Alur Kerja

[AI Client / Agent (Cline, Roo Code, Chatbox, SDK)]
                       β”‚
                       β–Ό  (OpenAI / Anthropic / Gemini Format)
             [qwen2API Gateway :7860]
  β”œβ”€β”€ 1. Autentikasi API Key Klien & Rate Limiter
  β”œβ”€β”€ 2. Pool Manager: Pilih Akun Sehat (Round-Robin)
  β”œβ”€β”€ 3. Injeksi Skema Tool Calling & System Prompt
  └── 4. Format Protokol Android APK Resmi:
         β”œβ”€β”€ User-Agent: Dalvik/2.1.0 ... AliApp(QWENCHAT/2.5.1)
         β”œβ”€β”€ X-Platform: android | source: app
         β”œβ”€β”€ Header Keamanan: app_waf + x-device-id
         └── Cookie Jar Sesi Otomatis (acw_tc, dll.)
                       β”‚
                       β–Ό  (Direct HTTPS Request - Bebas WAF Slider)
           [Alibaba Cloud Qwen Upstream Server]
                       β”‚
                       β–Ό  (Server-Sent Events / SSE Stream)
             [qwen2API Gateway :7860]
  β”œβ”€β”€ 1. Parser Tool Calling & Ekstraksi Argumen JSON
  β”œβ”€β”€ 2. Streaming Token Respon ke Klien
  └── 3. Sanitasi Media CDN via Internal Media Proxy
                       β”‚
                       β–Ό
[AI Client / Agent Menerima Respons / Eksekusi Tool Sempurna! πŸŽ‰]

⚑ Panduan Instalasi Cepat

1. Instalasi di HP Android (Termux)

# Update paket Termux dan instal dependensi
pkg update -y && pkg install git golang nodejs-lts -y

# Clone repositori
git clone https://github.com/Cxslin/qwen2API.git
cd qwen2API

# Jalankan build backend dan frontend otomatis
cd frontend && npm install && npm run build && cd ..
cd backend && go build -trimpath -ldflags="-s -w" -o ../bin/qwen2api-backend . && cd ..

# Berikan izin eksekusi pada skrip manajemen
chmod +x start.sh stop.sh update.sh

2. Jalankan Layanan

# Menjalankan di background (Daemon)
./start.sh -d

# Memeriksa status log
tail -f logs/output.log

# Menghentikan layanan
./stop.sh

Akses Web Dashboard melalui browser di: http://localhost:7860 (atau http://IP_HP_ANDA:7860).

3. Cara Update ke Versi Terbaru πŸ”„

Jika terdapat pembaruan fitur atau perbaikan di repositori GitHub, Anda dapat memperbarui proyek dengan sangat mudah:

Opsi A: Menggunakan Skrip Otomatis (Rekomendasi)

./update.sh

Skrip ini akan otomatis menghentikan server lama, menarik commit terbaru dari GitHub, mengompilasi ulang frontend & backend, lalu menyalakan kembali layanan.

Opsi B: Langkah Manual

# 1. Hentikan server yang sedang berjalan
./stop.sh

# 2. Ambil update terbaru dari GitHub
git pull origin main

# 3. Kompilasi ulang frontend & backend
cd frontend && npm install && npm run build && cd ..
cd backend && go build -trimpath -ldflags="-s -w" -o ../bin/qwen2api-backend . && cd ..

# 4. Jalankan kembali di background
./start.sh -d

πŸ”‘ Konfigurasi & Login Akun

  1. Buka WebUI di browser: http://localhost:7860.
  2. Masukkan Admin Key default: admin123456 (dapat diubah di menu Pengaturan Sistem).
  3. Buka tab Manajemen Akun:
    • Metode 1 (Rekomendasi): Masukkan Email dan Kata Sandi akun Qwen Anda, lalu klik Simpan / Login Akun. Sistem akan login otomatis via API resmi.
    • Metode 2 (Google OAuth): Jika mendaftar via Google Sign-In, salin token dari Local Storage browser dan tempel di kolom token manual.
  4. Buka tab API Key untuk membuat key akses baru yang akan digunakan di aplikasi AI Agent Anda.

🌐 Endpoint API Utama

Semua endpoint kompatibel dengan format standar OpenAI, Anthropic, dan Google Gemini:

Protocol Method Endpoint Deskripsi Auth
OpenAI POST /v1/chat/completions Chat Completions (Stream & Non-Stream, Tool Calling) Bearer <KEY>
OpenAI GET /v1/models Daftar semua model yang tersedia Bearer <KEY>
OpenAI GET /v1/models/{model} Detail kapabilitas model spesifik Bearer <KEY>
OpenAI POST /v1/images/generations Pembuatan Gambar AI (WanX 2.1) Bearer <KEY>
OpenAI POST /v1/videos/generations Pembuatan Video AI (WanX 2.1) Bearer <KEY>
Anthropic POST /v1/messages Format Pesan Anthropic Claude (tool_use) x-api-key
Gemini POST /v1beta/models/{model}:generateContent Format Google Gemini API x-goog-api-key
Media GET /api/media/proxy?url={url} Media Proxy Internal (Anti-403 Referer ACL) Bebas
Sistem GET /healthz & /readyz Healthcheck gateway & pool akun Bebas

πŸ€– Integrasi AI Agent & Tools

1. Integrasi dengan Cline / Roo Code (VS Code Extension)

  • API Provider: OpenAI Compatible
  • Base URL: http://127.0.0.1:7860/v1
  • API Key: API Key dari menu API Key di WebUI (misal: sk-... atau admin123456)
  • Model ID: qwen3.6-plus atau qwen3.7-plus

2. Contoh Penggunaan via Python (OpenAI SDK)

from openai import OpenAI

client = OpenAI(
    base_url="http://127.0.0.1:7860/v1",
    api_key="admin123456"
)

# 1. Chat Biasa
response = client.chat.completions.create(
    model="qwen3.6-plus",
    messages=[{"role": "user", "content": "Halo! Jelaskan komputasi kuantum secara singkat."}]
)
print(response.choices[0].message.content)

# 2. Pemanggilan Tool (Function Calling)
tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Cek cuaca terkini",
        "parameters": {
            "type": "object",
            "properties": {"location": {"type": "string"}},
            "required": ["location"]
        }
    }
}]

tool_response = client.chat.completions.create(
    model="qwen3.6-plus",
    messages=[{"role": "user", "content": "Berapa suhu di Jakarta sekarang?"}],
    tools=tools
)
print("Tool Calls:", tool_response.choices[0].message.tool_calls)

3. Contoh cURL Chat Completions

curl -X POST http://127.0.0.1:7860/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer admin123456" \
  -d '{
    "model": "qwen3.6-plus",
    "messages": [{"role": "user", "content": "Ceritakan lelucon lucu!"}],
    "stream": false
  }'

βš™οΈ Variabel Lingkungan (.env)

Variabel Default Deskripsi
PORT 7860 Port listen server gateway
ADMIN_KEY admin123456 Kunci master otorisasi WebUI & API
MAX_RETRIES 3 Jumlah percobaan ulang saat kegagalan upstream
CHAT_ID_POOL_TARGET 5 Jumlah sesi chat pra-hangat per akun
UPSTREAM_STREAM_IDLE_TIMEOUT_SECONDS 180 Batas waktu idle streaming (detik)

πŸ™ Ucapan Terima Kasih & Sumber Referensi

Proyek ini dibangun dan dikembangkan lebih lanjut berdasarkan riset serta fondasi luar biasa dari:

  • 🌟 YuJunZhiXue/qwen2API β€” Fondasi awal arsitektur Go backend gateway, adapter protokol multi-format (OpenAI, Anthropic, Gemini), dan sistem pool akun.
  • πŸ“± Qwen Android APK Wrapper (qwen.mjs) oleh Shannz (KitsuLabs) β€” Referensi implementasi protokol resmi Android APK (ai.qwenlm.chat.android), signature token WAF app_waf, serta alur login langsung kata sandi SHA-256 (/api/v2/auths/signin).

πŸ“„ Lisensi

Proyek ini didistribusikan di bawah lisensi GNU General Public License v3.0 (GPL-3.0). Bebas digunakan, dipelajari, dan dikembangkan untuk kebutuhan personal maupun riset mandiri.

About

πŸš€ Self-Hosted Qwen API Gateway (OpenAI, Anthropic, Gemini Compatible) with WAF Bypass & Tool Calling Support (Termux & VPS)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages