Ten przewodnik prowadzi Cię krok po kroku przez:
- Instalację vLLM i modelu
speakleash/Bielik-11B-v2.3-Instruct. - Instalację LLM‑Router (bramki API).
- Uruchomienie routera z konfiguracją modeli dostarczoną w
models-config.json.
Wszystkie polecenia zakładają, że pracujesz na systemie Unix‑like (Linux/macOS) z Python 3.10.6, virtualenv oraz (
opcjonalnie) kartą GPU obsługującą CUDA 11.8.
| Wymaganie | Szczegóły |
|---|---|
| OS | Ubuntu 20.04 + (lub dowolna nowsza dystrybucja Linux/macOS) |
| Python | 3.10.6 (domyślna wersja projektu) |
| GPU | CUDA 11.8 + (minimum 12 GB VRAM) lub środowisko CPU‑only |
| Narzędzia | git, curl, jq (opcjonalnie, przydatne do testowania) |
| Sieć | Dostęp do PyPI oraz Hugging Face w celu pobrania modelu |
# (opcjonalnie) utwórz katalog demo i przejdź do niego
mkdir -p ~/bielik-demo && cd $_
# Inicjalizacja venv
python3 -m venv .venv
source .venv/bin/activate
# Aktualizacja pip (zawsze dobry pomysł)
pip install --upgrade pipPełną instrukcję znajdziesz w pliku
VLLM.md.
Skopiuj do bieżącego katalogu dostarczony skrypt Bash (dostosuj ścieżkę, jeśli potrzebujesz) i uruchom go:
cp path/to/llm-router/examples/quickstart/speakleash-bielik-11b-v2_3-Instruct/run-bielik-11b-v2_3-vllm.sh .
chmod +x run-bielik-11b-v2_3-vllm.sh
# Uruchom (warto w tmux/screen)
./run-bielik-11b-v2_3-vllm.shSerwer nasłuchuje na http://0.0.0.0:7000 i udostępnia endpoint zgodny z OpenAI pod /v1/chat/completions.
Możesz szybko go przetestować:
curl http://localhost:7000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "speakleash/Bielik-11B-v2.3-Instruct",
"messages": [{"role": "user", "content": "Cześć, jak się masz?"}],
"max_tokens": 100
}' | jqPowinieneś otrzymać odpowiedź w formacie JSON.
# Sklonuj repozytorium (jeśli jeszcze go nie masz)
git clone https://github.com/radlab-dev-group/llm-router.git
cd llm-router
# Instalacja core + API (w tym samym venv)
pip install .[api]
# (Opcjonalnie) wsparcie dla Prometheus
pip install .[api,metrics]Uwaga: Router używa tego samego wirtualnego środowiska, które utworzyłeś wcześniej, więc wszystkie zależności pozostają odizolowane.
Plik models-config.json znajdujący się w katalogu speakleash‑bielik już zawiera definicję naszego modelu:
{
"speakleash_models": {
"speakleash/Bielik-11B-v2.3-Instruct": {
"providers": [
{
"id": "bielik-11B_v2_3-vllm-local:7000",
"api_host": "http://localhost:7000/",
"api_type": "vllm",
"input_size": 56000,
"weight": 1.0
}
]
}
},
"active_models": {
"speakleash_models": [
"speakleash/Bielik-11B-v2.3-Instruct"
]
}
}Skopiuj go (lub przenieś) do katalogu resources/configs/ routera:
mkdir -p resources/configs
cp path/to/speakleash-bielik/models-config.json resources/configs/W repozytorium znajduje się pomocniczy skrypt run-rest-api-gunicorn.sh. Upewnij się, że jest wykonywalny, a następnie
go uruchom:
chmod +x run-rest-api-gunicorn.sh
./run-rest-api-gunicorn.shDomyślne zmienne środowiskowe (można zmienić w skrypcie):
| Zmienna | Domyślna wartość | Opis |
|---|---|---|
LLM_ROUTER_SERVER_TYPE |
gunicorn |
Backend serwera |
LLM_ROUTER_SERVER_PORT |
8080 |
Port nasłuchiwania routera |
LLM_ROUTER_MODELS_CONFIG |
resources/configs/models-config.json |
Ścieżka do pliku konfiguracyjnego |
LLM_ROUTER_USE_PROMETHEUS |
1 (jeśli zainstalowano metrics) |
Włącza endpoint /api/metrics |
Router będzie dostępny pod http://0.0.0.0:8080/api.
Pełna lista dostępnych zmiennych środowiskowych znajduje się w
opisie zmiennych środowiskowych
curl http://localhost:8080/api/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "speakleash/Bielik-11B-v2.3-Instruct",
"messages": [{"role": "user", "content": "Opowiedz krótki żart."}],
"max_tokens": 80
}' | jqZapytanie przechodzi przez LLM‑Router, który przekazuje je do lokalnego serwera vLLM, a odpowiedź zostaje zwrócona w formacie JSON.
W folderze examples/ znajduje się szereg przykładów (LangChain, LlamaIndex, OpenAI SDK, LiteLLM,
Haystack). Aby je uruchomić:
- Ustaw adres routera – w środowisku (
LLM_ROUTER_HOST) lub w plikuexamples/constants.py:
export LLM_ROUTER_HOST="http://localhost:8080/api"
# lub w Pythonie (constants.py):
HOST = "http://localhost:8080/api"- Zainstaluj zależności przykładów
pip install -r examples/requirements.txt- Uruchom wybrany przykład
python examples/langchain_example.py
python examples/llamaindex_example.py
python examples/openai_example.py
python examples/litellm_example.py
python examples/haystack_example.pyWszystkie pozostałe szczegóły konfiguracji (obsługa promptów, strumieniowanie, użycie wielu modeli, obsługa błędów itp.)
są udokumentowane w poszczególnych plikach przykładów oraz w plikach examples/README.md i
examples/README_LLAMAINDEX.md. Dostosuj jedynie zmienną HOST/LLM_ROUTER_HOST
(ewentualnie także MODELS), a przykłady automatycznie odpytają instancję uruchomionego llm‑routera.
| Obszar | Co możesz zrobić |
|---|---|
| Prometheus | Jeśli włączyłeś metrics, dodaj endpoint /api/metrics do swojego systemu monitorującego. |
| Guardrails & Masking | Ustaw zmienne LLM_ROUTER_FORCE_MASKING, LLM_ROUTER_FORCE_GUARDRAIL_REQUEST, itp., aby dodać warstwy ochronne. |
| Wiele dostawców | Rozbuduj models-config.json o kolejne providery (np. Ollama, OpenAI) i eksperymentuj z różnymi strategiami load‑balancing. |
| Aktualizacje | pip install -U vllm oraz pip install -U llm-router zapewnią najnowsze poprawki i funkcje. |
| Optymalizacja pamięci | Przy ograniczonej VRAM użyj flagi --cpu-offload w skrypcie run-bielik-11b-v2_3-vllm.sh. |
Powodzenia i miłego korzystania z modelu Bielik!