Skip to main content

Free LLM Router Service based on LiteLLM

Project description

FreeRouter

🛠️ LiteLLM Configuration Management Tool - Automated Multi-Provider Configuration Generation

License: MIT Python 3.8+

中文文档 | English

What is this?

FreeRouter is a configuration management tool for LiteLLM.

Core Features:

  • 📋 Automatically fetch model lists from Provider APIs
  • ⚙️ Generate LiteLLM config.yaml configuration files
  • 🚀 One-command startup of LiteLLM service

Important:

  • FreeRouter does not provide AI services; all APIs and routing are provided by LiteLLM
  • Recommend reading LiteLLM Documentation first
  • If you're familiar with writing LiteLLM configs manually, you may not need FreeRouter

Supported Providers

Provider Type Free
OpenRouter Text, Vision, Multimodal ✅ Partially Free
iFlow Text ✅ Fully Free
ModelScope Text ✅ Free Quota
OAI Any (OpenAI-compatible) Depends
Ollama Text, Vision ✅ Local Free
Static Any Depends

Free Providers:

Quick Start

1. Installation

pip install freerouter

Or from source:

git clone https://github.com/mmdsnb/freerouter.git
cd freerouter
pip install -e .

2. Initialize Configuration

freerouter init

3. Configure Providers

Edit .env to add API keys:

OPENROUTER_API_KEY=sk-or-v1-xxxxx
IFLOW_API_KEY=sk-xxxxx

Edit config/providers.yaml to enable services:

providers:
  # OpenRouter - Free models
  - type: openrouter
    enabled: true
    api_key: ${OPENROUTER_API_KEY}

  # iFlow - Chinese free models
  - type: iflow
    enabled: true
    api_key: ${IFLOW_API_KEY}

  # Ollama - Local models
  - type: ollama
    enabled: true
    api_base: http://localhost:11434

  # ModelScope - Chinese models (2000 calls/day free)
  - type: modelscope
    enabled: false
    api_key: ${MODELSCOPE_API_KEY}

  # OAI - Generic OpenAI-compatible API (auto-fetch models)
  - type: oai
    name: myservice
    enabled: false
    api_base: https://api.example.com/v1
    api_key: ${MYSERVICE_API_KEY}

  # Static - Custom service (single model, manual config)
  - type: static
    enabled: false
    model_name: gpt-3.5-turbo
    provider: openai
    api_base: https://your-api.com/v1
    api_key: ${YOUR_KEY}

4. Start Service

# Fetch models and start service
freerouter

# Or step by step
freerouter fetch   # Fetch model list
freerouter start   # Start service

Service will start at http://localhost:4000.

5. Use API

All API usage follows LiteLLM Documentation.

# List available models
curl http://localhost:4000/v1/models

# Call model (OpenAI-compatible API)
curl http://localhost:4000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-1234" \
  -d '{
    "model": "google/gemini-pro",
    "messages": [{"role": "user", "content": "Hello"}]
  }'

CLI Commands

freerouter              # Start service (default, auto fetch + start)
freerouter init         # Initialize config directory
freerouter fetch        # Fetch model list and generate config
freerouter start        # Start LiteLLM service
freerouter list         # List configured models
freerouter --version    # Show version
freerouter --help       # Show help

Config file search order:

  1. ./config/providers.yaml (current directory)
  2. ~/.config/freerouter/providers.yaml (user config)

License

MIT License - see LICENSE

Links


For issues, please visit Issues

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

freerouter-0.1.0.tar.gz (28.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

freerouter-0.1.0-py3-none-any.whl (17.6 kB view details)

Uploaded Python 3

File details

Details for the file freerouter-0.1.0.tar.gz.

File metadata

  • Download URL: freerouter-0.1.0.tar.gz
  • Upload date:
  • Size: 28.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for freerouter-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c7b2734dfabc61d9467bcdffde6775ebd5cb04073d15a5065f7d3e4672d0e1e8
MD5 7abcc837fe18ab43d6e0d52cef197490
BLAKE2b-256 d41d4feaf651d39f6a7ebe419bed814e52645bb1e4cf66a25e8f70e1d17370a2

See more details on using hashes here.

File details

Details for the file freerouter-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: freerouter-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 17.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for freerouter-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 618d9d794d4981403e681f94eaf5bc29641ce7019f03d73246a26312a1814aad
MD5 b4899cc9f1f831b6c2dd5268f0d550dc
BLAKE2b-256 1324f7bff10aee6a28a87e9d95eadb26a28fad84bca6bba13fb686598fdad7a3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page