File size: 4,331 Bytes
f440f03
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
# Core Python dokumentācija

## Pārskats

core-python ir Maris AI MI kodols, kurā notiek visa AI apstrāde.

## Struktūra

```
maris_core/
├── text/       # Teksta ģenerēšana (Qwen3)
├── images/     # Attēlu ģenerēšana (Stable Diffusion)
├── audio/      # STT (Whisper), TTS, MusicGen
├── video/      # Video ģenerēšana (CogVideoX)
├── code/       # Koda ģenerēšana (Qwen3-Coder)
├── autonomous/ # Autonomais aģents
├── training/   # Modeļa apmācība
├── data/       # Datu apstrāde
└── utils/      # HF integrācija, logging
```

## Galvenais modelis

```python
from transformers import pipeline

pipe = pipeline(
    "text-generation",
    model="Maris Core Reasoning",
    device_map="auto",
)
```

## Orchestrācijas slānis

core-python tagad satur arī master-model orchestration slāni:

- `/v1/orchestrator/system` — atgriež galvenā modeļa un visu atzaru topoloģiju;
- `/v1/orchestrator/route` — nosaka, uz kuru atzaru konkrēts pieprasījums būtu jāroutē;
- `text/generate` pieņem `profile`, lai viens galvenais modelis varētu strādāt
  kā vispārīgs assistants, coder vai planner bez atsevišķa frontend hardcode.

Routing tagad izmanto:

1. **LLM-based router**, kas mēģina izvēlēties capability no definētā branch kataloga;
2. **safe heuristic fallback**, ja LLM nav pieejams vai nevar atgriezt derīgu JSON lēmumu.

## API endpoints

Visi endpoints ir pieejami caur FastAPI `/docs` Swagger UI.

Papildus:

- `/health` — liveness/servisa pieejamība;
- `/ready` — rāda, vai galvenais teksta modelis ir pilnībā uzsilis. Ja modelis vēl
  ielādējas vai ir retry cooldown režīmā pēc neveiksmīgas ielādes, endpoint atgriezīs
  `503` ar detalizētu `text_model.state`, `text_model.model`,
  `text_model.compatibility_restore_active` un, ja vajag, `text_model.last_error`.

## Runtime HF compatibility restore

Teksta runtime loaderis tagad izmanto to pašu `maris_hf_compatible_path(...)`
mehānismu, ko training/export plūsma. Tas nozīmē:

- ja snapshotā ir `maris-compatibility.json`, runtime startup laikā tiek atjaunoti
  oriģinālie HF loader lauki (`config.json`, `tokenizer_config.json`,
  `adapter_config.json`);
- tas strādā gan ar lokālu modeļa direktoriju, gan ar remote Hugging Face repo;
- remote snapshot restore ieslēdz ar:

```bash
MARIS_RUNTIME_COMPAT_ALLOW_REMOTE_SNAPSHOT=true
```

Ja izmanto citu aliasu vai vēlies saglabāt backward-compatibility ar vecāku
konfigurāciju, der arī:

```bash
MARIS_HF_COMPAT_ALLOW_REMOTE_SNAPSHOT=true
HF_RUNTIME_COMPAT_ALLOW_REMOTE_SNAPSHOT=true
```

Šis ir īpaši svarīgi Railway izvietojumam, kur modelis bieži tiek ielādēts tieši
no Hub repozitorija, nevis no lokāla persistent storage ceļa.

## Maris publicēšanas integrācija

Katru reizi kad Maris AI ģenerē saturu, tas automātiski tiek saglabāts:

```python
from maris_core.utils.hf_integration import HFIntegration

hf = HFIntegration()
await hf.save_conversation("Ko tu māki?", "Es māku...")
await hf.save_generation("image", "saulriets jūrā", {...})
```

## Testēšana

```bash
cd core-python
pytest tests/ -v
```

Ja validē tieši runtime loader/compatibility restore:

```bash
cd /home/runner/work/Maris-MI/Maris-MI/core-python
pytest tests/test_training_hf_compat.py tests/test_text.py -v
```

## Fine-tuning entrypoint

Profesionalam Transformers fine-tuning flow izmanto:

```bash
bash ./huggingface/train.sh
```

Šis entrypoint izmanto JSON konfigurāciju no `huggingface/training-config.json` Maris publicēšanas pipeline vajadzībām
un saglabā rezultātus `core-python/output/model/`.

Papildus trenēšanas konfigurācijā tagad ir arī:

- `branch_name` — kuram atzaram skrējiens paredzēts;
- `branch_focus` — kādu specializāciju branch trenē;
- `adapter_type` — piemēram, `full` vai `lora`.

Ja vēlies palaist visu branch suite:

```bash
cd core-python
python scripts/train_model.py --config ../huggingface/training-config.json --all-branches
```

Tas:

- izveido atsevišķus output direktorijus katram atzaram;
- trenē tekstā balstītos branch (`master`, `coder`, `planner`);
- multimodālajiem specialist branch saglabā manifestus ar branch-specific konfigurāciju un iemeslu, kāpēc tiem vajadzīgs cits treniņa pipeline.