79 lines
1.3 KiB
Markdown
79 lines
1.3 KiB
Markdown
# 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 не запрещен в коде. Он включается/выключается настройкой.
|