pagina unica
This commit is contained in:
+20
-12
@@ -332,12 +332,14 @@ Hashing/versionado: `registry/versioning.compute_hash(yaml_text)` = SHA-256 del
|
||||
|
||||
## 6. UI HTMX embebida en Core
|
||||
|
||||
Con la migración a Opción A (FastAPI + HTMX), la interfaz de usuario se sirve
|
||||
directamente desde el mismo proceso `forja-core` (Jinja2 + HTMX vía CDN, sin
|
||||
servicio separado). No hay `CoreClient` intermedio para las páginas; los
|
||||
endpoints de UI llaman a los mismos servicios internos que la API REST.
|
||||
|
||||
La antigua sección de dashboard Streamlit ha sido eliminada.
|
||||
La interfaz es **una sola página** (`GET /`) servida desde el mismo proceso
|
||||
`forja-core` (Jinja2 + HTMX vía CDN, sin servicio separado), organizada como
|
||||
las seis etapas del ciclo de vida: Define → Run → Approve → Train → Promote →
|
||||
Audit. Cada etapa es un fragmento (`GET /fragments/*`) que se re-renderiza
|
||||
cuando cualquier botón de acción dispara el evento global `forja-refresh`.
|
||||
Los botones llaman directamente a los endpoints `/api/*` (con `json-enc`);
|
||||
no hay cliente HTTP intermedio ni lógica duplicada. Las rutas multipágina
|
||||
antiguas redirigen con 301 a las anclas de su etapa.
|
||||
|
||||
---
|
||||
|
||||
@@ -366,22 +368,28 @@ env `DATA_DIR=/app/data`, `AGENTS_DIR=/app/agents`, `POLICIES_DIR=/app/policies`
|
||||
| Campo | Env var | Default | Lo consume |
|
||||
|-------|---------|---------|------------|
|
||||
| `llm_provider` | `LLM_PROVIDER` | `mock` | `build_llm_provider` |
|
||||
| `llm_fallback_provider` | `LLM_FALLBACK_PROVIDER` | `""` | (declarado; la factory aún no lo usa) |
|
||||
| `llm_fallback_provider` | `LLM_FALLBACK_PROVIDER` | `""` | `build_llm_provider` → `FallbackLLMProvider` (vacío = sin fallback) |
|
||||
| `azure_openai_*` | `AZURE_OPENAI_*` | `""` / `2024-08-01-preview` | `AzureOpenAIProvider` |
|
||||
| `openai_api_key` / `openai_model` | `OPENAI_API_KEY` / `OPENAI_MODEL` | `""` / `gpt-4o` | `OpenAIProvider` |
|
||||
| `guardrails_nemo_enabled` | `GUARDRAILS_NEMO_ENABLED` | `False` | `build_guardrail_engine` |
|
||||
| `guardrails_nemo_allowed_keywords` | `GUARDRAILS_NEMO_ALLOWED_KEYWORDS` | `""` | keywords CSV del stub topical-rails (vacío = sin chequeo) |
|
||||
| `log_level` | `LOG_LEVEL` | `INFO` | `configure_logging` |
|
||||
| `data_dir` | `DATA_DIR` | `./data` | `build_checkpointer`, `_record_execution`, `append_*`, `read_*` |
|
||||
| `agents_dir` | `AGENTS_DIR` | `./agents` | `build_agent_registry` |
|
||||
| `training_backend` | `TRAINING_BACKEND` | `mock` | `build_training_backend` |
|
||||
| `azure_ml_*` | `AZURE_ML_*` | varios | `AzureMLTrainingBackend` (stub si falta workspace) |
|
||||
| `data_dir` | `DATA_DIR` | `./data` | checkpointer, logs JSONL, training runs, evaluaciones, promociones |
|
||||
| `agents_dir` | `AGENTS_DIR` | `./agents` | `build_agent_registry`, escenarios de evaluación |
|
||||
| `policies_dir` | `POLICIES_DIR` | `./policies` | `build_policy_store` |
|
||||
| `datasets_dir` | `DATASETS_DIR` | `./datasets` | `build_dataset_store` |
|
||||
| `models_dir` | `MODELS_DIR` | `./models` | `build_model_store` |
|
||||
|
||||
---
|
||||
|
||||
## 8. Aristas y "gotchas"
|
||||
|
||||
- **`llm_fallback_provider`**: existe en `Settings` y en `.env.example`, pero
|
||||
`build_llm_provider` aún no lo aplica (queda como punto de extensión).
|
||||
- **`build_llm_provider`** usa `match` sin `case _:`; al ser el tipo un `Literal`
|
||||
- **`llm_fallback_provider`**: si está configurado y difiere del primario,
|
||||
`build_llm_provider` devuelve un `FallbackLLMProvider` que delega en el
|
||||
secundario cuando el primario agota sus reintentos.
|
||||
- **`_build_single`** usa `match` sin `case _:`; al ser el tipo un `Literal`
|
||||
de tres valores es exhaustivo, pero un valor inesperado caería en "ninguna rama".
|
||||
- **NeMo**: `NeMoGuardrailsEngine` solo entra al `CompositeGuardrailEngine` si
|
||||
`GUARDRAILS_NEMO_ENABLED=true`; por defecto el composite tiene un solo engine.
|
||||
|
||||
Reference in New Issue
Block a user