A hosted assistant is a product, not a model. Here is which of its workloads open weights already match, which they still do not, and what control buys you.
The question arrives in the same shape every time: is there an open-weight model as good as ChatGPT yet? It is the wrong question, and the honest answer starts by rejecting the premise.
ChatGPT is not a model. It is a model, plus a retrieval layer over the live web, plus a sandboxed code interpreter, plus vision, plus speech recognition and synthesis, plus image generation, plus a memory system that survives across sessions, plus a web application, plus mobile clients, plus the sync between them. Replacing it means replacing a product with a dozen distinct subsystems. The model is one of them, and the one already closest to parity.
That reframing relocates the difficulty. Teams who try this and abandon it rarely do so because the model was not smart enough. They abandon it because they underestimated the seven other things the product was quietly doing for them, and because nobody owned the integration work after the novelty wore off. What follows is an audit, workload by workload, of what a self-hosted open-weight stack can and cannot do as of September 2026, including the parts where the answer is no.
Two things justify the exercise. Data control: prompts, documents and intermediate reasoning never leaving infrastructure you operate. And capability honesty: knowing precisely where the gap has closed and where it has not, rather than assuming open weights are either a toy or a drop-in.
What the hosted product actually consists of
You cannot replace something you have not enumerated. A hosted assistant, stripped to parts:
- A frontier model, usually several, with difficulty-based routing the user never sees
- An inference tier handling batching, streaming, failover and load
- Web search and page fetching, plus the summarisation that makes results readable
- A sandboxed code interpreter with a filesystem and package installation
- Document upload and parsing across PDF, spreadsheets, slides and images
- Vision over charts, screenshots, handwriting and photographs
- Speech in and out, at latency low enough to feel like conversation
- Image generation and editing
- A memory layer carrying preferences and facts across sessions
- Conversation storage, search, branching and sharing
- A web frontend, mobile clients, and sync between them
- Accounts, billing, rate limiting, abuse controls and audit trails
A dozen subsystems. When someone says they will self-host, they usually mean the first two. The remaining ten are the project.
The workload audit
General question answering and drafting
Verdict: parity for most practical purposes.
This is where open weights are strongest and the argument is effectively over. For explanation, summarisation, rewriting, brainstorming, translation and ordinary reasoning, a current-generation open model produces work most users cannot distinguish from a hosted assistant in blind side-by-side use. Sparse mixture-of-experts architectures are much of why: GLM-5.3-Flash carries 320B total parameters but activates only 18B per token, so quality tracks the large number and serving cost the small one.
Hosted models still pull ahead in the long tail: unusual reasoning chains, obscure domain knowledge, and problems needing many steps held in mind at once. If your use is nine parts routine drafting and one part genuinely hard reasoning, self-hosting covers the nine and you should plan honestly for the one.
Long-document analysis
Verdict: parity, and in one specific respect better.
Feeding a model a long contract, a codebase, a quarter of logs or a set of papers works well on open weights now, and self-hosting turns context length into a hardware decision rather than a subscription tier. Hosted products ration context; your deployment rations it against VRAM you can go and buy.
Community testing reports a 2x DGX Spark deployment reaching 900k context with vision enabled, using SGLang with multi-token prediction. That figure is available to anyone willing to provision for it. The usual caveat applies: attention over a 900k window is not uniform, quality degrades in the middle of very long inputs, and a well-built retrieval pipeline over the same corpus frequently beats stuffing it all into the window. Long context is a capability, not a strategy.
Retrieval over your own documents
Verdict: parity, and arguably better self-hosted.
The strongest positive case in the audit. Retrieval over an internal corpus is a workload where self-hosting is not a compromise but an improvement, because the corpus never leaves your network. You are not deciding how much of your document store you are comfortable uploading. The answer is none of it.
The build is well understood: an ingestion pipeline that parses and chunks documents, an embedding model, a vector store, a reranker, and a query path that assembles context before generation. Every component has mature open implementations. The hard parts are not the model. They are chunking strategy, keeping the index fresh as documents change, and enforcing per-user access control at query time so retrieval never surfaces a document the asker is not cleared to read. That last one is where most internal deployments have a latent security incident waiting, and it has nothing to do with which model you picked.
Code generation and review
Verdict: competitive.
Open-weight models write, explain and review code at a level genuinely useful for day-to-day work, and the coding-specific stack has matured faster than any other workload here. ThreatFrontier covers that stack in depth elsewhere, so the short version is what belongs in this audit: it works, the gap is narrowest on well-specified single-file changes and widest on large-repository reasoning and long autonomous runs, and it is one workload among several rather than the reason to do any of this.
Multimodal and vision
Verdict: close, with sharp edges.
Multimodal mixture-of-experts models now exist in open weights. Qwen3.8-Flash-Next combines 125B parameters with a 51B N-gram component in a multimodal MoE design, and the 900k-context result above was measured with vision active rather than text-only. Screenshot reading, chart interpretation, diagram comprehension and document images all work.
The rough edges are in the plumbing. Hosted products do a great deal of unglamorous pre-processing before an image reaches the model: rasterisation, resolution normalisation, orientation correction, OCR fallback for dense text, multi-page assembly. Self-hosted, that is yours to build, and your document pipeline will affect results more than model choice. Dense scans and handwriting remain meaningfully weaker than the hosted equivalent.
Agentic tool use and function calling
Verdict: close, and the gap is usually not the model.
Open models emit tool calls competently. The production failure mode is rarely a model that does not understand it should call a function; it is one that emits a call which almost parses. A trailing comma, a hallucinated enum value, a string where the schema wants an integer, a second call emitted before the first result returns. Over a long multi-step run these compound, and a 2 percent malformed-output rate becomes a workflow that fails more often than it succeeds.
Structured-output reliability is therefore the practical constraint, and it is solvable with engineering rather than a better model. Constrained decoding against the schema, masking invalid tokens at sample time rather than catching them afterwards, closes most of it; strict validation with a bounded retry closes more. What remains is harness quality: how you scope tools, surface errors back to the model, bound recursion, and recover a run gone sideways. Hosted agent products have had teams polishing that harness for years, and that polish, not raw model capability, is what you are rebuilding.
Voice, image generation and real-time interaction
Verdict: not yet, without substantial separate work.
This is the weakest area and it deserves no softening. Real-time voice is not a language-model feature; it is a pipeline of speech recognition, turn-taking and endpointing, the model itself, and speech synthesis, with an end-to-end budget of a few hundred milliseconds before it stops feeling like a conversation. Every stage is a separate model with separate serving requirements, and the latency budget is the hard part. Open components exist for each stage and are decent. Assembling them into something that feels like the hosted experience is a real engineering project, not a configuration change.
Image generation is similar with a different shape: capable open models exist, but as entirely separate deployments with their own weights, VRAM and serving stack, and the conversational integration where you ask for an edit in plain language is work you own. If voice or image generation is central to how your organisation uses an assistant, self-hosting will disappoint you in month one. Keep a hosted path for those, or plan a real project.
Memory and personalization
Verdict: entirely your problem.
There is no open-weight model that remembers you. Memory is a product feature built on storage, extraction and retrieval: deciding what is worth persisting, storing it durably, retrieving the relevant parts into later context, letting users inspect and delete what is held, and keeping one user's memory out of another's. None of that is in the weights. All of it has to be built, then defended against the failure mode where the system confidently recalls something wrong and nobody can work out why.
The upside is that self-hosted memory is inspectable. It lives in your database, and you can query, audit, export and delete it on request. For anyone with a deletion obligation, that beats the convenience of a memory feature you cannot see inside.
The control argument
Everything above is the capability picture. Control is why most teams do this at all.
Self-hosted, prompts and documents never leave infrastructure you operate. No retention window to interpret, no training-use clause to negotiate, no sub-processor list to track, no question about which jurisdiction served a request. The absence of ambiguity is the feature. The stack can run air-gapped, which for classified, clinical and industrial-control environments is an entry requirement rather than a preference, and every request is auditable end to end because you own the logs.
You are also not exposed to deprecation. A model you hold the weights for does not get retired, re-tuned in ways that quietly change your outputs, or re-priced mid-contract. Its behaviour is an artefact you possess rather than a service you rent. Where re-qualifying a changed model costs weeks of validation work, this is often the largest benefit on the list.
A reference architecture
The replacement stack, component by component. Roles, not product picks; several mature options exist for each.
Clients: chat frontend, mobile, internal apps
|
Gateway: OpenAI-compatible API, auth, routing, quotas, audit log
|
+-- Serving engine: batching, paged KV cache, tensor parallel
| +-- General model, small fast model, embeddings, reranker
|
+-- Retrieval: ingestion, chunking, vector store, ACL-aware query
|
+-- Tools: sandboxed execution, constrained decoding, validation
Serving engine. Turns weights into throughput: continuous batching, paged KV cache management, tensor and pipeline parallelism, and a quantization format the engine has fast kernels for. Engine choice matters more than most teams expect. Community testing reports roughly 800 tokens per second on GLM-5.3-Flash in a tuned serving setup; an untuned one will not be close.
Model and quantization. Plan for more than one: a strong general model, a small fast one for classification and routing, an embedding model, a reranker. Quantization is where fitting happens. FP8 and NVFP4 weights put frontier-scale open models on hardware that exists, at a quality cost usually small but which must be measured on your tasks rather than assumed.
OpenAI-compatible API layer. Do not let applications talk to the engine directly. A gateway gives one integration surface, lets you swap or A/B models without touching clients, and gives every existing SDK somewhere to point. It is also the right place for auth, quota and logging.
Chat frontend. The visible product. History, streaming, file upload, model selection, sharing. Mature open frontends exist; do not spend engineering here.
Retrieval pipeline. Ingestion, chunking, embedding, vector store, reranking, and an access-control-aware query path. Treat the ACL check as part of retrieval, not a filter applied afterwards.
Tool and agent layer. Tool schemas, sandboxed execution with network and filesystem limits, constrained decoding, validation and bounded retries. This component decides whether agentic workloads are usable.
Auth and audit logging. SSO, per-user and per-team quotas, and a log of who asked what, which model answered, which documents were retrieved and which tools ran. In a regulated environment this is what makes the deployment acceptable.
Three deployment tiers
A single workstation. One or two high-memory GPUs, or a unified-memory machine in the 64 to 128 GB range. That buys a strong mid-size model at aggressive quantization, moderate context, and one or two concurrent users: useful for drafting, question answering, retrieval over a departmental corpus and coding assistance. It is not a frontier model and not a shared service. Never size a team deployment from single-user latency measured on a workstation, because concurrency and context consume the same KV cache budget and fall over together.
A serious local server or small cluster. What a frontier open model actually demands. Community testing reports Qwen3.8-Flash at NVFP4 occupying approximately 135 GB, needing two 128 GB DGX Spark units to hold with room for cache. GLM-5.3-Flash at FP8 is approximately 328 GB of weights before any KV cache. A frontier-class open model is a multi-hundred-gigabyte object, and sizing starts there rather than at the parameter count. At this tier the full audit above is achievable, including the 900k-context vision result.
Self-hosted software on rented GPUs. The middle path, and the one most teams should evaluate first. You run your own stack, weights, retrieval and logging on metal you rent by the hour. Capital cost disappears, you can resize, and you can evaluate a 328 GB model without buying anything. The honest caveat: this converts data control from a physical guarantee into a contractual one, with your data on someone else's hardware. For many threat models that is acceptable and still better than a hosted assistant, since you keep retention, logging and model choice. For an air-gapped requirement it is no substitute.
What you give up
Frontier-lab model access. You will not have the strongest model available at any moment, and on the hardest reasoning tasks the gap is real.
Every operational failure is yours. Out-of-memory under concurrency, a node that left the cluster at 3am, a queue backing up at the Monday peak. No status page to refresh; you are the status page.
Features arrive when you build them. New capability in a hosted product appears on a Tuesday and costs you nothing. In yours it appears when someone is assigned to it.
Evaluation and regression testing become your job. The most underestimated item here. Every model swap, quantization change, engine upgrade and prompt revision needs a regression suite reflecting your actual workloads, or you will ship quality regressions you cannot see. Build it before you need it.
The cost is engineering time, not hardware. Here the comparison has to be honest. Qwen3.8-Flash-Next is available on a first-party cloud API at $0.16 per 1M input tokens and $0.47 per 1M output tokens. At those rates, very few organisations will justify self-hosting on token economics alone. Hardware pays back slowly if at all, and the engineer-months never appear in the spreadsheet where anyone sees them. Which is why control has to carry the decision: if data locality, auditability, air-gap capability and freedom from deprecation are not worth real money to you, the arithmetic will not rescue the project.
Who should actually do this
Do it if you are in a regulated industry where data locality is a compliance requirement rather than a preference; if you run air-gapped or classified environments where hosted access is simply unavailable; if you hold a corpus sensitive enough that uploading it is not a conversation you want with legal; or if you have heavy sustained usage plus real engineering capacity to own the stack. There it is straightforwardly the right architecture, and the operational burden is the price of admission.
Do not do it if you are an individual or a small team without dedicated infrastructure engineering. It will be an interesting hobby project with a large recurring time bill, and you will spend more evenings on serving configuration than the capability difference is worth. Do not do it because a spreadsheet said it would be cheaper; see the rates above. And not if voice or image generation is central to how your people work, unless you will treat that as its own project.
A staged migration path
Do not cut over. Stage it.
Route exactly one workload to the self-hosted stack, picking where the audit says parity is most likely: internal document retrieval, or general drafting. Run it alongside the hosted product rather than instead of it.
Then measure on your own evaluation set, not public benchmarks, which describe the average case rather than yours. Assemble a few hundred real tasks from that workload with known-good outputs and score both paths. That set is the most valuable artefact you will build here, and it pays out every time you change anything.
Then expand only where parity holds. Add the next workload, measure, keep or revert. Some will never move, and that is a successful outcome rather than a failed one. A stack handling most of your usage internally, with a hosted path kept for the rest, captures nearly all of the control benefit at a fraction of the cost of purity. The goal was never to eliminate the hosted product. It was to stop being unable to choose.