Hasina Razafintsalama

Hasina RAZAFINTSALAMA

← Back to Blog
AI & RAG

When and How to Add AI to an Existing Application

AI is not a magic fix. In the right places it delivers real value fast; in the wrong ones it adds cost and unpredictability. Here is how to tell them apart and integrate cleanly.

2026-05-05·11 min

Every product team is now asking where they should add AI. The honest answer is that most features do not need it, and a few specific ones benefit enormously. The work is telling those apart before you build, then integrating in a way that does not make the rest of the system harder to reason about.

Ask what problem you are solving first

Do not start from "where can we put AI". Start from a problem that is real, measurable, and currently unsolved or solved badly. Then ask whether the problem is the kind AI is good at: an input space too large or ambiguous for rules, with tolerance for an occasional imperfect answer, and enough volume that automating it matters. If a deterministic algorithm already solves it reliably, use that instead.

Where AI genuinely adds value

  • Natural language interfaces: search over your own content, question answering, document summarization.
  • Content generation with a human in the loop: first drafts, product descriptions, code suggestions.
  • Classification and routing: support ticket triage, intent detection, anomaly flagging.
  • Extraction: pulling structured fields out of unstructured documents, emails or PDFs.

Good fit for AI, or classic code?

SignalGood fit for AIUse classic code
InputUnstructured, ambiguous, varied phrasingStructured, well-defined
CorrectnessAn occasional wrong answer is tolerable and checkableMust be exact every time
RulesToo many edge cases to enumerateA handful of clear rules
VolumeHigh enough that automation pays offRare, a human can handle it
DataYou have examples or documents to ground itNo relevant data available

Integration patterns

How the AI connects to your app matters as much as the model choice. Four patterns cover almost everything, and they are not exclusive.

PatternLatencyBest for
Synchronous API callSeconds, in the requestChat, short generation, when the user waits on purpose
Background job (queue)Out of the critical pathBulk classification, enrichment, long generation
Dedicated AI serviceOne network hopRAG, shared model access, isolating Python from a PHP or Node app
On-device or edgeMillisecondsSmall models, offline, privacy-sensitive inference

Provider API or self-hosted model

Start with a provider API (OpenAI, Anthropic, Mistral). You get a current model, no infrastructure, and you can measure real value before committing. Move to a self-hosted open model only when you have a concrete reason: data residency rules, a per-token cost that a fixed GPU bill would beat at your volume, or a latency floor an external call cannot meet.

Cost, latency and fallback

  • LLM calls cost money per token; cache answers to repeated or near-identical questions, and keep prompts tight.
  • A generation call takes one to several seconds; design the UX for it with streaming, optimistic states, or an async result.
  • Always have a non-AI fallback: a static help page, a rule-based path, a contact form, for when the model times out or fails.
  • Track tokens, cost, latency and a quality signal (thumbs, correction rate) per feature, attributed to a user or tenant.

Roll it out one feature at a time

Add AI to one well-defined feature, put it behind a flag, measure its impact against the metric you started from, then expand. A focused AI feature that users actually use beats an ambitious AI overhaul that ships late and unproven.

FAQ

How do I know if my feature needs AI?
Check the input and the tolerance for error. If the input is unstructured and varied, the rules have too many edge cases to enumerate, an occasional imperfect answer is acceptable and checkable, and the volume is high enough to matter, AI fits. If a deterministic algorithm already solves it reliably, use that.
Provider API or a self-hosted model?
Start with a provider API: a current model, no infrastructure, and you can prove the value first. Self-host an open model only for a concrete reason such as data residency, a token cost a fixed GPU bill would beat at your volume, or a latency floor an external call cannot meet.
How much does adding an LLM to an app cost?
The variable cost is per token: one embedding plus one generation call per request for a typical feature, priced per million tokens. At low volume it is a few tens of dollars a month; caching repeated questions and trimming prompts are the two levers that keep it flat as usage grows.
How do I handle LLM latency in the UX?
A generation call takes one to several seconds. Stream tokens as they arrive so the interface responds immediately, or run the call as a background job and notify the user when the result is ready. Never block a page render on a synchronous LLM call.
Where should I start when adding AI?
Pick one feature with a clear metric, put the AI behind a flag, and compare against that metric. Measure cost, latency and a quality signal before you expand. One proven feature beats a broad rollout you cannot evaluate.

AI is a tool with a specific shape: good at ambiguous input, tolerant tasks and high volume, weak at anything that must be exact. Match it to the right problem, connect it with the lightest pattern that works, and prove the value on one feature before you build the second.

Need help with this topic? AI & RAG Integration

Discover this service