Application de gestion centralisée
Go to file
alf 06b5cda214 feat(voice): ingestion depuis le stockage ADMIN (manifestes record-time §4.2)
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>
2026-06-23 10:30:58 +02:00
docs docs(voice): bandeaux migration OmniVoice sur les specs voix 2026-06-23 10:17:54 +02:00
kazeia_central feat(voice): ingestion depuis le stockage ADMIN (manifestes record-time §4.2) 2026-06-23 10:30:58 +02:00
tests feat(voice): ingestion depuis le stockage ADMIN (manifestes record-time §4.2) 2026-06-23 10:30:58 +02:00
.gitignore chore: socle Kazeia-central (étapes 0-1 lecture) + spec provider RPC 2026-06-18 14:51:41 +02:00
CLAUDE.md chore: socle Kazeia-central (étapes 0-1 lecture) + spec provider RPC 2026-06-18 14:51:41 +02:00
README.md chore: socle Kazeia-central (étapes 0-1 lecture) + spec provider RPC 2026-06-18 14:51:41 +02:00
pyproject.toml chore: socle Kazeia-central (étapes 0-1 lecture) + spec provider RPC 2026-06-18 14:51:41 +02:00

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-centralsibling de /opt/Kazeia et /opt/Kazeia-engine, repo git autonome (ne PAS placer sous /opt/Kazeia, cf. CLAUDE.md §7).