---
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).
