You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/ecosystem/knowledge-base-sync/daemon.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -223,7 +223,7 @@ It serves a spec at `GET /openapi.json` exposing exactly three actions (the dash
223
223
To connect it:
224
224
225
225
1. **Secure it first.** Set `OIKB_API_KEY` so `/sync` and `/history` are not open to anyone who can reach the daemon.
226
-
2. Add the daemon's URL (for example `http://oikb:8080`) as a tool server: **Admin Settings → Integrations** for an instance-wide connection, or **Settings → Integrations** for a personal one. Supply the same `OIKB_API_KEY` as the connection's API key.
226
+
2. Add the daemon's URL (for example `http://oikb:8080`) as a tool server: **Settings → Admin → Integrations** for an instance-wide connection, or **Settings → Integrations** for a personal one. Supply the same `OIKB_API_KEY` as the connection's API key.
227
227
228
228
This is a standard OpenAPI tool-server connection, the same mechanism described on the [OpenAPI / MCP tool servers](/features/extensibility/mcp) page; oikb just happens to be the thing on the other end.
Copy file name to clipboardExpand all lines: docs/enterprise/deployment/container-service.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -65,7 +65,7 @@ Avoid the `:main` tag in production. It tracks the latest development build and
65
65
|**Storage**| Use object storage (S3, GCS, Azure Blob) or a shared filesystem (such as EFS). Container-local storage is ephemeral and not shared across tasks. |
66
66
|**Tika sidecar**| Run Tika as a sidecar container in the same task definition, or as a separate service. Sidecar pattern keeps extraction traffic local. |
67
67
|**Secrets management**| Use your platform's secrets manager (AWS Secrets Manager, Azure Key Vault, GCP Secret Manager) for `DATABASE_URL`, `REDIS_URL`, and `WEBUI_SECRET_KEY`. |
68
-
|**Updates**|Perform a rolling deployment with a single task first. This task runs migrations (`ENABLE_DB_MIGRATIONS=true`). Once healthy, scale the remaining tasks with `ENABLE_DB_MIGRATIONS=false`. |
68
+
|**Updates**|Scale the service down to a single task, deploy the new image on it (`ENABLE_DB_MIGRATIONS=true`), wait for it to become healthy, then scale the remaining tasks back up (`ENABLE_DB_MIGRATIONS=false`). Rolling updates are not supported across a release that changes the schema, so old and new tasks must never serve traffic at the same time. See [Updates and Migrations](/troubleshooting/multi-replica#updates-and-migrations). |
Copy file name to clipboardExpand all lines: docs/enterprise/deployment/index.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -71,6 +71,8 @@ ENABLE_DB_MIGRATIONS=false
71
71
72
72
:::warning Database Migrations
73
73
Set `ENABLE_DB_MIGRATIONS=false` on **all instances except one**. During updates, scale down to a single instance, allow migrations to complete, then scale back up. Concurrent migrations can corrupt your database.
74
+
75
+
Rolling updates are not supported across a release that changes the schema, whatever rolling-deployment machinery your platform offers: every instance has to move to the new version at once, and old and new instances must never serve traffic against the same database at the same time. Back the database up before you start. See [Updates and Migrations](/troubleshooting/multi-replica#updates-and-migrations).
74
76
:::
75
77
76
78
For the complete step-by-step scaling walkthrough, see [Scaling Open WebUI](/getting-started/advanced-topics/scaling). For the full environment variable reference, see [Environment Variable Configuration](/reference/env-configuration).
Copy file name to clipboardExpand all lines: docs/faq.mdx
+5-4Lines changed: 5 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -48,7 +48,7 @@ For more details on enterprise solutions and branding customizations, [click her
48
48
49
49
Open WebUI intentionally does **not** ship a built-in context trimmer. Every model has a different tokenizer and a different context window, and every deployment wants a different truncation policy (by tokens, by turns, by message count, file-attachments-first, summarize-and-replace, per-model budgets, and so on). There is no single policy that is correct for every user, so we expose the hook instead of choosing one for you.
50
50
51
-
Context management is done with [filter Functions](/features/extensibility/plugin/functions/filter): `inlet()` receives the full `body["messages"]` on every request and can modify it freely (drop old turns, enforce a turn limit, summarize, trim attachments, etc.). Many published context filters are already available one-click on [openwebui.com](https://openwebui.com/): browse, install, and tune the valves. If none fits, copy the closest one into **Admin Panel → Functions** and edit it.
51
+
Context management is done with [filter Functions](/features/extensibility/plugin/functions/filter): `inlet()` receives the full `body["messages"]` on every request and can modify it freely (drop old turns, enforce a turn limit, summarize, trim attachments, etc.). Many published context filters are already available one-click on [openwebui.com](https://openwebui.com/): browse, install, and tune the valves. If none fits, copy the closest one into **Admin Panel > Functions** and edit it.
52
52
53
53
For the full write-up with examples, see [Context Window / Prompt Too Long](/troubleshooting/context-window).
54
54
@@ -214,7 +214,7 @@ Models frequently:
214
214
215
215
**To verify which model you're actually using:**
216
216
1. Check the model selector in the Open WebUI interface
217
-
2. Look at the **Settings > Admin > AI > Connections** to confirm your API endpoints
217
+
2. Look at the **Settings > Admin > Connections** to confirm your API endpoints
218
218
3. Check your provider's dashboard/logs for the actual API calls being made
219
219
220
220
Asking the model itself is **not** a valid way to diagnose routing issues. If you suspect a configuration problem, check your connection settings and API keys instead.
@@ -240,9 +240,10 @@ This is also why the same model accessed through different interfaces might give
240
240
By default, these tasks use the **same model** you're chatting with. If you're using an expensive API model (like GPT-5.6 Sol or Claude Opus 5), this can significantly increase your costs.
241
241
242
242
**To reduce API costs:**
243
-
1. Go to **Settings > Admin > Experience > Interface** (for title/tag generation settings)
244
-
2. Configure a **Task Model** under **Settings > Admin > Experience > Interface > Tasks** to use a smaller, cheaper model (like GPT-5.6 Luna) or a local model for background tasks
243
+
1. Go to **Settings > Admin > Interface** (for title/tag generation settings)
244
+
2. Configure a **Task Model** under **Settings > Admin > Interface > Tasks** to use a smaller, cheaper model (like GPT-5.6 Luna) or a local model for background tasks
245
245
3. Disable features you don't need (auto-title, auto-tags, etc.)
246
+
4. Cap what those requests can spend by setting `max_tokens` under **Task Model Parameters** in the same **Tasks** section. Tag, follow-up and search query generation otherwise send no output limit at all. See [Task Models](/features/administration/task-models#task-model-parameters)
246
247
247
248
:::tip Cost-Saving Recommendation
248
249
Set your Task Model to a fast, inexpensive model (or a local model via Ollama) while keeping your primary chat model as a more capable one. This gives you the best of both worlds: smart responses for your conversations, cheap/free processing for background tasks.
Copy file name to clipboardExpand all lines: docs/features/administration/analytics/index.mdx
+13-4Lines changed: 13 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -48,13 +48,13 @@ The dashboard described here is the instance-wide admin view. Separately, **ever
48
48
49
49
It is scoped strictly to the signed-in user's own data:
50
50
51
-
- Token totals (input and output), both lifetime and for the selected period
51
+
- Token totals (input and output), both lifetime and for the period covered
52
52
- Message and chat counts, and the number of days they were active
53
53
- An activity heatmap, viewable by day, by week, or as a cumulative total
54
54
- Current and longest activity streaks
55
55
- Their most-used models and tools
56
56
57
-
The period is selectable, and the data is bucketed in the user's own timezone. Because it only ever reports the requesting user's own activity, it exposes nothing about anyone else's.
57
+
The period covered is the past two years (the last 730 days), the same window for every account regardless of when it was created, and the data is bucketed in the user's own timezone. Because it only ever reports the requesting user's own activity, it exposes nothing about anyone else's.
58
58
59
59
## Dashboard Features
60
60
@@ -67,8 +67,11 @@ At the top right of the Analytics dashboard, you can filter all data by time per
67
67
-**Last 30 days** - Monthly snapshot
68
68
-**Last 90 days** - Quarterly trends
69
69
-**All time** - Complete historical data
70
+
-**Custom range** - A start and an end date you choose
70
71
71
-
Your selected time period is **automatically saved** and persists across browser sessions.
72
+
Choosing **Custom range** puts two date fields next to the period dropdown. Nothing is queried until both are filled in, so while you are still picking, the dashboard sits idle instead of showing a spinner, and it loads as soon as the second date is set. The end date is inclusive, so it covers the whole of that day.
73
+
74
+
Your selected time period is **automatically saved** and persists across browser sessions, the custom dates included. If you leave Analytics on **Custom range** with the dates incomplete and come back to it later, the dashboard shows empty figures until you fill the range in, rather than loading indefinitely.
72
75
73
76
### Group Filtering
74
77
@@ -213,6 +216,12 @@ Open WebUI automatically captures token usage from model responses and stores it
213
216
214
217
Token data is normalized across different model providers (OpenAI, Ollama, llama.cpp, etc.) to provide consistent metrics regardless of which backend you're using.
215
218
219
+
The figures are the ones the provider reports, and most OpenAI-compatible providers report nothing on a streamed reply unless they are asked. Asking is what the **Usage** capability in **Workspace > Models > Edit** does, so a model without it can show no tokens at all. See [Capabilities and bindings](/features/workspace/models#capabilities-and-bindings).
220
+
221
+
:::info Scheduled and delegated runs are counted too
222
+
The request for token counts is added server-side, so a model with **Usage** enabled reports its tokens in every chat it runs, including the ones Open WebUI starts on a user's behalf through [automations](/features/chat-conversations/chat-features/automations), [timers](/features/chat-conversations/chat-features/timers), [sub-agents](/features/chat-conversations/chat-features/subagents) and [channels](/features/channels). Those runs are part of the same totals as the chats people type in.
223
+
:::
224
+
216
225
### Token Usage Metrics
217
226
218
227
The **Token Usage** section (accessible via the Tokens endpoint or dashboard) provides:
@@ -344,7 +353,7 @@ GET /api/v1/analytics/models/{model_id}/overview # Get feedback history and tags
344
353
```
345
354
GET /api/v1/users/usage
346
355
```
347
-
Accepts either `days` (7-732) or an explicit `start_date` / `end_date` range, and buckets results in the requesting user's timezone. This one is not admin-gated, because it reports nothing beyond the caller's own activity.
356
+
Accepts either `days` (7-732) or an explicit `start_date` / `end_date` range, and buckets results in the requesting user's timezone. Called with none of them, as the **Settings > Usage** page does, it returns the last 730 days ending now. This one is not admin-gated, because it reports nothing beyond the caller's own activity.
Arena models live in **Settings > Admin > Evaluations**. Switch **Arena Models** on and a **Models** section appears listing the arena models you have created. Until you add one, a single default arena model is used and it draws from every model on the instance.
72
+
73
+
Use the **+** button to add an arena model, or the gear icon on an existing row to edit it. Alongside the name, ID, description and access control, each arena model carries its own pool of models:
74
+
75
+
- Pick models one at a time from the **Select a model** dropdown and click **+**. Leave the list empty to draw from every model.
76
+
- The **Include** / **Exclude** button above the list flips whether the models you listed are the pool or are the ones kept out of it.
77
+
78
+
A model can sit in the list only once. The dropdown offers only models that are not already listed, so there is nothing left to pick twice. That matters in **Include** mode, where every message draws one model from the list at random and an ID stored twice is drawn twice as often. Opening an arena model whose stored list still contains duplicates collapses them, and saving writes the cleaned list back.
79
+
69
80
### **2. Normal Interaction**
70
81
71
82
No need to switch to “arena mode” if you don't want to. You can use Open WebUI normally and rate the AI model responses as you would in everyday operations. Just thumbs up/down the model responses, whenever you feel like it. However, **if you want your feedback to be used for ranking on the leaderboard**, you'll need to **swap out the model and interact with a different one**. This ensures there's a **sibling response** to compare it with. Only comparisons between two different models will influence rankings.
Copy file name to clipboardExpand all lines: docs/features/administration/index.mdx
+22Lines changed: 22 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,15 +27,27 @@ Open WebUI gives administrators a full operational toolkit. Track which models y
27
27
28
28
|||
29
29
| :--- | :--- |
30
+
| 🎛️ **[Task Models](./task-models)**| The model and parameters behind titles, tags, follow-ups, autocomplete, search queries and compaction summaries |
30
31
| 📊 **[Analytics](./analytics)**| Usage dashboards with message volume, token consumption, model breakdowns, and per-user activity |
31
32
| 🏆 **[Evaluation](./evaluation)**| Model arena, blind A/B testing, ELO-based leaderboards, and chat snapshots for fine-tuning |
32
33
| 📢 **[Banners](./banners)**| Customizable system-wide announcements with dismissible notifications |
34
+
| 🎚️ **[Default Interface Settings](./interface-defaults)**| Instance-wide starting values for the options on everyone's Settings > Interface page |
33
35
| 🔔 **[Webhooks](./webhooks)**| Automated notifications for user sign-ups, chat completions, and external service integration |
Chat titles, tags, follow-up suggestions, autocomplete, search query rewriting and context compaction summaries all run as separate model calls in the background. Out of the box they run on whatever model the user is chatting with, which is why a flagship model can quietly write a lot of three-word titles.
44
+
45
+
**Use it for:** moving that work onto a small, fast model, capping what those requests are allowed to spend, and switching off the ones your instance does not want.
46
+
47
+
[**Learn about Task Models →**](./task-models)
48
+
49
+
---
50
+
39
51
## Analytics
40
52
41
53
Get a bird's-eye view of how your instance is being used. The analytics dashboard shows message volume, token consumption, model popularity, and user activity, filterable by time period and user group.
@@ -73,6 +85,16 @@ Push high-visibility messages to every logged-in user. Use banners for maintenan
73
85
74
86
---
75
87
88
+
## Default Interface Settings
89
+
90
+
Choose what everyone's **Settings > Interface** page starts on, instead of leaving each account on the stock values. Set it in the Admin Panel or with the `DEFAULT_INTERFACE_SETTINGS` environment variable for GitOps workflows.
91
+
92
+
**Use it for:** giving a team a consistent look on day one, turning a distracting option off by default, or pushing a house style that people can still adjust for themselves. Untouched options keep following your defaults, so a later change reaches everyone who has not overridden it.
93
+
94
+
[**Learn about Default Interface Settings →**](./interface-defaults)
95
+
96
+
---
97
+
76
98
## Webhooks
77
99
78
100
Three types of webhook integrations keep your external services in sync:
0 commit comments