← Blog

What Is the LLM Approach? A Practical Explanation

2026-09-05 · 5 min read · SubToAPI Team

What the LLM approach actually means

The "LLM approach" refers to solving a software problem by prompting a large language model instead of writing explicit rules or training a custom machine learning model for the task. Instead of hand-coding logic ("if the email contains these words, classify it as spam") or collecting a labeled dataset and training a classifier from scratch, you describe the task in natural language and let a general-purpose model — trained on massive amounts of text — figure out how to do it.

This is a genuine shift in how software gets built. Traditional programming encodes logic explicitly. Classic machine learning learns a narrow function from labeled examples. The LLM approach skips both: you write a prompt, optionally give a few examples or reference documents, and the model produces the output. It's closer to giving instructions to a very capable but occasionally unreliable employee than to writing deterministic code.

The three approaches compared

It helps to see the LLM approach next to what came before it.

The tradeoff is that the LLM approach gives up some determinism and per-task accuracy in exchange for speed of development and flexibility across tasks.

Core techniques inside the LLM approach

"Using an LLM" isn't one technique — it's a family of methods you combine depending on the problem:

A well-built LLM application usually combines two or three of these, not just a single prompt.

When the LLM approach makes sense

The LLM approach is a good fit when:

It's a weaker fit when you need guaranteed, auditable logic (financial calculations, legal compliance rules) or extremely low latency at massive scale, where a purpose-built model or deterministic code is more appropriate.

What the LLM approach looks like in code

In practice, the LLM approach usually means sending a prompt to a model API and getting text back. A basic call looks like this:

curl https://api.subtoapi.app/v1/messages \
  -H "Authorization: Bearer $SUBTOAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4",
    "max_tokens": 300,
    "messages": [
      {"role": "user", "content": "Summarize this support ticket in one sentence: The user cannot reset their password after the last update."}
    ]
  }'

Notice there's no training step, no dataset, no model file — the "development" is the prompt itself, plus whatever context or tools you attach around it. This is the practical difference between the LLM approach and classic ML: the iteration loop is editing text, not retraining a model.

If you're building on top of Claude specifically, SubToAPI turns your existing Claude access into a standard HTTPS API with application keys, streaming, and usage tracking, so you can apply the LLM approach in production code without managing separate infrastructure. The quickstart and messages docs cover the request format if you want to try it directly.

Common pitfalls with the LLM approach

questions

Is the LLM approach the same as machine learning? No. Classic machine learning trains a model on your own labeled data for one specific task. The LLM approach uses an already-trained general-purpose model and steers it with prompts, without training anything yourself in most cases.

Do I need to fine-tune a model to use the LLM approach? Usually not. Most LLM-approach applications rely on prompting, few-shot examples, and retrieval instead of fine-tuning. Fine-tuning is reserved for narrow, high-volume tasks where prompting alone isn't accurate enough.

When should I avoid the LLM approach? Avoid it for tasks requiring guaranteed determinism or auditable logic, like financial calculations or compliance rules, where explicit code or verified computation is safer than a probabilistic model output.

Turn your Claude access into an HTTPS API

SubToAPI gives you application API keys, streaming, tool use and usage insights on top of your existing Claude access — set up in minutes.

Start free  Read the quickstart →