Skip to content

About

freebuff2api

Resources

Stars

0 stars

Watchers

0 watching

Forks

Β 
Β 

Latest commit

Β 

History

7 Commits

Folders and files

Repository files navigation

Python FastAPI React TypeScript Tailwind CSS Vercel

πŸš€ Freebuff2API

Mengubah model AI gratis Freebuff menjadi format API OpenAI Chat Completions standar

Fitur Utama β€’ Mulai Cepat β€’ Cara Deploy β€’ Dokumentasi API β€’ Panel Admin β€’ Daftar Model β€’ FAQ


🌟 Fitur Utama

Fitur Keterangan
πŸ”„ Kompatibel OpenAI Sepenuhnya kompatibel dengan endpoint /v1/chat/completions, bisa langsung menggantikan OpenAI API
πŸ€– Kompatibel Anthropic Mendukung endpoint /v1/messages, kompatibel dengan client seperti Claude Code
πŸ†“ Gratis Total Berbasis model gratis Freebuff, tanpa biaya
🎯 Dukungan Banyak Model DeepSeek V4 Flash/Pro, Kimi K2.6, MiniMax M2.7/M3, Mimo V2.5/V2.5 Pro, Gemini
πŸ”‘ Banyak API Key Mendukung pembuatan banyak API Key, setiap Key bisa dikonfigurasi whitelist model independen
πŸ“Š Panel Admin Backend admin React modern, mendukung log real-time, manajemen Token, deteksi jaringan, dll.
🌊 Output Streaming Dukungan penuh respons streaming SSE
πŸš€ Deploy Sekali Klik Mendukung Vercel Serverless serta deploy lokal/server
πŸ”’ Autentikasi Aman Session Cookie bertanda HMAC, rate-limit login, proteksi CSRF
πŸ“± Desain Responsif Panel admin adaptif untuk desktop dan mobile

πŸ“ Log Perubahan

v0.1.1(2026-08-01οΌ‰β€” πŸ› Perbaikan 403 upstream free_mode_cli_required

Masalah: Pemanggilan langsung API Freebuff mengembalikan 403 free_mode_cli_required ("Free mode is only available through the freebuff CLI"), sehingga semua model tidak dapat digunakan.

Akar Masalah: Server upstream memvalidasi apakah system prompt dalam body chat/completions merupakan prompt Buffy asli dari CLI ("You are Buffy, the strategic coding assistant...Freebuff..."). Versi lama menggunakan prefix palsu "You are Buffy. [System Override...]", yang dikenali server sebagai permintaan non-CLI lalu ditolak.

Perbaikan:

  • Tambah freebuff2api/buffy_prompt.py: template system prompt Buffy asli yang diekstrak dari binary freebuff CLI (v0.0.135), tanggal dibuat dinamis
  • openai_compat.py: normalize_chat_messages selalu menyuntikkan prompt Buffy asli ke pesan system pertama (konten system kustom pengguna ditambahkan setelahnya, tidak lagi ditimpa)
  • codebuff.py: versi User-Agent chat request ai-sdk/provider-utils/3.0.20 β†’ 3.0.25 (sesuai CLI)

Verifikasi: Uji end-to-end session β†’ agent-runs β†’ chat/completions mengembalikan 200 + respons streaming SSE, test suite tanpa regresi.


πŸš€ Mulai Cepat

Persyaratan Lingkungan

  • Python 3.11+(disarankan 3.12οΌ‰
  • Node.js 18+(hanya untuk membangun frontendοΌ‰

1. Klon Repositori

git clone https://github.com/t479842598/freebuff2apiNew.git
cd freebuff2apiNew

2. Instal Dependensi

# Buat virtual environment (disarankan)
python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate

# Instal dependensi Python
pip install -r requirements.txt

3. Konfigurasi Variabel Lingkungan

Salin template variabel lingkungan lalu edit:

cp .env.example .env

Edit file .env, minimal isi variabel berikut:

# πŸ”‘ Freebuff Token(wajibοΌ‰
# Dapatkan dari https://www.codebuff.com
FREEBUFF_TOKEN=your_token_here

# πŸ” API Key(wajibοΌ‰
# Kunci akses untuk memanggil endpoint /v1/*
FREEBUFF_API_KEY=sk-your-key-here

# πŸ›‘οΈ Kunci Admin(wajibοΌ‰
# Untuk login ke panel admin
FREEBUFF_ADMIN_KEY=sk-admin

4. Jalankan Layanan

python main.py
# atau
uvicorn freebuff2api.app:app --host 0.0.0.0 --port 8000

5. Verifikasi

# Health check
curl http://localhost:8000/healthz

# Dapatkan daftar model
curl http://localhost:8000/v1/models \
  -H "Authorization: Bearer ***"

# Tes percakapan
curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ***" \
  -d '{
    "model": "deepseek/deepseek-v4-flash",
    "messages": [{"role": "user", "content": "Halo!"}]
  }'

🌐 Cara Deploy

Cara 1: Deploy Vercel(DisarankanοΌ‰

1. Fork Repositori

Fork repositori ini ke akun GitHub Anda.

2. Hubungkan Vercel

  1. Login ke Vercel
  2. Klik "New Project"
  3. Pilih repositori yang sudah di-fork
  4. Preset framework pilih "Other"
  5. Klik "Deploy"

3. Konfigurasi Variabel Lingkungan

Tambahkan variabel lingkungan di pengaturan proyek Vercel:

  • FREEBUFF_TOKEN - Token Freebuff Anda
  • FREEBUFF_API_KEY - Kunci akses API
  • FREEBUFF_ADMIN_KEY - Kunci panel admin

4. Domain Kustom(OpsionalοΌ‰

Tambahkan domain Anda di pengaturan proyek Vercel β†’ Domains.

Cara 2: Deploy Lokal/Server

# Gunakan daemon systemd (Linux)
sudo tee /etc/systemd/system/freebuff2api.service <<EOF
[Unit]
Description=Freebuff2API Service
After=network.target

[Service]
User=www-data
WorkingDirectory=/path/to/freebuff2api
ExecStart=/path/to/.venv/bin/uvicorn freebuff2api.app:app --host 0.0.0.0 --port 8000
Restart=always

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable freebuff2api
sudo systemctl start freebuff2api

Cara 3: Deploy Docker

docker build -t freebuff2api .
docker run -d \
  -p 8000:8000 \
  -e FREEBUFF_TOKEN=your_token \
  -e FREEBUFF_API_KEY=sk-your-key \
  -e FREEBUFF_ADMIN_KEY=sk-admin \
  --name freebuff2api \
  freebuff2api

πŸ“š Dokumentasi API

Endpoint Kompatibel OpenAI

Dapatkan Daftar Model

GET /v1/models
Authorization: Bearer ***

Chat Completions

POST /v1/chat/completions
Authorization: Bearer ***
Content-Type: application/json

{
  "model": "deepseek/deepseek-v4-flash",
  "messages": [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "Halo!"}
  ],
  "stream": true,
  "temperature": 0.7
}

Anthropic Messages(Kompatibel Claude CodeοΌ‰

POST /v1/messages
Authorization: Bearer ***
Content-Type: application/json

{
  "model": "deepseek/deepseek-v4-flash",
  "messages": [
    {"role": "user", "content": "Halo!"}
  ],
  "stream": true,
  "max_tokens": 4096
}

Parameter yang Didukung

Parameter Dukungan Keterangan
model βœ… ID model(lihat daftar model di bawahοΌ‰
messages βœ… Array pesan
stream βœ… Output streaming
temperature βœ… Parameter temperatur
max_tokens βœ… Jumlah token output maksimum
top_p βœ… Sampling Top-p
stop βœ… Kata penghenti
tools βœ… Pemanggilan fungsi (Function Calling)

πŸ–₯️ Panel Admin

Akses http://localhost:8000/admin untuk masuk ke panel admin.

Modul Fitur

Modul Keterangan
πŸ“Š Ringkasan Status layanan, jumlah Token, jumlah model, lingkungan deploy
πŸ”‘ Manajemen Token Tambah/edit/hapus Token Freebuff, dukung verifikasi validitas
πŸ—οΈ API Key Buat banyak API Key, konfigurasi whitelist model
πŸ“ Log Operasional Lihat log layanan secara real-time, filter berdasarkan level
πŸ“ˆ Riwayat Permintaan Lihat riwayat panggilan API, filter berdasarkan model/status
βš™οΈ Lihat Env Lihat isi file konfigurasi lingkungan
🌐 Deteksi Jaringan Deteksi IP publik, lokasi geografis, konektivitas layanan upstream
πŸ§ͺ Tes Model Tes hasil pemanggilan model secara online
πŸ›‘οΈ Pengaturan Ubah kunci admin

Tech Stack

  • Frontend: React 19 + TypeScript + Tailwind CSS v4 + komponen bergaya shadcn/ui
  • Build: Vite 8, output ke freebuff2api/admin_static/
  • Backend: FastAPI melayani hasil build langsung, fallback rute SPA

πŸ€– Daftar Model

Model Gratis Freebuff

ID Model Penyedia Keterangan
deepseek/deepseek-v4-flash DeepSeek πŸš€ Respons cepat, cocok untuk percakapan sehari-hari
deepseek/deepseek-v4-pro DeepSeek πŸ’ͺ Performa tinggi, cocok untuk tugas kompleks
moonshotai/kimi-k2.6 Moonshot πŸŒ™ Optimasi bahasa Mandarin, kemampuan teks panjang kuat
minimax/minimax-m2.7 MiniMax 🎯 Multimodal, value for money
minimax/minimax-m3 MiniMax πŸš€ Versi terbaru, performa meningkat
mimo/mimo-v2.5 Mimo πŸ”¬ Kemampuan kode kuat
mimo/mimo-v2.5-pro Mimo πŸ’ͺ Versi Pro, kemampuan kode lebih kuat

Model Gratis Google Gemini

ID Model Keterangan
google/gemini-2.5-flash-lite ⚑ Ringan dan cepat
google/gemini-3.1-flash-lite-preview πŸ”¬ Versi pratinjau terbaru
google/gemini-3.1-pro-preview πŸ’ͺ Versi Pro

βš™οΈ Variabel Lingkungan

Nama Variabel Wajib Default Keterangan
FREEBUFF_TOKEN βœ… - Token Freebuff(banyak dipisah komaοΌ‰
FREEBUFF_API_KEY βœ… - Kunci akses API
FREEBUFF_ADMIN_KEY βœ… sk-admin Kunci panel admin(⚠️ wajib diubahοΌ‰
FREEBUFF_API_BASE_URL ❌ https://www.codebuff.com Alamat API upstream
FREEBUFF_TIMEOUT ❌ 60 Timeout permintaan(detikοΌ‰
FREEBUFF_PROXY_ENABLED ❌ false Aktifkan proxy atau tidak
FREEBUFF_PROXY_URL ❌ - Alamat proxy(mendukung socks5οΌ‰
FREEBUFF_DEBUG ❌ false Mode debug
FREEBUFF_LOG_LEVEL ❌ INFO Level log
FREEBUFF_HOST ❌ 0.0.0.0 Alamat listen
FREEBUFF_PORT ❌ 8000 Port listen

πŸ›‘οΈ Saran Keamanan

  1. Ubah kunci default: Wajib ubah FREEBUFF_ADMIN_KEY dan FREEBUFF_API_KEY sebelum deploy
  2. Gunakan HTTPS: Disarankan konfigurasi SSL/TLS di lingkungan produksi
  3. Batasi akses: Batasi sumber akses melalui firewall atau API Key
  4. Rotasi berkala: Ganti Token dan API Key secara berkala

πŸ”§ Panduan Pengembangan

Pengembangan Frontend

cd web

# Instal dependensi
npm install

# Jalankan server pengembangan (hot reload)
npm run dev

# Build versi produksi
npm run build

Frontend menggunakan:

  • React 19 + TypeScript
  • Tailwind CSS v4
  • Build Vite 8
  • Proxy ke backend localhost:8000

Struktur Proyek

freebuff2apiNew/
β”œβ”€β”€ freebuff2api/           # 🐍 Inti backend Python
β”‚   β”œβ”€β”€ app.py             # Aplikasi utama FastAPI
β”‚   β”œβ”€β”€ admin.py           # API panel admin
β”‚   β”œβ”€β”€ codebuff.py        # Client upstream Freebuff
β”‚   β”œβ”€β”€ config.py          # Pemuatan konfigurasi
β”‚   β”œβ”€β”€ models.py          # Definisi model
β”‚   β”œβ”€β”€ buffy_prompt.py    # 🐝 System prompt Buffy asli(wajib untuk validasi upstreamοΌ‰
β”‚   β”œβ”€β”€ openai_compat.py   # Lapisan kompatibilitas format OpenAI
β”‚   β”œβ”€β”€ anthropic_compat.py # Lapisan kompatibilitas format Anthropic
β”‚   β”œβ”€β”€ usage.py           # Model data
β”‚   β”œβ”€β”€ usage_store.py     # Lapisan penyimpanan
β”‚   β”œβ”€β”€ logging_config.py  # Konfigurasi log
β”‚   └── admin_static/      # 🎨 Hasil build frontend
β”œβ”€β”€ web/                    # 🎨 Kode sumber frontend React
β”‚   β”œβ”€β”€ src/pages/         # 10 komponen halaman
β”‚   β”œβ”€β”€ src/components/    # Pustaka komponen UI
β”‚   β”œβ”€β”€ src/hooks/         # React Hooks
β”‚   └── src/lib/           # Fungsi utilitas
β”œβ”€β”€ main.py                 # πŸƒ Entry point eksekusi lokal
β”œβ”€β”€ requirements.txt        # πŸ“¦ Dependensi Python
β”œβ”€β”€ vercel.json             # βš™οΈ Konfigurasi Vercel
└── .env.example            # πŸ“ Template variabel lingkungan

❓ FAQ

Q: Token yang didapat diisi di mana?

A: Ada dua cara:

  1. Panel Admin: Akses /admin β†’ Manajemen Token β†’ Tambah
  2. Variabel Lingkungan: Set FREEBUFF_TOKEN di file .env

Q: Bagaimana cara mendapatkan Freebuff Token?

A: Kunjungi https://www.codebuff.com, daftar akun lalu dapatkan API Token di halaman pengaturan.

Q: Client apa saja yang didukung?

A: Semua client yang mendukung OpenAI API bisa digunakan, termasuk:

  • ChatGPT Next Web
  • LobeChat
  • ChatBox
  • Cursor
  • VS Code + Continue
  • Claude Code(menggunakan endpoint /v1/messagesοΌ‰

Q: Deploy Vercel ada batasan akses?

A: Versi gratis Vercel memiliki batasan berikut:

  • Bandwidth 100GB per bulan
  • 1 eksekusi fungsi per detik
  • Waktu eksekusi fungsi ≀ 10 detik

Disarankan pengguna dengan trafik besar menggunakan deploy lokal/server.


🀝 Kontribusi

Selamat datang untuk mengirim Issue dan Pull Request!

  1. Fork repositori ini
  2. Buat branch fitur: git checkout -b feature/amazing-feature
  3. Commit perubahan: git commit -m 'Add amazing feature'
  4. Push branch: git push origin feature/amazing-feature
  5. Kirim Pull Request

πŸ“„ Lisensi

Proyek ini menggunakan lisensi MIT - lihat file LICENSE


πŸ™ Ucapan Terima Kasih

  • Freebuff - Penyedia model AI gratis
  • FastAPI - Framework web Python berperforma tinggi
  • React - Pustaka UI frontend
  • Tailwind CSS - Framework CSS utility-first
  • Vercel - Platform deploy Serverless

⭐ Jika bermanfaat, berikan Star sebagai dukungan!

Stars Forks

About

freebuff2api

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages