97 lines
3.5 KiB
YAML
97 lines
3.5 KiB
YAML
# Jedyne źródło prawdy o backendach LLM i modelach per rola.
|
|
#
|
|
# Kontrakt jest jeden: endpoint zgodny z API OpenAI pod CODEMOD_LLM_BASE_URL.
|
|
# Backendy różnią się tym, jak ten endpoint powstaje - nie tym, co widzi silnik.
|
|
#
|
|
# `task llm:env` renderuje z tego pliku zmienne środowiskowe,
|
|
# `task llm:up` uruchamia wskazany backend.
|
|
|
|
default_backend: auto # auto = wykrycie platformy (macOS -> vllm-metal, Linux+NVIDIA -> vllm-gpu)
|
|
|
|
backends:
|
|
|
|
vllm-gpu:
|
|
description: vLLM w kontenerze, Linux z GPU NVIDIA. Ścieżka najbliższa produkcji na OpenShifcie.
|
|
platforms: [linux]
|
|
requires: [docker, nvidia-gpu]
|
|
provider: vllm
|
|
base_url: http://localhost:8000/v1
|
|
api_key: not-required
|
|
serve:
|
|
model: Qwen/Qwen3-4B-Instruct-2507
|
|
# --enable-auto-tool-choice + parser są konieczne: agenci wołają narzędzia,
|
|
# bez tego vLLM zwróci opis wywołania w treści zamiast tool_calls.
|
|
args:
|
|
- --max-model-len=16384
|
|
- --enable-auto-tool-choice
|
|
- --tool-call-parser=hermes
|
|
- --gpu-memory-utilization=0.90
|
|
models:
|
|
planner: Qwen/Qwen3-4B-Instruct-2507
|
|
coder: Qwen/Qwen3-4B-Instruct-2507
|
|
reviewer: Qwen/Qwen3-4B-Instruct-2507
|
|
scribe: Qwen/Qwen3-4B-Instruct-2507
|
|
|
|
vllm-metal:
|
|
description: >
|
|
vLLM natywnie na Apple Silicon przez plugin vllm-project/vllm-metal (backend MLX).
|
|
Docker na macOS nie ma dostępu do Metala, więc kontener nie jest tu opcją.
|
|
platforms: [darwin]
|
|
requires: [python3.12-arm64, xcode-cli]
|
|
provider: vllm
|
|
base_url: http://localhost:8000/v1
|
|
api_key: not-required
|
|
serve:
|
|
model: mlx-community/Qwen3-4B-Instruct-2507-4bit
|
|
args:
|
|
- --max-model-len=16384
|
|
- --enable-auto-tool-choice
|
|
- --tool-call-parser=hermes
|
|
models:
|
|
planner: mlx-community/Qwen3-4B-Instruct-2507-4bit
|
|
coder: mlx-community/Qwen3-4B-Instruct-2507-4bit
|
|
reviewer: mlx-community/Qwen3-4B-Instruct-2507-4bit
|
|
scribe: mlx-community/Qwen3-4B-Instruct-2507-4bit
|
|
|
|
ollama:
|
|
description: >
|
|
Wariant awaryjny na obie platformy. Nie jest vLLM, ale wystawia /v1 zgodne z OpenAI
|
|
i wstaje jedną komendą. Na macOS instaluj natywnie (Metal) - w Dockerze liczy na CPU.
|
|
platforms: [linux, darwin]
|
|
requires: [ollama]
|
|
provider: openai_like
|
|
base_url: http://localhost:11434/v1
|
|
api_key: ollama
|
|
serve:
|
|
model: qwen3:4b-instruct
|
|
args: []
|
|
models:
|
|
planner: qwen3:4b-instruct
|
|
coder: qwen3:4b-instruct
|
|
reviewer: qwen3:4b-instruct
|
|
scribe: qwen3:4b-instruct
|
|
|
|
mock:
|
|
description: >
|
|
Atrapa z llm/mock_server.py. Zero pobierania, zero GPU, deterministyczne odpowiedzi
|
|
zestrojone z fixture'em acme-app. Do testów ścieżki agentowej w CI, nie do pracy.
|
|
platforms: [linux, darwin, windows]
|
|
requires: []
|
|
provider: openai_like
|
|
base_url: http://127.0.0.1:8077/v1
|
|
api_key: mock
|
|
serve:
|
|
model: mock/agentic-codemod
|
|
args: []
|
|
models:
|
|
planner: mock/agentic-codemod
|
|
coder: mock/agentic-codemod
|
|
reviewer: mock/agentic-codemod
|
|
scribe: mock/agentic-codemod
|
|
|
|
# Rekomendacje przy dobieraniu większych modeli (rola -> czego wymaga):
|
|
# coder - najważniejszy: stabilne tool-calling i trzymanie się formatu edycji
|
|
# planner - rozumowanie o zakresie zmiany; zysk z większego modelu jest tu wyraźny
|
|
# reviewer - może być ten sam co planner; osobny model bywa lepszy (inny punkt widzenia)
|
|
# scribe - najmniejszy wystarczy, to redakcja tekstu
|