Files
papers/hanzo-search/sections/08-production-deployment.tex

85 lines
2.4 KiB
TeX

\section{Production Deployment}
\label{sec:production}
\subsection{Infrastructure}
Hanzo Search is deployed on Kubernetes with the following components:
\begin{itemize}[leftmargin=1.1em]
\item \textbf{Search API}: 6 pods, auto-scaling to 24, handling query processing and orchestration.
\item \textbf{Retrieval cluster}: 24 nodes (Elasticsearch + HNSW index), 8TB RAM, 50M documents.
\item \textbf{Re-ranking service}: 4 GPU pods (A100), batch processing top-100 candidates.
\item \textbf{LLM Gateway}: Hanzo LLM Gateway with failover across providers.
\item \textbf{Frontend}: Next.js application with Supabase for user data and analytics.
\end{itemize}
\subsection{Query Analysis (12 Months)}
\begin{table}[H]
\centering
\begin{tabular}{lr}
\toprule
\textbf{Metric} & \textbf{Value} \\
\midrule
Total queries & 2,147,893 \\
Unique users & 312,456 \\
Avg. queries/user/day & 3.2 \\
Avg. answer length & 487 tokens \\
Avg. sources cited & 4.7 \\
Citation click rate & 23.1\% \\
Regeneration rate & 8.4\% \\
P50 latency (e2e) & 1.8s \\
P99 latency (e2e) & 4.2s \\
\bottomrule
\end{tabular}
\caption{Production statistics (12 months).}
\label{tab:prod_stats}
\end{table}
\subsection{Query Category Distribution}
\begin{table}[H]
\centering
\small
\begin{tabular}{lcc}
\toprule
\textbf{Category} & \textbf{Volume} & \textbf{Satisfaction} \\
\midrule
Technical/programming & 28.4\% & 4.5/5 \\
Research/academic & 19.2\% & 4.3/5 \\
Product comparison & 14.7\% & 4.4/5 \\
Current events & 12.1\% & 4.0/5 \\
How-to/tutorial & 11.3\% & 4.6/5 \\
General knowledge & 8.9\% & 4.2/5 \\
Other & 5.4\% & 3.9/5 \\
\bottomrule
\end{tabular}
\caption{Query category distribution and satisfaction in production.}
\label{tab:query_dist}
\end{table}
\subsection{Error Analysis}
We manually analyzed 500 low-rated responses to identify failure modes:
\begin{table}[H]
\centering
\small
\begin{tabular}{lcc}
\toprule
\textbf{Failure Mode} & \textbf{Frequency} & \textbf{Mitigation} \\
\midrule
Retrieval miss & 34\% & Better query expansion \\
Outdated information & 22\% & Freshness re-ranking \\
Hallucinated claim & 18\% & Stricter NLI threshold \\
Wrong UI component & 12\% & Intent classifier tuning \\
Incomplete answer & 9\% & Longer generation budget \\
Formatting error & 5\% & UI component validation \\
\bottomrule
\end{tabular}
\caption{Error analysis of low-rated responses.}
\label{tab:errors}
\end{table}