Skip to content

Scenario Local Models Only

Thorsten Sommer edited this page Oct 31, 2026 · 2 revisions

Goal: AI Studio works only with AI servers that your organization runs itself. No content reaches a cloud service, and AI Studio doesn't connect to the internet on its own.

You need: your own servers for language models, embeddings, and, if you use voice input or audio and video files, transcription. For example, vLLM, Ollama, LM Studio, llama.cpp, or llmman for language models, and whisper.cpp for transcription.

Building blocks

What How
Only your servers Roll out self-hosted providers, and don't let users add or import others
Only your servers are trusted The scheme LOCAL_TRUST_ONLY gives self-hosted providers the level High and every other type Very Low
Nothing below High A global minimum of HIGH, locked
No web access by the AI Switch off the tools Web Search and Read Web Page
Internal content stays inside Data sources may send data only to configured services
No update checks at GitHub DISABLE_UPDATES; you distribute new versions
Optionally: no backups that leave the device Lock backups

The configuration

require("icon")

ID = "9072b77d-ca81-40da-be6a-861da525ef7b"
ICON_SVG = SVG
NAME = "Example Organization - Local models only"
DESCRIPTION = "AI Studio with the AI servers of Example Organization"
VERSION = "1.0.0"
TYPE = "CONFIGURATION"
DEPLOYED_USING_CONFIG_SERVER = true
AUTHORS = {"IT department of Example Organization"}
SUPPORT_CONTACT = "IT service desk"
SOURCE_URL = "https://intranet.example.org/ai-studio"
CATEGORIES = { "CORE" }
TARGET_GROUPS = { "EVERYONE" }
IS_MAINTAINED = true
DEPRECATION_MESSAGE = ""

CONFIG = {}

CONFIG["LLM_PROVIDERS"] = {}
CONFIG["LLM_PROVIDERS"][#CONFIG["LLM_PROVIDERS"]+1] = {
    ["Id"] = "4f6b3a8e-2d4c-4b1a-9e5f-7a8b9c0d1e2f",
    ["InstanceName"] = "Our language model",
    ["UsedLLMProvider"] = "SELF_HOSTED",
    ["Host"] = "VLLM",
    ["Hostname"] = "https://llm.intra.example.org",
    ["AdditionalJsonApiParameters"] = "",
    ["Model"] = {
        ["Id"] = "openai/gpt-oss-120b",
        ["DisplayName"] = "GPT OSS 120B",
    },
}

CONFIG["EMBEDDING_PROVIDERS"] = {}
CONFIG["EMBEDDING_PROVIDERS"][#CONFIG["EMBEDDING_PROVIDERS"]+1] = {
    ["Id"] = "5a7c4b9f-3e5d-4c2b-8f6a-8b9c0d1e2f3a",
    ["Name"] = "Our embeddings",
    ["UsedLLMProvider"] = "SELF_HOSTED",
    ["Host"] = "OLLAMA",
    ["Hostname"] = "https://embeddings.intra.example.org",
    ["Model"] = {
        ["Id"] = "nomic-embed-text",
        ["DisplayName"] = "Nomic Embed Text",
    },
}

CONFIG["TRANSCRIPTION_PROVIDERS"] = {}
CONFIG["TRANSCRIPTION_PROVIDERS"][#CONFIG["TRANSCRIPTION_PROVIDERS"]+1] = {
    ["Id"] = "6b8d5c0a-4f6e-4d3c-9a7b-9c0d1e2f3a4b",
    ["Name"] = "Our transcription",
    ["UsedLLMProvider"] = "SELF_HOSTED",
    ["Host"] = "WHISPER_CPP",
    ["Hostname"] = "https://whisper.intra.example.org",
    ["Model"] = {
        ["Id"] = "large-v3",
        ["DisplayName"] = "Whisper large-v3",
    },
}

CONFIG["SETTINGS"] = {}

-- Trust only your own servers, and require that everywhere:
CONFIG["SETTINGS"]["DataConfidence.ConfidenceScheme"] = "LOCAL_TRUST_ONLY"
CONFIG["SETTINGS"]["DataConfidence.EnforceGlobalMinimumConfidence"] = true
CONFIG["SETTINGS"]["DataConfidence.GlobalMinimumConfidence"] = "HIGH"

-- No providers besides yours:
CONFIG["SETTINGS"]["DataApp.AllowUserToAddProvider"] = false
CONFIG["SETTINGS"]["DataApp.AllowUserToImportConfigurationSnippets"] = false
CONFIG["SETTINGS"]["DataApp.AllowUserToImportConfigurationPlugins"] = false

-- Your servers as defaults:
CONFIG["SETTINGS"]["DataApp.PreselectedProvider"] = "4f6b3a8e-2d4c-4b1a-9e5f-7a8b9c0d1e2f"
CONFIG["SETTINGS"]["DataApp.UseTranscriptionProvider"] = "6b8d5c0a-4f6e-4d3c-9a7b-9c0d1e2f3a4b"

-- The AI doesn't reach out to the web:
CONFIG["SETTINGS"]["DataTools.DisabledToolIds"] = { "web_search", "read_web_page" }

-- Content from data sources stays with configured services:
CONFIG["SETTINGS"]["DataSourceSecuritySettings.MinimumOutboundDataRestriction"] = "ONLY_CONFIGURED_SERVICES"

-- You distribute new versions; AI Studio doesn't ask GitHub:
CONFIG["SETTINGS"]["DataApp.UpdateInterval"] = "DISABLE_UPDATES"

-- Optional: no backup files that could leave the device:
-- CONFIG["SETTINGS"]["DataApp.AllowUserToBackUpData"] = false

Optionally, from AI Studio v26.10.1 on, you can also prohibit every other provider type with DataApp.ProhibitedProviders: list every key of the example plugin except SELF_HOSTED. The scheme and the minimum above already keep these providers away, also on older versions.

Distribution

  • Roll the configuration out as described on Deploying on Windows, Deploying on Linux, or Deploying on macOS.
  • Distribute AI Studio yourself, because devices no longer update themselves. See Managing Updates.
  • Install Pandoc in advance if your users need its file features, such as exporting to Word. Otherwise, AI Studio offers to download it. AI Studio finds Pandoc in the usual places, for example, below Program Files on Windows, in /usr/local/bin or /opt/homebrew/bin on macOS, in /usr/bin on Linux, and in every folder of PATH. For the Flatpak, install our Pandoc extension.
  • On Windows, devices without internet access need the Microsoft Edge WebView2 Runtime before the installation.

What users see

  • Their providers list holds only your servers, with a lock. The buttons for adding and importing providers are disabled.
  • "Settings" → "Provider Confidence" shows your scheme and the minimum, locked.
  • The tool selection lists Web Search and Read Web Page as unavailable.
  • The "Information" page shows that AI Studio runs with the configuration of your organization.

Check it

  1. Stage the configuration on a test device, see Testing and Exporting Configurations.
  2. On the "Information" page, check that the configuration is active.
  3. Start a chat: the provider selection offers only your servers.
  4. Try to add a provider: the button is disabled.
  5. With your firewall, check that the device connects only to your servers while you use the chat, assistants, and data sources.

Limits

  • Each local data source has its own required confidence, which users set. In this scenario, that doesn't matter: every provider that may be used is self-hosted and has the level High.
  • Users can still copy text out of AI Studio into other applications. AI Studio can't control that.

Where to go next

Clone this wiki locally