A regulated company whose documents cannot leave its perimeter still has three ways to run a language model: the provider's hosted API under contractual controls, its cloud platform's managed model service, or an open-weight model on infrastructure it operates. Each option moves a different cost onto the company: contracts and approvals, capacity in the right region, or servers and on-call. This is what each one costs in operations, compliance evidence, latency and staffing, and which questions show whether an engineering firm has built it inside a client's perimeter.
The requirement arrives as one sentence: documents may not leave the perimeter. The architecture decision hides inside it, because the perimeter can be drawn in three places, and each place moves a different cost onto the company that draws it.
A model provider's hosted API keeps the perimeter in a contract with that provider. A cloud platform's managed model service keeps it in the cloud contract. An open-weight model on servers you operate keeps it in your own network, and hands you every duty the provider would otherwise perform.
The short answer: the choice is not between safe and unsafe, but between who carries which work. A hosted API needs no infrastructure of your own to start and ties you to the provider's retention terms, rate limits and retirement schedule. A managed model service can keep prompts away from the model's developer, for the models the cloud sells and operates itself, and puts regions, deployment types and reserved capacity into the design. A self-hosted open-weight model keeps inference on infrastructure you control and makes licences, accelerator capacity, serving security and on-call your job. What amBrain can substantiate publicly about its own LLM work, in full: We have taken an LLM integration to production inside a client's FinTech perimeter: extracting and normalising unstructured broker and venue notices — corporate actions, instrument and margin changes — into structured records the trading system consumes. The client is not named, which of the options below that project used is not disclosed, and this article is not a case study of it.
“Cannot leave the perimeter” means different things to a risk officer, a data protection officer and an infrastructure team. Written as questions, it becomes a requirement each option can be checked against:
The answers can differ by data class. A regulatory notice that is already public and a customer's identity document do not need the same perimeter, and a pipeline can route them differently.
Here the provider's contract and documentation define the perimeter, so they are read line by line. OpenAI's documentation on API data states that, as of March 1, 2023, data sent to the API is not used to train or improve its models unless the customer opts in. The same page states that abuse monitoring logs, which may contain prompts and responses, are generated by default and retained for up to 30 days, unless longer retention is required by law or reasonably necessary to protect the service or third parties from harm.
Both limits can be narrowed, and each narrowing is an approval rather than a setting:
The model is on the provider's schedule too. OpenAI's deprecations page states minimum notice periods before retirement, unless safety or compliance concerns require a faster timeline: at least 6 months for a generally available model, at least 3 months for specialised variants of one, and much shorter notice, such as 2 weeks, for preview models. Each retirement means scoring the replacement on your own documents before the date, so migration is recurring planned work rather than an incident.
Cloud platforms serve models from several developers, some of them under the cloud contract a company may already hold. Microsoft's documentation for models sold by Azure in Microsoft Foundry states that prompts, completions and embeddings are not available to OpenAI or other providers of those models. The same catalogue carries models Microsoft does not sell: for Claude models in Microsoft Foundry, its documentation names Anthropic as seller, operator and an independent data processor for prompts and outputs, and one hosting option processes them on Anthropic's infrastructure, possibly outside the selected Azure region.
Amazon Bedrock's documentation describes a model deployment account per model provider in each region, owned and operated by the Bedrock service team, to which model providers have no access, so they do not see customer prompts and completions.
The model still runs on infrastructure the cloud operates, not in your own network. For some perimeters that counts as inside; for others only the third option does. When it counts, the perimeter depends on choices made in the tenancy, and the documentation spells out their consequences:
For an EU financial entity in DORA's scope, the cloud contract is already an ICT third-party arrangement. On 18 November 2025 the European Supervisory Authorities published the list of critical ICT third-party providers subject to EU-level oversight, and it includes Amazon Web Services EMEA, Google Cloud EMEA and Microsoft Ireland Operations. The European Banking Authority notes that DORA became applicable on 17 January 2025 and that entities in its scope must keep a register of their contractual arrangements with ICT third-party service providers. A model provider the entity has not contracted before, or a new service under a cloud contract it already holds, is therefore a question for that register, not only for the architecture.
Self-hosting, on premises or on virtual machines in your own cloud account, brings inference inside, together with every duty the provider performed. The first duty is reading the licence, because open-weight models do not share one licence. Mistral Small 3, Qwen3-32B and OpenAI's gpt-oss-120b are published on Hugging Face under Apache 2.0. Meta's Llama 3.3 Community License, which covers the Llama 3.3 70B model sized below, requires use to follow its acceptable use policy. It also requires a licensee whose products or services, including its affiliates', had more than 700 million monthly active users in the calendar month before the release date to request a licence, which Meta may grant at its sole discretion.
Hardware follows from parameter count and precision. Llama 3.3 70B Instruct has about 70.6 billion parameters; at 16 bits per parameter the weights alone take about 141 GB (131 GiB), which does not fit on one 80 GB accelerator even before memory is set aside for the key-value cache of concurrent requests. The gpt-oss-120b model card states that MXFP4 quantisation of its mixture-of-experts weights lets the model run on a single 80 GB GPU.
The serving layer becomes your security boundary. vLLM's security documentation states that communication between nodes of a multi-node deployment is insecure by default and must be protected by placing the nodes on an isolated network, and that its API key option protects only endpoints under certain path prefixes, while other sensitive endpoints on the same server have no authentication. The model file belongs to the supply chain as well: Python's documentation warns that the pickle module is not secure and that malicious pickle data can execute arbitrary code during unpickling, which is why the safetensors format, built to store tensors safely as opposed to pickle, is the safer choice for weights.
What the company now runs itself:
Obligations under GDPR, and ISO/IEC 27001 where the company is certified against it, remain the company's own whichever option it chooses, even where a provider acts as its processor. What changes is where the evidence comes from:
In all three, evidence is cheaper when the pipeline records which deployment, region and model handled each document as it runs. Assembled later for an audit, the same evidence is reconstruction.
On shared capacity, the throughput ceiling is someone else's policy. OpenAI enforces rate limits measured in requests and tokens per minute and per day. It moves an organisation to a higher usage tier automatically as its spend grows, which usually raises those limits, and it can slow down traffic that grows too quickly even within them. Microsoft states that its provisioned deployment types provide guaranteed throughput and lower latency variance, while standard types are best-effort.
Reserved capacity comes with its own terms. Amazon Bedrock Provisioned Throughput can be bought with no commitment, or for one or six months, during which it cannot be deleted. Microsoft notes that neither PTU quota nor a reservation guarantees capacity in a region, and that deleting or scaling down a provisioned deployment releases its capacity, with no guarantee that the same capacity is available later. OpenAI points enterprise customers whose traffic routinely hits ramp-rate limits to Scale Tier, or Reserved Tier for GPT-5.6 and later models, for more predictable capacity.
Work that nobody waits for does not need that capacity. OpenAI's Batch API processes asynchronous requests at 50% lower cost with a 24-hour turnaround, although OpenAI's data page lists the batch and file endpoints as not eligible for Zero Data Retention and keeps their data until it is deleted. Azure lists batch deployment types with a 50% discount, where Global Batch may process in any geography the model is deployed in and Data Zone Batch routes traffic only to datacenters within the data zone.
On capacity you own, there are no external rate limits and no shared queue, and the ceiling is the hardware you bought or reserved. In every option the length of the output matters: OpenAI's latency guide calls generating tokens almost always the highest-latency step and gives, as a general heuristic, that cutting output tokens by 50% may cut latency by about 50%. Asking the model for compact structured records instead of prose therefore helps in all three.
The options differ in the list of work that stays inside the company:
A pilot can run for months without on-call; production cannot. Pricing a self-hosted option without the people who run it compares the cost of a model with the price of a service.
The options are not exclusive. A pipeline can send public documents to a hosted model and keep restricted classes on a self-hosted one. That holds only when the routing is enforced in code and leaves evidence:
A closed perimeter does not choose the model for you. It chooses which work stays yours: reading contracts and waiting for approvals, reserving capacity in the right region, or running the servers and answering the page at night.
The question behind this article asks which engineering companies build LLM document and ticket processing inside a client's own perimeter, on premises or in a private cloud. What separates them shows in what they ask before proposing a model:
A firm that recommends a model before asking these questions has chosen your perimeter without saying so.
The deployment decision comes down to which work your company is prepared to carry for each class of document: contracts and approvals, capacity in a region, or servers and on-call.
What amBrain can substantiate publicly beyond the production integration described in the summary above: amBrain has been building software since 2019. We work in three formats: full delivery, a dedicated team, or engineers embedded in your team.
Bring your current architecture and the failure mode that worries you, and we will go through it together in half an hour.