Model-to-application boundary
Open modelYour deployment
Hosted APIProvider service
Backend servicesAccess · Requests · Jobs
Application APIWeb · Mobile · Internal tools

Two deployment choices; scoped for the workload.

Define what a useful answer looks like

Choose representative inputs and a task-specific way to judge outputs. Record unacceptable failures as well as successful answers. A model that performs well on a public benchmark may still be a poor fit for your documents, terminology or workflow.

Establish the data boundary

Identify what is sent to the model and what must remain in your environment. Review the provider’s current data-handling terms, retention and deployment options for the specific service. Self-hosting changes where inference runs; it does not remove the need to control logs, access and application data.

Measure the complete request

Measure time in the queue, time to first output and time to finish under representative load. Account for context length and concurrent requests when assessing memory and capacity. A fast isolated demo can hide the behaviour users encounter when the service is busy.

Compare the service cost, not just the model price

For self-hosting, include hardware or instance cost, capacity headroom and the work of deployment and operation. For an API, include usage, retries, limits and the infrastructure that still surrounds the provider. Neither route removes backend engineering.

Keep the application boundary stable

Give the product a defined backend contract instead of coupling every screen to one model. That makes it easier to evaluate a different deployment later. Provider changes still require testing: compatible request formats do not guarantee equivalent outputs or behaviour.