Files

92 lines
3.5 KiB
TeX

\chapter{Veredicto}
\label{ch:veredicto}
\section{La respuesta corta}
\begin{center}
\renewcommand{\arraystretch}{1.35}
\begin{tabular}{@{}p{4.2cm}p{2.2cm}p{6.5cm}@{}}
\toprule
\textbf{Escenario} & \textbf{\textquestiondown 100k?} & \textbf{Por qu\'e} \\
\midrule
Host \textbf{actual} (compartido)
& \parcial\ / \fail
& Pipeline $\approx$ OCR $\sim$100--325/h.
Piso $\sim$100 $<$ 139 (no garantizado). \\
Host \textbf{dedicado} + dimensionado, 24$\times$7
& \pass\ \emph{si}
& Estimado $\sim$400/h $>$ 139/h si OCR/agents/LLM OK. \\
Misma infra, jornada 8\,h (570/h)
& \fail
& 400 $<$ 570: falta m\'as OCR, m\'as agents Selenium y cuota LLM. \\
\bottomrule
\end{tabular}
\end{center}
\callout{\large Resumen para decidir}{%
\textbf{Hoy (host compartido): 100k/mes 24$\times$7 no est\'a garantizado}
(pipeline $\approx$ cuello OCR; piso $\sim$100 $<$ 139).\\
\textbf{Con host dedicado + OCR dimensionado: s\'i plausible a 24$\times$7.}\\
\textbf{Jornada 8\,h: no} sin escalar m\'as.\\[0.35em]
\footnotesize El pipeline \textbf{no} se midi\'o E2E a 100k. Ritmo = $\min$ de etapas medidas
(cap.~\ref{ch:modelo}).
}
\begin{figure}[H]
\centering
\begin{tikzpicture}
\begin{axis}[
xbar,
width=0.78\textwidth,
height=4.6cm,
xlabel={Facturas / hora que aguanta el pipeline},
symbolic y coords={dedicado,actual},
ytick=data,
yticklabels={\empty,\empty},
xmin=0, xmax=650,
enlarge y limits=0.45,
bar width=22pt,
bar shift=0pt,
grid=major,
major grid style={ipsgrey!25},
clip=false,
]
\addplot[fill=failred!75, draw=failred] coordinates {(100,actual)};
\addplot[fill=passgreen!75, draw=passgreen] coordinates {(400,dedicado)};
\node[anchor=east, font=\small\bfseries, align=right]
at (axis cs:-5,actual) {Host actual\\(hoy)};
\node[anchor=east, font=\small\bfseries, align=right]
at (axis cs:-5,dedicado) {Host dedicado\\(estimado)};
\node[anchor=west, font=\normalsize\bfseries] at (axis cs:110,actual) {$\sim$100};
\node[anchor=west, font=\normalsize\bfseries] at (axis cs:410,dedicado) {$\sim$400};
\draw[ipsblue, ultra thick, dashed]
(axis cs:139,actual) -- (axis cs:139,dedicado);
\node[font=\scriptsize\bfseries, text=ipsblue, anchor=south, align=center]
at (axis cs:139,dedicado) {meta 139};
\draw[warnorange, ultra thick, dashed]
(axis cs:570,actual) -- (axis cs:570,dedicado);
\node[font=\scriptsize\bfseries, text=warnorange, anchor=south, align=center]
at (axis cs:570,dedicado) {meta 570};
\end{axis}
\end{tikzpicture}
\caption{Barras = capacidad. L\'ineas = metas. Rojo no llega a 139; verde llega a 139 pero no a 570.}
\label{fig:veredicto-brecha}
\end{figure}
\section{Si hoy no est\'a garantizado: qu\'e hace falta}
\begin{enumerate}
\item \textbf{Host dedicado} (sin MLflow/Airflow/n8n); RAM $\geq$16--32\,GiB.
\item \textbf{OCR con margen} hasta sostener $\geq$139 fact/h bajo carga real.
\item \textbf{LLM async} (\texttt{ASYNC\_QUEUE=true}, 1--2 workers; ya $\approx$506/h medidos).
\item \textbf{Agent Selenium:} 1 PC basta para 139/h; $N$ PCs para 570/h.
\item \textbf{Presupuesto LLM} $\approx$ USD\,2\,570/mes si pasan 100k a extracci\'on.
\item \textbf{Validar E2E} de cientos de PDFs punta a punta (a\'un pendiente).
\end{enumerate}
\section{Por meta operativa}
\begin{description}
\item[100k/mes en 24$\times$7 ($\geq$139 fact/h)]
Plausible en host dedicado. En compartido depende de que el OCR no se quede en el piso $\sim$100.
\item[100k/mes en jornada 8\,h ($\geq$570 fact/h)]
No con el estimado dedicado ($\sim$400). Escalar OCR, agents Selenium y LLM, y re-medir.
\end{description}