NM Company
A portfolio and enquiry site for events firm NM Company
A visual portfolio and enquiry website for an event management and supplies firm — presenting a full...
Read itLLM systems, RAG and applied ML
AI features built like engineering, not like demos — evaluation harnesses before launch, grounded retrieval with citations, hallucination guardrails and a cost-per-request budget you monitor.
The most valuable thing we do on an AI engagement is sometimes to tell you not to build one.
A regex will beat an LLM at extracting a GSTIN. A trained classifier will beat an LLM at routing a support ticket, at a thousandth of the cost and a hundredth of the latency. A SQL query will beat an LLM at "how many orders shipped late last month" — and it will be right, which the LLM will not reliably be. If the task has a deterministic answer, a deterministic system should produce it. LLMs are for language: summarising, drafting, extracting from unstructured text, conversing, and reasoning over documents where the rules cannot be written down.
When it is genuinely the right tool, we build it like engineering rather than like a demo. That means an evaluation harness before anything ships, guardrails that catch a hallucination before your customer reads it, a retrieval layer that grounds every answer in a citable source, and a cost-per-request budget you actually monitor. The demo is the easy part — anyone can produce an impressive one in a weekend. Making it correct on the four hundredth query, at a cost per query you can defend, is the work.
If you cannot measure whether your AI feature got better or worse, you are not engineering. You are gambling with a changelog.
So the first artefact on every AI project is not a prompt. It is an evaluation set: 150 to 400 real inputs from your actual domain, each with a known-good answer, assembled with your subject matter experts. It costs a week and it is the single highest-leverage week in the project.
The harness runs that set on every change — a new prompt, a new model version, a new retrieval strategy — and scores it: exact match where there is a right answer, faithfulness to the retrieved source where there is not, a rubric graded by a stronger model with human spot-checks, plus latency at p50 and p95 and cost per request. It runs in CI, exactly like a test suite, because that is what it is.
The value shows up the first time somebody says "let us just tweak the prompt". Without a harness, that is a vibe. With one, you find out in four minutes that the tweak fixed three cases and quietly broke eleven. We have watched more than one team ship a "small prompt improvement" that dropped accuracy nine points, and only discover it from customer complaints a fortnight later.
We have been called in to fix all six of these. Five of them are avoidable in week one.
No eval set, no baseline, no gate. Every prompt change is a vibe, and a "small improvement" quietly dropped accuracy nine points a fortnight ago.
Asked about a refund window that does not exist, it makes one up in fluent, plausible English. There is no refusal path, so refusing was never an option it had.
Twenty retrieved chunks stuffed into every prompt, the frontier model on every request including "hi", no caching. ₹3 lakh a month for something a reranker and a router would have run for ₹40,000.
Three sequential model calls and an unindexed vector search. Users abandon the chat and open a support ticket, which was exactly what this was meant to prevent.
Documents chunked naively at 500 characters, cutting tables and clauses in half. The model is not hallucinating — it is faithfully summarising garbage.
PII in prompts, to a consumer API tier, with no data processing agreement and no redaction. The DPDP question arrives and there is no honest answer.
| Classic ML / rules | Prompt + RAG | Fine-tuning | |
|---|---|---|---|
| Answer lives in your documents | No | Best | Poor — and goes stale |
| Task is deterministic (extract, route, count) | Best | Wasteful | Wasteful |
| Needs a consistent tone or output format | No | Workable | Best |
| Cost per request | Negligible | Moderate | Low, after training |
| Answers must be citable | n/a | Yes | No |
| Updates when your data changes | Retrain | Instantly | Retrain |
| Typical time to production | 3–6 weeks | 6–12 weeks | 10–16 weeks |
None of this is visible in the demo. All of it is what separates a feature you can defend from one you will have to apologise for.
150–400 real inputs with known-good answers, scored on accuracy, faithfulness, refusal correctness, latency and cost. Runs on every prompt and model change. A regression fails the build.
Answers grounded strictly in retrieved context. Claims verified against source chunks. An explicit "I do not know" path with human escalation, because a system that cannot refuse will always invent.
Semantic chunking that respects tables and clauses, hybrid keyword plus vector search, a reranker, and citations the user can open. Most "hallucination" is a retrieval bug wearing a costume.
Difficulty routing — cheap model for the easy 80%, frontier model only where it earns it. Prompt caching, context sizing, streaming. Cost per request tracked with an anomaly alert.
PII redaction before egress, enterprise API tiers that exclude your data from training, full prompt and completion logging, and open-weight models in your own VPC where DPDP or a contract demands it.
Every request traced with its retrieved context, tokens, cost and latency. Thumbs-down feedback routed into the eval set, so production failures become tomorrow's regression tests.
The order is the whole method. Teams that build first and measure later ship confidently wrong systems.
What is the task, what does success look like numerically, what does a wrong answer cost, and is a model even the right tool? This is where we tell you a classifier or a SQL query does the job for a hundredth of the price. Several of our best AI engagements ended here, and those clients came back.
150 to 400 real inputs from your domain, each with a known-good answer, built with your subject matter experts. Then the harness that scores against it and the thresholds that gate a release. This is the highest-leverage fortnight in the project and it happens before any feature is written.
Ingest, semantic chunking that respects document structure, embeddings, hybrid search, reranking. We measure retrieval quality on its own — recall at k, before generation is involved — because you cannot fix a generation problem that is actually a retrieval problem.
Prompt architecture, tool calling, structured outputs validated deterministically, citation enforcement, refusal paths and human escalation. Everything iterated against the harness, so every change is scored rather than argued about.
Difficulty routing, prompt caching, context sizing, streaming to make p95 feel faster than it is. Then we run it in shadow against real traffic with humans reviewing before anything reaches a customer, and only open it up when the numbers hold.
Traced requests, cost anomaly alerts, and thumbs-down feedback routed straight back into the eval set. Every production failure becomes a permanent regression test, so the same mistake cannot ship twice. Models change under you — the harness is what makes that survivable.
Every AI system we ship carries an explicit budget for correctness, speed and cost, agreed with you before build and enforced as a release gate. "It seems pretty good" is not a launch criterion we accept.
Talk about your use caseReal domain inputs, expert-labelled
Streaming, with retrieval in the path
Difficulty routing, reranking, caching
Or an explicit, honest refusal
Contracts, policies, tenders, technical manuals, claim files. Grounded question answering with citations the reader can open, clause extraction into structured fields, and comparison across versions. This is where RAG genuinely earns its keep — and where naive chunking quietly ruins the whole thing by cutting a table in half.
Answers grounded in your help centre and order data, with a refusal path and a clean handoff to a human. Deflection measured honestly — against resolution, not against "did not open a ticket".
Ticket routing, invoice and KYC extraction, lead scoring, defect detection. Often a small trained model, not an LLM — faster, cheaper, more accurate, and we will say so.
Demand forecasting, churn propensity, dynamic pricing, next-best-action. Real ML with a proper backtest, not a chatbot wearing a lab coat.
Tool-calling systems that read a document, query a database, draft an action and stop for a human at the point where money or risk changes hands. Kept deliberately narrow — a broad autonomous agent is a demo, whereas a narrow one that reconciles three hundred invoices a day and flags the eleven it is unsure about is a product.
Frontier models change every quarter. The harness, the retrieval layer and the guardrails are what persist — so we build so you can swap the model in an afternoon.
Systems that are measured, not demoed.
A Shopify storefront for a Surat ethnic-wear label — 200+ SKUs of lehengas, sarees and suits organised by type, colour, fabric and work, wit...
A fleet, ePOD and route-optimisation platform built offline-first for drivers in low-connectivity corridors — because the two off-the-shelf...
A Shopify storefront for a Surat watch and eyewear retailer — browsable by gender, brand, style and combo, with predictive search, COD check...
Sometimes the answer is a two-week classifier instead of a six-month AI programme. You will get that answer straight, and for free, in the first conversation.
Proof
NM Company
A visual portfolio and enquiry website for an event management and supplies firm — presenting a full...
Read itSwasthya Sarathi
A multi-service healthcare platform that helps people find hospitals, doctors, labs, medical stores,...
Read itMV Tech Education
A course-catalogue and admissions website for a Bihar vocational institute — leading with industrial...
Read itProduction web applications built on Laravel, Next.js and Postgres — typed, tested, observ...
ExploreFlutter, React Native and native apps that hold up offline, on old hardware and on a metro...
ExploreCommerce platforms where the checkout converts and the back office reconciles — multi-ware...
ExploreLet's talk ai & ml development
A senior engineer reads every enquiry. You'll get a real answer — scope, risk and a number — within one business day.