maris-ai-master / docs /core-python.md
MarisUK's picture
Maris AI model sync
f440f03 verified
# 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.