Comble le gap : les voix fraîches + leur manifeste (scope/owner/reference_text) vivent
dans Android/data/com.kazeia.admin/files/voix/ (VoiceStorage.kt), pas dans /voices.
- admin_ingest.py : list_manifests (ls + pull .json), delete_admin_voice. Schéma fondé
sur VoiceStorage.save().
- orchestrator : list_admin_voices, ingest_voice (pull→archive→scope/owner/consentement
→verrou si exclusive→enroll ASR→deploy selon scope), sync_admin. pending = archivée,
ni enrôlée ni déployée. exclusive owner absent = verrou_profil_absent.
- _patient_omnivoice_dir robuste : env → wav_path legacy → sonde MODELS_DIR device
(post-migration /voices.wav_path est VIDE pour une voix déployée).
- store : colonnes scope/owner_name/consent_text_enc (consentement chiffré, PII) +
migration + set_voice_manifest. consent_text déchiffré dans voice_record/voices.
- autosync → sync_admin (le déclencheur auto ingère depuis l'admin).
- API : GET /voices/{serial}/admin, POST /voices/{serial}/admin/sync.
- enroll = ASR du 16s (migration §6) ; reference_text gardé comme trace de consentement.
- tests +8. 46/46. Validé live : manifeste synthétique → .ovsp déployé sur tablette.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
||
|---|---|---|
| docs | ||
| kazeia_central | ||
| tests | ||
| .gitignore | ||
| CLAUDE.md | ||
| README.md | ||
| pyproject.toml | ||
README.md
Kazeia-central
Console de poste (PC/Mac) qui pilote les tablettes Kazeia branchées en USB : récupération des conversations cliniques, gestion du corpus RAG, et parité avec Kazeia-admin (config, presets, profils, voix, mises à jour).
Architecture, contrat de protocole et décisions : voir
CLAUDE.md. Spec des extensions provider à livrer à l'app patiente :docs/PROVIDER_RPC_SPEC.md.
État
Socle (étapes 0-1, lecture de flotte) en place :
kazeia_central/adb/— wrapper adb (découverte,content query/call, push/pull).kazeia_central/provider/— client typé (pydantic) des endpoints provider existants.kazeia_central/api/— API FastAPI + (à venir) UI web locale.
Les écritures (config/presets/profils/RAG) et l'export des conversations attendent
les méthodes call() base64-JSON côté app patiente (cf. docs/PROVIDER_RPC_SPEC.md).
Démarrer
python -m venv .venv && . .venv/bin/activate
pip install -e ".[dev]"
pytest -q # tests unitaires (parsing)
uvicorn kazeia_central.api.app:app --reload # API sur http://127.0.0.1:8000
Prérequis : adb dans le PATH, tablette en débogage USB autorisé.
Repo
/opt/Kazeia-central — sibling de /opt/Kazeia et /opt/Kazeia-engine, repo git
autonome (ne PAS placer sous /opt/Kazeia, cf. CLAUDE.md §7).