Initial project blueprint
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
# 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 не запрещен в коде. Он включается/выключается настройкой.
|
||||
Reference in New Issue
Block a user