← All services
AI Engineering

AI Engineering & Custom AI Solutions

RAG pipelines, small language models and custom AI applications, engineered and integrated properly, not bolted on.

Overview

Build AI that actually fits your data and your systems

In short: RAG pipelines, small language models and custom AI built into your own data and applications. Starts with the task rather than the technology: who asks the question, what a good answer looks like, and what a wrong one would cost.

Off-the-shelf Copilot licences solve one problem. Building AI into your own data and applications is a completely different discipline, and it's where generic tools quietly stop being enough.

Who this is for
You want AI answering questions from your own documents, not the public internet
A one-size-fits-all API is too costly, too generic or too risky for your use case
You need AI built into a product or internal tool, with real governance and grounding

The problem

Bolting a raw language model onto your business without retrieval, grounding or evaluation produces confident, plausible, wrong answers, and no audit trail for why. In production, an ungrounded model is a liability, not a feature.

What we would do

Start with a discovery conversation about the task rather than the technology: who asks the question, what a good answer looks like, where the source material lives, and what a wrong answer would cost. Most failed AI projects are scoping failures rather than model failures.

  • If the questions people ask are already answered by a document nobody can find, the problem is search and governance rather than AI.
  • If the cost of a wrong answer is high and unbounded, design the human review step before the system, not after.

When we are not the answer: If you want a demonstration built quickly to show a board, plenty of people will do that faster and cheaper than us. We are worth paying for when the thing has to survive contact with real users and real data.

How we help

Off-the-shelf Copilot licences solve one problem. Building AI into your own applications and data is a different discipline entirely: retrieval-augmented generation (RAG) over your own documents, small language models (SLMs) sized and hosted for the job rather than a one-size-fits-all API, and integrations that call AI models safely from the systems you already run.

More on how we deliver AI engineering

We design and build the pipeline end to end, model selection and configuration, retrieval and grounding so answers are based on your real data, and the custom applications or APIs that put it in front of your team or your customers.

Systech is founder-led by Ryan Mangan, a Microsoft MVP for Azure Virtual Desktop and Windows 365, a Chartered Fellow of the BCS (FBCS) and author of Packt's two-edition Mastering Azure Virtual Desktop.

Retro pixel-art illustration of a glowing circuit-node brain shape in the style of a classic arcade tech-tree screen
What's included

Everything you need, managed for you

Retrieval-Augmented Generation (RAG) over your own documents and data
Small Language Model (SLM) selection, sizing and hosting
AI API integration and model configuration
Custom AI applications and internal tools
Prompt engineering and evaluation for reliability
Governance, cost control and monitoring for production AI

When do you need custom AI engineering rather than a Copilot licence?

When the answer has to come from data Copilot cannot see, or the AI has to live inside something you built. Microsoft 365 Copilot is very good within its boundary: content in Exchange, SharePoint, OneDrive and Teams, reached as the signed-in user, inside the applications people already use.

If your question is 'summarise this thread' or 'draft this from those documents', buy the licence and stop reading. Custom engineering starts where that boundary does: a case management system, a product catalogue, an equipment history, a decade of PDFs in a share nobody has indexed, or a customer-facing feature in your own product.

The second trigger is control. A licence gives you the model, the interface and the behaviour Microsoft chose. An engineered system lets you decide what the model may see, how the answer is grounded, what it does when it does not know, what gets logged, where inference runs and what the whole thing costs per query.

Most organisations need the licence and not the engineering. The ones that need the engineering usually know why, because they have already tried to solve the problem with a general tool and hit the same wall twice.

What does a RAG pipeline actually consist of?

Five stages, and the interesting work is in the first two rather than the model. Ingestion collects the source material and normalises it, which in practice means dealing with PDFs, scanned documents, spreadsheets, database records and pages that were never written to be machine-read.

Chunking splits that content into passages small enough to retrieve precisely and large enough to still make sense on their own, carrying the metadata that says where each passage came from. Indexing turns those passages into a searchable form, typically a vector index, often combined with keyword search because the two fail in different places.

Then retrieval selects the passages relevant to a question, and generation asks the model to answer using only those passages, with citations back to the source. Around all of that sits the part people forget: permission filtering, so a user only ever retrieves passages they are entitled to see, and a refusal path, so that when retrieval finds nothing useful the system says so rather than improvising. A pipeline without those two is a demonstration, not a product.

Where do RAG projects usually go wrong?

In retrieval, almost every time, and it gets blamed on the model. If the right passage never reaches the model, no amount of prompt engineering or model upgrading will produce a correct answer.

The common causes are mundane:

  • Chunks split mid-table or mid-clause, so the meaning is lost
  • Documents that failed to parse and silently ingested as empty
  • A purely semantic index that cannot match a part number or a policy reference
  • No way to tell whether retrieval succeeded, because the output looks plausible either way

The second failure is stale content. An index built once at launch drifts from reality with every document that changes, and nobody notices, because a confidently wrong answer from a superseded policy is indistinguishable from a right one.

The third is permissions, where the pipeline reads everything with a single service identity and hands answers to whoever asks: an oversharing incident with extra steps. The fourth is having no way to tell whether a change made things better, which is why evaluation belongs in the build rather than after it.

How do you evaluate an AI feature before it goes live?

With a fixed test set that you write before you tune anything. That means a collection of real questions people actually ask, each with the passage that should be retrieved and a note on what a good answer contains, including the questions where the correct behaviour is to refuse. It is unglamorous work and it is the difference between engineering and guessing, because without it every change becomes a matter of opinion about whether the last few answers felt better.

Evaluate retrieval and generation separately, because they fail separately. Retrieval is measured on whether the right passage came back at all and how far down the list it was; generation is measured on whether the answer is supported by the retrieved passages, whether it cites them, and whether it declines when it should.

Add adversarial cases deliberately: questions the source material does not answer, questions that invite the model to speculate, and attempts to talk it out of its instructions. Then run the same set after every change, so improvement is demonstrated rather than asserted.

When is a small language model the right choice?

When the task is narrow, the volume is high, and the data should not leave your control. A large general-purpose model is a good default precisely because it handles anything, but most production tasks are not anything: classifying an enquiry, extracting fields from a form, rewriting text into a house style, routing a ticket.

For work with a tight, well-defined shape, a smaller model can meet the quality bar at a fraction of the cost and latency, and can run somewhere you choose rather than somewhere you send data to.

The trade is capability and effort. Smaller models are less forgiving of vague prompting, weaker at multi-step reasoning, and more likely to need real evaluation work and sometimes fine-tuning to reach the standard a large model reaches out of the box.

The sensible pattern is usually mixed rather than either or: prototype against a capable general model to establish what good looks like, then move the high-volume, well-defined steps to something smaller once you have a test set that proves the smaller model still passes.

Where should the model actually run?

There are three broad options and the decision is mostly about data, not performance. A hosted commercial API is fastest to build against and gives you the strongest models, at the cost of sending content to a third party under their terms.

A model hosted in your own Azure subscription keeps inference inside a boundary you control and inside your existing commercial relationship, which matters when a client contract or a regulator asks where processing happens. Self-hosting on infrastructure you own goes furthest on control and is the most work to run, and only makes sense when there is a concrete reason it has to be that way.

The practical advice is to decide the data position first and let it constrain the options, rather than picking a platform and then arguing about the data afterwards. Write down what categories of information the system will handle, what your own contracts and policies say about where they may be processed, and what you would have to tell a client if they asked.

That usually eliminates one option immediately and makes the remaining choice straightforward. Build the integration so the model is a replaceable component either way, because this part of the market moves faster than your application will.

How do you keep the cost of a production AI feature under control?

By treating it as a consumption cost with a per-request unit price, and designing for that from the start. The levers are the same ones that control any metered service:

  • How much context you send
  • How much output you request
  • Which model handles which request
  • How many requests you make at all

Sending an entire document when three retrieved passages would do is the single most common source of avoidable spend, and it usually also makes the answer worse, because relevant content gets diluted.

Beyond that:

  • Cache what repeats, because a surprising proportion of real-world questions are the same question
  • Route by difficulty, so a cheap model handles the easy majority and an expensive one handles the rest
  • Put a hard ceiling on anything user-facing, because an unbounded loop or an abusive caller can produce a genuinely alarming invoice overnight

Instrument cost per request and per feature from day one, not after the first bill, and treat a rising cost per answer as a design signal rather than a billing problem.

What does governance look like for a custom AI application?

It starts with writing down what the system is for and what it must never do, because most governance failures are scope failures. From there the substantive controls are:

  • What data it may access, and under whose permissions
  • What is logged, for how long, and whether prompts might contain personal data
  • How a user knows they are talking to an AI system
  • How they escalate to a person
  • Who is accountable for the output when it is wrong

Human review is not a checkbox, it is a named responsibility with the authority to overrule the system.

Where the output influences a decision about a person, the bar rises and the question stops being technical. UK data protection law places real constraints on automated decision-making, and the emerging European rules turn on how a system is used rather than how it was built, so the same model can sit in a low-risk and a high-risk application.

The practical response is to record the purpose, the data, the human checkpoint and the review date at design time. Retrofitting that record after launch is considerably harder than writing it while the decisions are still being made.

How does this fit with the Microsoft stack you already run?

Usually as an extension of it rather than an alternative to it. Identity is the first integration point: an internal AI tool should authenticate through Entra ID like everything else, so access is governed by the same groups, the same Conditional Access policies and the same joiner and leaver process, rather than by a separate user list somebody maintains by hand. That single decision removes most of the access-review problems custom applications otherwise create.

Beyond identity, the pieces fit where you already have them: Azure for hosting and for keeping inference inside your own subscription, your existing Microsoft 365 content as a source where it is genuinely the right source, and Power Platform for the workflow around the AI rather than the AI itself.

The boundary worth respecting is that Microsoft 365 Copilot and a custom system solve different problems, and building a custom answer engine over content Copilot already handles well is expensive duplication. We would rather point you at the licence.

What does an engagement look like, and where does our scope end?

It starts with a discovery conversation about the task, not the technology:

  • Who asks the question
  • What a good answer looks like
  • Where the source material lives
  • What happens today when it goes wrong
  • What the answer being wrong would cost

That conversation frequently ends with a recommendation not to build anything, because the problem turns out to be a search or a data quality problem wearing an AI costume, and solving it that way is cheaper and more reliable.

Where a build is right, the shape is a narrow prototype against real data and a real test set, an honest assessment of whether it clears the bar, then production hardening: permission filtering, evaluation in the pipeline, logging, cost controls, monitoring and a documented handover.

Our scope is the engineering and the governance around it. We are not a data cleansing service, we will not claim an accuracy figure we cannot demonstrate on your own test set, and where the requirement is really Copilot adoption and permissions readiness, that is our AI and Copilot service rather than this one.

Microsoft 365 Copilot licence or custom AI engineering: which question are you actually asking?
QuestionMicrosoft 365 CopilotCustom AI engineering
What data can it answer fromContent in your Microsoft 365 tenant: mail, files, sites and TeamsWhatever you connect: line-of-business databases, document archives, product data, your own application
Where it appearsInside the Microsoft applications people already useWherever you put it: an internal tool, an intranet page, an API, a feature in your own product
How answers are groundedHandled by Microsoft, as the signed-in user, with the platform's own behaviourYour retrieval design, your citation rules, your refusal behaviour when nothing relevant is found
Who controls the modelMicrosoft selects and updates itYou choose the model, the hosting location and when it changes
Cost shapePer user, per month, whether or not it is usedPer request, driven by volume, context size and model choice
Effort to get valueReadiness and permissions work first, then licence and adoptionDiscovery, data preparation, evaluation and production hardening
Best fitEveryday document, mail and meeting work across the whole organisationOne well-defined task, high volume or high value, over data Copilot cannot reach
Frequently asked

Questions we hear a lot

What is retrieval-augmented generation (RAG)?

RAG grounds an AI model's answers in your own documents and data. Instead of relying on what a model was trained on, it retrieves the relevant material at query time and answers from that, so responses are accurate, current and traceable back to a source, which is essential for business use.

Why use a small language model (SLM) instead of a big API?

Small language models can be cheaper, faster, more private and hostable on infrastructure you control. For many focused business tasks an SLM sized for the job outperforms a general-purpose API on cost and latency, without sending your data to a third party.

Can you integrate AI into our existing applications?

Yes. We build AI API integrations and custom applications that call models safely from the systems you already run, with the prompt engineering, evaluation and monitoring needed to keep them reliable in production.

How do you stop an AI system inventing answers?

Three things together, and none of them works alone. Retrieval, so the model answers from passages pulled out of your own material rather than from what it remembers. Citations, so every claim points back to a source a person can open and check. And an explicit refusal path, so that when retrieval finds nothing relevant the system says it does not know instead of producing something plausible. On top of that, an evaluation set that deliberately includes questions your content does not answer, run after every change, so you can see whether the refusal behaviour still holds.

Can a RAG system respect our existing permissions?

It has to, and this is one of the first things to check on any proposal. The wrong design indexes everything under a single service identity and serves answers to whoever asks, which turns a document library's access controls into decoration. The right design carries permission metadata through ingestion and filters retrieval against the identity of the person asking, so a user can only ever be answered from content they could have opened themselves. Ask any supplier to explain exactly how their pipeline does this, and treat a vague answer as the answer.

How long does a custom AI build take?

We scope it after discovery rather than before, because the variable is almost never the model, it is the state of your data. Where the source material is already structured, current and accessible, a narrow prototype comes together quickly. Where it is a decade of scanned PDFs in a share with no consistent naming, the preparation is the project and the AI part is comparatively short. That is why we start with a narrow prototype against real data: it establishes what the real effort is before anyone commits to a production build.

Should we build our own AI tool or wait for the vendor to add it?

Often waiting is the right answer, and we will say so. If the capability you want is on a published roadmap for a platform you already pay for, building your own version of it is a cost you will carry twice. Building makes sense where the need is specific to how your business works, where the data involved is yours rather than the vendor's to reach, or where the capability is a genuine differentiator in your own product. Building because a general tool almost does it is usually the expensive path.

AI engineering is delivered UK-wide from our office in Brough, East Yorkshire, with on-site support across the county where it helps. We work with businesses in York, Sheffield, Barnsley, Halifax, Doncaster and Wakefield and 6 more Yorkshire towns and cities, and remotely with clients right across the UK.

Get Copilot-ready, safely

Book a free Copilot readiness assessment and we'll check your data, licensing and governance, then help your team actually adopt and use Microsoft 365 Copilot.

Technology partners

Best-of-breed technology we use to deliver AI engineering.

See all technology partners →