# milotkg2/solucionesia architecture

> Architecture diagram of the GitHub repository milotkg2/solucionesia, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/milotkg2/solucionesia
- Repository: https://github.com/milotkg2/solucionesia

## Overview

LogiRuta es un prototipo de asistencia para consultas de despacho: combina recuperación documental híbrida con una consulta determinista de tracking. El README documenta la indexación, las consultas RAG, el tracking y proveedores LLM configurables; la interfaz y el agente integrado figuran como pendientes. El código muestreado confirma los flujos de ingesta, recuperación y cálculo de hechos, pero no permite afirmar que haya un orquestador que los una ni que invoque generación LLM.

Main entry points: [`src/retrieval.py`](https://github.com/milotkg2/solucionesia/blob/main/src/retrieval.py) (Recuperación híbrida), [`src/ingest.py`](https://github.com/milotkg2/solucionesia/blob/main/src/ingest.py) (Ingesta y segmentación), [`src/tracking.py`](https://github.com/milotkg2/solucionesia/blob/main/src/tracking.py) (Consulta determinista), [`src/prompts.py`](https://github.com/milotkg2/solucionesia/blob/main/src/prompts.py) (Ensamblado de prompts)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_fuentes["Fuentes operativas"]
  node_internos["Políticas y SOP"]
  node_externos["Normativa y SERNAC"]
  node_envios["Datos de envíos<br/>[envios.csv]"]
  node_eventos["Eventos tracking"]
end

subgraph group_rag["Conocimiento documental"]
  node_ingesta["Ingesta y segmentación<br/>[ingest.py]"]
  node_indice[("Índice persistido")]
  node_recuperacion["Recuperación híbrida<br/>[retrieval.py]"]
  node_vectorial["Búsqueda vectorial<br/>[retrieval.py]"]
  node_bm25["Búsqueda BM25<br/>[retrieval.py]"]
  node_contexto["Contexto con citas<br/>[retrieval.py]"]
end

subgraph group_tracking["Diagnóstico tracking"]
  node_tracking["Consulta determinista<br/>[tracking.py]"]
  node_hechos["Hechos verificados<br/>[tracking.py]"]
  node_prompts["Ensamblado de prompts<br/>[prompts.py]"]
  node_plantillas["Plantillas agente"]
end

subgraph group_config["Modelos y configuración"]
  node_configuracion["Configuración y fábricas<br/>[config.py]"]
  node_ollama["Ollama embeddings"]
  node_llm["Proveedores LLM"]
end

node_operador(("Operador"))

node_operador -->|"consulta documental"| node_recuperacion
node_operador -->|"consulta envío"| node_tracking
node_ingesta -->|"lee Markdown"| node_internos
node_ingesta -->|"lee Markdown"| node_externos
node_ingesta -->|"configura embeddings"| node_configuracion
node_configuracion -->|"crea embeddings"| node_ollama
node_ingesta -->|"persiste índice"| node_indice
node_recuperacion -->|"carga índice"| node_indice
node_recuperacion -->|"busca semántica"| node_vectorial
node_recuperacion -->|"busca léxico"| node_bm25
node_vectorial -->|"consulta vectores"| node_indice
node_bm25 -->|"consulta fragmentos"| node_indice
node_recuperacion -->|"fusiona resultados"| node_contexto
node_tracking -->|"lee CSV"| node_envios
node_tracking -->|"lee CSV"| node_eventos
node_tracking -->|"calcula hechos"| node_hechos
node_prompts -->|"lee plantillas"| node_plantillas
node_prompts -->|"incorpora hechos"| node_hechos
node_prompts -->|"incorpora contexto"| node_contexto
node_configuracion -.->|"crea proveedor"| node_llm

click node_internos "https://github.com/milotkg2/solucionesia/tree/main/data/internos"
click node_externos "https://github.com/milotkg2/solucionesia/tree/main/data/externos"
click node_envios "https://github.com/milotkg2/solucionesia/blob/main/data/internos/envios.csv"
click node_eventos "https://github.com/milotkg2/solucionesia/blob/main/data/internos/eventos_tracking.csv"
click node_ingesta "https://github.com/milotkg2/solucionesia/blob/main/src/ingest.py"
click node_recuperacion "https://github.com/milotkg2/solucionesia/blob/main/src/retrieval.py"
click node_vectorial "https://github.com/milotkg2/solucionesia/blob/main/src/retrieval.py"
click node_bm25 "https://github.com/milotkg2/solucionesia/blob/main/src/retrieval.py"
click node_contexto "https://github.com/milotkg2/solucionesia/blob/main/src/retrieval.py"
click node_tracking "https://github.com/milotkg2/solucionesia/blob/main/src/tracking.py"
click node_hechos "https://github.com/milotkg2/solucionesia/blob/main/src/tracking.py"
click node_prompts "https://github.com/milotkg2/solucionesia/blob/main/src/prompts.py"
click node_plantillas "https://github.com/milotkg2/solucionesia/tree/main/prompts"
click node_configuracion "https://github.com/milotkg2/solucionesia/blob/main/src/config.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_internos,node_externos,node_envios,node_eventos toneBlue
class node_ingesta,node_indice,node_recuperacion,node_vectorial,node_bm25,node_contexto toneAmber
class node_tracking,node_hechos,node_prompts,node_plantillas toneMint
class node_configuracion,node_ollama,node_llm toneRose
class node_operador toneIndigo
```

## Components

### Fuentes operativas

- [Políticas y SOP](https://github.com/milotkg2/solucionesia/tree/main/data/internos): `data/internos`
- [Normativa y SERNAC](https://github.com/milotkg2/solucionesia/tree/main/data/externos): `data/externos`
- [Datos de envíos](https://github.com/milotkg2/solucionesia/blob/main/data/internos/envios.csv): `data/internos/envios.csv`
- [Eventos tracking](https://github.com/milotkg2/solucionesia/blob/main/data/internos/eventos_tracking.csv): `data/internos/eventos_tracking.csv`

### Conocimiento documental

- [Ingesta y segmentación](https://github.com/milotkg2/solucionesia/blob/main/src/ingest.py): `src/ingest.py`
- **Índice persistido**
- [Recuperación híbrida](https://github.com/milotkg2/solucionesia/blob/main/src/retrieval.py): `src/retrieval.py`
- [Búsqueda vectorial](https://github.com/milotkg2/solucionesia/blob/main/src/retrieval.py): `src/retrieval.py`
- [Búsqueda BM25](https://github.com/milotkg2/solucionesia/blob/main/src/retrieval.py): `src/retrieval.py`
- [Contexto con citas](https://github.com/milotkg2/solucionesia/blob/main/src/retrieval.py): `src/retrieval.py`

### Diagnóstico tracking

- [Consulta determinista](https://github.com/milotkg2/solucionesia/blob/main/src/tracking.py): `src/tracking.py`
- [Hechos verificados](https://github.com/milotkg2/solucionesia/blob/main/src/tracking.py): `src/tracking.py`
- [Ensamblado de prompts](https://github.com/milotkg2/solucionesia/blob/main/src/prompts.py): `src/prompts.py`
- [Plantillas agente](https://github.com/milotkg2/solucionesia/tree/main/prompts): `prompts`

### Modelos y configuración

- [Configuración y fábricas](https://github.com/milotkg2/solucionesia/blob/main/src/config.py): `src/config.py`
- **Ollama embeddings**
- **Proveedores LLM**

### Other components

- **Operador**

## Connections

- Operador → Recuperación híbrida: consulta documental
- Operador → Consulta determinista: consulta envío
- Ingesta y segmentación → Políticas y SOP: lee Markdown
- Ingesta y segmentación → Normativa y SERNAC: lee Markdown
- Ingesta y segmentación → Configuración y fábricas: configura embeddings
- Configuración y fábricas → Ollama embeddings: crea embeddings
- Ingesta y segmentación → Índice persistido: persiste índice
- Recuperación híbrida → Índice persistido: carga índice
- Recuperación híbrida → Búsqueda vectorial: busca semántica
- Recuperación híbrida → Búsqueda BM25: busca léxico
- Búsqueda vectorial → Índice persistido: consulta vectores
- Búsqueda BM25 → Índice persistido: consulta fragmentos
- Recuperación híbrida → Contexto con citas: fusiona resultados
- Consulta determinista → Datos de envíos: lee CSV
- Consulta determinista → Eventos tracking: lee CSV
- Consulta determinista → Hechos verificados: calcula hechos
- Ensamblado de prompts → Plantillas agente: lee plantillas
- Ensamblado de prompts → Hechos verificados: incorpora hechos
- Ensamblado de prompts → Contexto con citas: incorpora contexto
- Configuración y fábricas → Proveedores LLM: crea proveedor
