--- name: genconfig_load_json kind: function lang: py domain: ml version: "1.0.0" purity: impure signature: "def genconfig_load_json(path: str) -> GenerationConfig" description: "Carga y valida un GenerationConfig desde un archivo JSON en disco. Usa pydantic model_validate si disponible; fallback a construccion manual desde dataclass. Raises FileNotFoundError si el archivo no existe." tags: [ml, generation, json, io, deserialization, pendiente-usar] params: - name: path desc: "Ruta al archivo JSON generado por genconfig_save_json. Relativa o absoluta." output: "Instancia de GenerationConfig cargada y validada con todos sus campos." uses_functions: - genconfig_save_json_py_ml uses_types: - generation_config_py_ml returns: [] returns_optional: false error_type: "error_go_core" imports: [] tested: true tests: - "save escribe archivo JSON valido en la ruta indicada" - "save crea directorios padre si no existen" - "json contiene claves en snake_case" test_file_path: "python/functions/ml/tests/test_genconfig_json_roundtrip.py" file_path: "python/functions/ml/genconfig_load_json.py" --- ## Ejemplo ```python from ml.genconfig_load_json import genconfig_load_json cfg = genconfig_load_json("/tmp/gen_config.json") # cfg.prompt == "a forest at dusk" # cfg.seed == 123 ``` ## Notas Usa pydantic model_validate cuando disponible (valida literales de model_type, quantization y sampler). Sin pydantic, construye la instancia directamente sin validar literales. Para el contrato Go-Python es importante que los nombres de clave sean snake_case (garantizado por pydantic model_dump_json).