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.
|