feat(p1x): de-hardcode VLM models/endpoints to vlm_config (DGX-ready)
Migre les call-sites VLM serveur vers la configuration centrale pour fonctionner sur DGX (tunnel Ollama 11434), où gemma4:* est absent et le port Docker 11435 est mort. - task_planner, replay_verifier, domain_context, ir_builder, resolve_engine (popup): modele -> vlm_config.get_vlm_model(), defaut 11435 -> 11434 (override GEMMA4_PORT legacy conserve) - resolve_engine (grounding bbox x2): nouvel helper vlm_config.get_bbox_grounding_model() (var dediee RPA_BBOX_GROUNDING_MODEL, fallback RPA_GROUNDING_MODEL puis qwen2.5vl:7b-rpa) -> desambiguise le conflit D5-v3b, bbox_2d + num_ctx 4096 preserves - safety_checks_provider: defaut -> get_vlm_model(), override RPA_SAFETY_CHECKS_LLM_MODEL preserve - ui_detector: default_factory + resolution lazy (corrige aussi un gel a l'import), pas d'appel reseau a l'import - field_extractor: property lazy via vlm_config TDD strict (RED->GREEN), 305 tests verts, tests mockes HTTP (zero dependance DGX reel), aucun alias Ollama. Hors perimetre (arbitrage Dom): client Lea agent_v1/executor.py (gele), chemin V4 observe_reason_act (RPA_REASONING_MODEL), core/config.py defaults. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -234,6 +234,33 @@ def get_grounding_profile(endpoint: str = DEFAULT_OLLAMA_ENDPOINT) -> dict:
|
||||
}
|
||||
|
||||
|
||||
def get_bbox_grounding_model() -> str:
|
||||
"""Retourne le modèle pour le grounding **format bbox_2d natif** (qwen2.5vl).
|
||||
|
||||
Distinct de get_grounding_profile() (format JSON {x_pct,y_pct} via prefill,
|
||||
défaut qwen3.5:9b). Les chemins bbox_2d de resolve_engine
|
||||
(`parse_bbox_to_norm` / `parse_bbox_to_norm_validated`) exigent un modèle
|
||||
de la famille qwen2.5vl qui émet des coordonnées en pixels.
|
||||
|
||||
D5-v3b (2026-06-03) : désambiguïse l'env var. Historiquement le site bbox
|
||||
lisait `RPA_GROUNDING_MODEL`, partagé avec get_grounding_profile() qui
|
||||
attend un modèle JSON → conflit documenté. On introduit une var dédiée.
|
||||
|
||||
Ordre de résolution :
|
||||
1. RPA_BBOX_GROUNDING_MODEL (dédié, prioritaire)
|
||||
2. RPA_GROUNDING_MODEL (rétrocompat — ancien comportement)
|
||||
3. DEFAULT_GROUNDING_FALLBACK (qwen2.5vl:7b-rpa, présent sur DGX)
|
||||
|
||||
Returns:
|
||||
Nom du modèle bbox_2d (ex: "qwen2.5vl:7b-rpa")
|
||||
"""
|
||||
return (
|
||||
os.environ.get("RPA_BBOX_GROUNDING_MODEL")
|
||||
or os.environ.get("RPA_GROUNDING_MODEL")
|
||||
or DEFAULT_GROUNDING_FALLBACK
|
||||
)
|
||||
|
||||
|
||||
def needs_think_false(model_name: str) -> bool:
|
||||
"""Détermine si un modèle nécessite think=false dans le payload.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user