---
id: ai-providers
title: "Providers and setup"
summary: "Connect the assistant to Microsoft Foundry (Azure OpenAI) or any OpenAI-compatible endpoint, including models on your own hardware, choose the model, and configure the production pattern, pricing and code completion."
audience: user
keywords: "ai, provider, foundry, azure openai, vllm, ollama, openai-compatible, on-premise, model, ViaductaAI, configuration, pricing, code completion, entra id"
---
# Providers and setup

You bring the model. The assistant works with **Microsoft Foundry** (Azure OpenAI) or with any server that offers an
**OpenAI-compatible** chat completions API: vLLM, Ollama and similar servers, in the cloud or on your own GPUs. Your
prompts, flows and attachments go only to the provider you configure, and the tokens are billed by that provider.

## Configure the provider

The administrator sets the `ViaductaAI` section of the Manager's configuration.

::: code-group

```json [Foundry]
"ViaductaAI": {
  "IsActive": true,
  "Provider": "Foundry",
  "Endpoint": "https://<resource>.openai.azure.com/openai/v1",
  "ApiKey": "<key>"
}
```

```json [OpenAI-compatible]
"ViaductaAI": {
  "IsActive": true,
  "Provider": "Vllm",
  "Model": "oAI_Compatible",
  "Endpoint": "http://gpu-server:8000/v1",
  "ApiKey": "<key, if the server needs one>",
  "VllmModelName": "Qwen/Qwen3-32B"
}
```

:::

| Key | Meaning |
|---|---|
| `IsActive` | `false` turns the assistant off: the **Viaducta AI** menu, code suggestions and the agent tools for external agents disappear. |
| `Provider` | `Foundry` or `Vllm` (any OpenAI-compatible endpoint). |
| `Endpoint`, `ApiKey` | Where the provider is reached and its key. |
| `UseEntraId`, `EntraScope` | Foundry only: sign in with the Manager's Microsoft Entra ID identity instead of a key. |
| `VllmModelName` | The model (or Foundry deployment) everyone uses. Leave it empty to let each user choose. |
| `Effort` | Default reasoning effort: `none`, `low`, `medium`, `high` or `extrahigh`. |
| `MaxContextTokens` | The model's context window; chats are summarised at 70% of it. `0` turns that off. |
| `SupportsVision` | Whether the model reads images. On by default for Foundry, off for OpenAI-compatible servers. |
| `ProductionEnvironmentPattern` | A regular expression for the names of production environments, where every change needs approval. Default `prod`. |
| `Pricing` | `InputPerMillion`, `CachedInputPerMillion`, `OutputPerMillion` and `Currency`, to show the cost of chats. |
| `Completion` | A separate `Provider`, `Endpoint`, `ApiKey` and `ModelName` for code suggestions in the script editors. Empty values use the main settings. |

## Choose the model

Each user picks the model in **Settings › Viaducta AI**: the **Model** (listed from the Foundry deployments or the
server's model list), the **Reasoning effort**, the **Context window**, whether **The model understands images**, and
the **Code completion model**. A new model applies to chats started after saving.

When the administrator sets `VllmModelName`, the model is fixed for everyone and the dialog shows **The model is set
by the administrator**. With Entra ID sign-in the deployments can't be listed, so set `VllmModelName` there.

## Where the assistant's data is kept

Chats, memory, skills, attachments and usage are stored on the Manager, one store per environment, with a nightly
backup (seven kept by default). Administrators manage backups, retention and per-person purges on the **Admin** tab of
the assistant.
