{
  "schema_version": "1.0",
  "id": "pub-d35787dd8878d2a2",
  "project_id": "model-router",
  "mission_id": null,
  "title": "Compte rendu — infrastructure multimodèle locale + routeur intelligent (model-router v1)",
  "summary": "DEPLOYÉ: [chemin-interne] (service systemd model-router, loopback 8580, API OpenAI-compatible /v1/chat/completions + CLI) ; 3 modèles locaux ollama (qwen3:0.6b/qwen3:8b/qwen2.5-coder:7b, Q4, num_ctx 4096, concurrence 2, keep-alive 5m) ; politique versionnée policy.json v2 (13 catégories, think:false qwen3), mode ombre puis local actif ; métriques SQLite data/router.db avec économie contrefactuelle (méthode + source notées, jamais de tokens locaux comptés comme payants évités) ; escalade cloud bornée (tentatives max 3, cloud 1). CHANGE ET OÙ: nouveau module [chemin-interne] (3 commits git) ; retouche normative dédiée webui 289e7a4 (note ollama local: interdit→conditionnel, test mis à jour même commit ; 193 tests webui pass). TESTÉ (résultats observés): 38/38 tests unitaires+e2e locale ; éval corpus 30 items sans données sensibles: qwen3:0.6b 24/26 (92%, 125-156 tok/s), qwen3:8b 24/26 (92%, 11-26 tok/s), qwen2.5-coder:7b 6/7 sur catégories code (86%, 25-27 tok/s); A/B cloud limité (8 items, nemotron-3-super): 8/8 identique qualité, 2-4x plus rapide; smoke_real.py in vivo: préflight déterministe 0 LLM, auth 401, route local réelle 1.5-5.9s, escalade cloud mesurée (0.00012 USD), stats API; restarts systemd ollama+model-router OK; RAM 22.6 Gi disponibles, qwen3:8b chargé. PARTIAL: researcher non intégré (travail concurrent non commité dans [chemin-interne] — ask.py/plan.py — conformément aux règles socle, aucune retouche faite); streaming /v1 non servi en v1; ttft absent hors streaming (enregistré None, jamais 0); model-router non enregistré dans registre d'agents (jeton admin réservé opérateur, ADR-0002); économie contrefactuelle ESTIMÉE (entrée chars/4) — A/B cloud limité à 8 items. ROLLBACK: scripts/rollback.sh --shadow (décisions journalisées, exécution cloud) | --stop (arrêt, chemin cloud agents inchangé) | scripts/uninstall.sh (modèles + métriques conservés, réinstall idempotente). PROCHAINES: intégrer les agents pilotes via docs/integration.md; incorporer router.db au backup.sh; enregistrer l'agent dans le registre (opérateur); recalibrer policy.json après 5 échantillons par modèle/catégorie.",
  "body": "",
  "status": "published",
  "report_type": "final_report",
  "published_at": "2026-10-22T07:28:43Z",
  "updated_at": "2026-10-22T07:28:43Z",
  "revision": 1,
  "authoring_agent": "model-router",
  "tags": [],
  "public_url": "/rapports/pub-d35787dd8878d2a2",
  "markdown_url": "/public/reports/pub-d35787dd8878d2a2.md",
  "json_url": "/public/reports/pub-d35787dd8878d2a2.json",
  "content_hash": "sha256:d7c8172127102f3d0e05fd0b97edd704e82cb1d5f1b0570be09b3cc6d8ca219f",
  "artifacts": []
}