RAG Is a Search Problem Before It Is a Generation Problem
Better prompts cannot rescue weak retrieval. A practical framework for relevance, ranking, and evaluation before the model sees a token.
Independent technical journal
Useful notes on building AI systems that survive contact with reality.
Better prompts cannot rescue weak retrieval. A practical framework for relevance, ranking, and evaluation before the model sees a token.
Think beyond fine-tuning: adapters change how specialized models can be packaged, routed, versioned, and operated on shared infrastructure.
Sparse demand is not missing demand. What long runs of zero reveal—and why standard forecasting intuition breaks.
The archive
Essays on AI, software, data, and the engineering details that are easy to skip until they matter.
A useful agent loop is not “keep trying.” It is a bounded control system with progress checks, explicit stop reasons, and a resumable state.
The best model is a query-level decision. Routers make quality, cost, latency, and risk part of the request path.
A task can pass through a fragile, expensive, or unsafe path. Evaluate tool choice, arguments, order, state changes, and recovery—not only the final text.
A screenshot can show an AI what the user saw. It still cannot explain what the user expected—or what happened one second earlier.
We keep rewarding assistants for producing an answer. Sometimes the most useful product behavior is a well-designed refusal to guess.
The glamorous demo belongs to the biggest model. The repetitive production task often belongs to the cheapest model that reliably fits.
An app feels different when your data lives with you and the server helps devices cooperate—not when the server grants temporary access to your work.
Caching makes systems fast by serving the past. The hard question is not whether data is cached, but how old reality is allowed to become.
A larger context window lets you keep more information nearby. It does not organize that information—or make every token equally useful.
A voice assistant can recognize every word and still be unbearable to talk to. Conversation depends on timing, interruption, and knowing whose turn it is.
Generated data can multiply examples of a world a model already knows. It cannot quietly replace observing the world itself.
Automation feels safe when people can see where it is going, interrupt it, correct it, and continue without starting from zero.
About the author
I'm Sujithra Kathiravan, an AI and machine learning engineer interested in applied AI, model infrastructure, developer tools, and the operational details that turn promising demos into dependable systems.