92 lines
3.5 KiB
TeX
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}
|