pagina unica
This commit is contained in:
@@ -9,8 +9,11 @@ ejecución controlada con runtime stateful, Human-in-the-Loop y observabilidad c
|
||||
|
||||
Forja es un **único servicio** (FastAPI en :8000) que expone:
|
||||
|
||||
- API REST completa bajo `/api` (agentes, políticas, ejecuciones, aprobaciones, violaciones).
|
||||
- UI embebida moderna (HTMX + Tailwind + Jinja) en rutas amigables (`/agents`, `/run`, `/approvals`, `/history`, `/policies`).
|
||||
- API REST completa bajo `/api` (agentes, políticas, ejecuciones, aprobaciones, violaciones, datasets, models, training runs, promotions).
|
||||
- UI embebida de **una sola página** (HTMX + Tailwind + Jinja) que recorre el
|
||||
ciclo de vida completo en seis etapas: **Define → Run → Approve → Train →
|
||||
Promote → Audit**. Cada panel se refresca solo tras cada acción; las rutas
|
||||
antiguas (`/agents`, `/run`, ...) redirigen a su etapa.
|
||||
|
||||
```
|
||||
┌───────────────────────────────────────────────────────────────┐
|
||||
@@ -42,26 +45,39 @@ Abre [http://localhost:8000](http://localhost:8000).
|
||||
Funciona out-of-the-box (`LLM_PROVIDER=mock`, sin API keys). Si quieres usar
|
||||
Azure OpenAI real, edita `.env`.
|
||||
|
||||
## Demo guiada (3 pasos)
|
||||
## Demo guiada: el ciclo completo en 6 clicks
|
||||
|
||||
1. **Registro** → ver `incident_analyzer` y comparar `v1` vs `v2`.
|
||||
2. **Ejecutar** → seleccionar el escenario `01_sip_registration_drop` y
|
||||
pulsar *Invocar*. Verás el grafo recorrer validate_input → llm_reason
|
||||
→ validate_output → propose_actions → approve_gate y pausarse en HITL.
|
||||
3. **Aprobaciones** → revisar las acciones propuestas (con risk_score y
|
||||
rollback_plan), aprobar las seguras y comprobar que la ejecución
|
||||
completa.
|
||||
Todo ocurre en `http://localhost:8000`, de arriba abajo, sin escribir nada:
|
||||
|
||||
1. **▶ Run demo incident** (etapa 02) — lanza un incidente HSS pregrabado por el
|
||||
pipeline gobernado. La acción propuesta tiene risk 5 → la ejecución se pausa
|
||||
en el approval gate.
|
||||
2. **Approve all** (etapa 03) — el grafo se reanuda desde su checkpoint y la
|
||||
ejecución completa (aparece en la etapa 06 — Audit).
|
||||
3. **Submit training run** (etapa 04) — el formulario viene pre-rellenado con el
|
||||
dataset `incident_sft`, el modelo `gpt4o_lora_base` y la versión candidata
|
||||
`v3` (draft). Con `TRAINING_BACKEND=mock` termina al instante.
|
||||
4. **Run evaluation** (etapa 04) — ejecuta los escenarios canónicos del agente
|
||||
(`agents/<name>/examples/`) sobre la candidata `v3`; pasa si no hay
|
||||
violaciones bloqueantes.
|
||||
5. **Request promotion** (etapa 04) — crea la petición de gobernanza, que
|
||||
aparece en la etapa 05.
|
||||
6. **Approve promotion** (etapa 05) — `v3` pasa a `active` en el registry;
|
||||
compruébalo en los chips de versión de la etapa 01.
|
||||
|
||||
## Capacidades implementadas
|
||||
|
||||
| Feature | Ubicación |
|
||||
|---|---|
|
||||
| Agent / Policy Registry | `core/src/forja_core/registry/` |
|
||||
| Versionado Git-like (YAML) | `agents/<name>/` + `policies/<name>/` |
|
||||
| Agent / Policy / Dataset / Model Registry | `core/src/forja_core/registry/` (base genérica `yaml_store.py`) |
|
||||
| Versionado Git-like (YAML) | `agents/`, `policies/`, `datasets/`, `models/` |
|
||||
| Guardrails runtime (strategy) | `core/src/forja_core/guardrails/` |
|
||||
| LangGraph + HITL + checkpoints | `core/src/forja_core/runtime/` |
|
||||
| Observabilidad (trace + structlog) | `core/src/forja_core/observability/` |
|
||||
| LLM abstraction | `core/src/forja_core/llm/` |
|
||||
| LLM abstraction (+fallback opcional) | `core/src/forja_core/llm/` |
|
||||
| Training backends (mock / Azure ML) | `core/src/forja_core/training/` |
|
||||
| Evaluación post-training (escenarios) | `core/src/forja_core/evaluation/` |
|
||||
| Promoción gobernada draft → active | `core/src/forja_core/api/promotions.py` |
|
||||
| UI embebida (HTMX) | `core/src/forja_core/web/` (ruta raíz) |
|
||||
| API REST completa | bajo `/api` en forja-core :8000 |
|
||||
|
||||
@@ -69,6 +85,10 @@ Azure OpenAI real, edita `.env`.
|
||||
|
||||
Ver [`.env.example`](.env.example).
|
||||
|
||||
### Azure ML training
|
||||
|
||||
Set `TRAINING_BACKEND=azure_ml` and fill `AZURE_ML_*` workspace settings. Forja submits an Azure ML **command job** via `azure-ai-ml` using `DefaultAzureCredential` (Azure CLI, managed identity, etc.). Replace the bundled script in `core/src/forja_core/training/_azure_job_bundle/` or override `AZURE_ML_COMMAND` for your fine-tuning pipeline. Without workspace config, the backend stays in **stub mode** for local development.
|
||||
|
||||
## Roadmap
|
||||
|
||||
Ver [`docs/futuro.md`](docs/futuro.md).
|
||||
@@ -80,11 +100,18 @@ forja/
|
||||
├── core/ servicio FastAPI único (API + UI HTMX embebida)
|
||||
├── agents/ definiciones de agentes (YAML versionados)
|
||||
├── policies/ políticas de guardrails (YAML versionados)
|
||||
├── datasets/ datasets para fine-tuning (YAML versionados)
|
||||
├── models/ modelos base / destino de entrenamiento (YAML versionados)
|
||||
├── data/ runtime state (gitignored)
|
||||
├── tests/
|
||||
└── docs/ (explicacion.md, componentes.md, futuro.md, ARCHITECTURE.md)
|
||||
```
|
||||
|
||||
## Development
|
||||
|
||||
- Implementation guidelines: [`karpathy.md`](karpathy.md)
|
||||
- UI copy and language: [`docs/product-voice.md`](docs/product-voice.md) (English only in the web app)
|
||||
|
||||
## Tests
|
||||
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user