# Model Router ## Цель Единый интерфейс к разным моделям: - локальным; - внешним; - отключенным; - vision; - embedding. ## Слоты ```text weak strong vision embedding reranker ``` ## Provider types ```text local external disabled ``` ## Вызов ```json { "slot": "weak", "messages": [], "tools": [], "response_format": "json_schema | text", "task_context": { "task_id": "task_1", "node_id": "node_2" } } ``` ## Ответ ```json { "slot": "weak", "provider": "local", "model": "qwen-coder-7b", "status": "success", "message": {}, "tool_calls": [], "usage": { "input_tokens": 100, "output_tokens": 200, "cost": 0 }, "error": null } ``` ## Fallback Алгоритм: ```text 1. вызвать weak; 2. если результат валиден — продолжить; 3. если результат невалиден — retry weak; 4. если strong доступна — вызвать strong; 5. если strong disabled — вернуть partial result и ошибку качества; 6. если external выключен настройкой — не вызывать external. ``` Важно: external не запрещен в коде. Он включается/выключается настройкой.