# Open WebUI

> Connect a self-hosted ChatGPT-like UI to all 205+ platform models through an OpenAI API connection

来源：https://zhonkemodel.dflop.top/en/docs/integrations/open-webui

> [Open WebUI](https://openwebui.com/) is an open-source ChatGPT-like interface with self-hosting, multi-model support and a user system. Connect it over an OpenAI-compatible API connection and every model in our catalog (200+, growing) is immediately available.

## Install (Docker)

```bash
docker run -d \
  -p 3000:8080 \
  -v open-webui:/app/backend/data \
  --name open-webui \
  --restart always \
  ghcr.io/open-webui/open-webui:main
```

Open `http://localhost:3000` and create the admin account on first run.

## Setup

1. Settings → ⚙️ **Connections**
2. In the **OpenAI API** section:
   - **API Base URL**: `https://zhonkezhonkeapi.dflop.top/v1`
   - **API Key**: your `sk-gpushare-*` key (`sk-gpushare-` plus 64 hex characters; create it on the [console keys page](https://zhonkezhonkemodel.dflop.top/dashboard/keys), where the detail page can re-reveal it any time)
3. Click **Verify Connection**
4. Save

> **Note**: Verify Connection calls `GET /v1/models`, and that endpoint doesn't check your balance — so verification succeeds even at zero balance, while every conversation then returns 402. See [Troubleshooting](#troubleshooting) below.

## Choosing models

Once the connection is saved, catalog models **appear automatically** in the model picker (pulled from `GET /v1/models`, so the list tracks the catalog — nothing to type by hand).

**Turn off the non-chat SKUs first**: `/v1/models` returns the whole catalog, and the image (`doubao-seedream-*`, `grok-imagine-image*`), video (`doubao-seedance-*`, `grok-imagine-video*`) and 3D SKUs use [separate endpoints](../reference/media-apis.md). Calling them from a chat UI only errors (400 `invalid_request` or 503 `no_channel_available`).

How:

1. Settings → ⚙️ **Models**
2. Toggle off the non-chat SKUs and anything you don't want exposed to users

## Teams and multiple users

Open WebUI has its own user system, and all of those users share the single platform key you configured — while on our side **every key shares one account balance** (one wallet, no per-key budget pool). We suggest:

1. Create a dedicated key for Open WebUI — the value is **usage attribution** (per-key view on the [usage page](https://zhonkezhonkemodel.dflop.top/dashboard/usage)) and the `allowed_models` **allowlist** (restricting which models this key may call), **not** budget isolation
2. When you need hard budget isolation, register a separate account for the team (balance is per account; top up at dflop.top/dashboard/billing, same SSO account as zhonkemodel.dflop.top)
3. Use Open WebUI's own user permissions to control which models each user sees

## RAG / embeddings

The platform retired its embedding SKUs in July 2026, so `POST /v1/embeddings` currently has no available model. Use a local option for Open WebUI's RAG (knowledge base):

Settings → ⚙️ **Documents** → **Embedding Model Engine**:
- the default SentenceTransformers (built in, offline), or `Ollama` + `nomic-embed-text` (local, free)

## Streaming

Open WebUI streams by default and is fully compatible with our protocol. See [Streaming](../guides/streaming.md).

## Tool calling

Open WebUI's **Functions** system supports OpenAI function tools, and **almost every chat model here** supports them (go by the `supports_tools` flag on the [model plaza](https://zhonkezhonkemodel.dflop.top/models) / in [Models](../reference/models.md); image, video and embedding SKUs don't). See [Tool calling](../guides/tool-calling.md).

## Web search

Open WebUI's own web search is a separate feature and **does not use this gateway's `web_search` tool**. The two can run side by side:

- Open WebUI web search → uses whatever SearXNG / Google CSE / Brave API you configured
- Models with a built-in `web_search` (GPT-5.x, some Claude models, the Gemini line — see the [model plaza](https://zhonkezhonkemodel.dflop.top/models)) → use the gateway's built-in tool. Note that tool is only available on streaming requests (Open WebUI streams by default, so this rarely matters)

## Troubleshooting

| Symptom | What to check |
|---|---|
| Empty model list | API Base URL spelling — `/v1` is required |
| 401 `invalid_api_key` | Whether the key was copied in full (`sk-gpushare-` plus 64 hex characters, 76 total); re-reveal it on the [key detail page](https://zhonkezhonkemodel.dflop.top/dashboard/keys) |
| Verify Connection passes but chat returns 402 `insufficient_quota` | Balance exhausted (verification doesn't check balance). All keys share one balance so a new key won't help — top up at dflop.top/dashboard/billing |
| Certain models 400 / 503 the moment you click them | Non-chat SKUs (image, video, embedding) can't be used from a chat UI — toggle them off, see [Choosing models](#choosing-models) above |
| Streaming doesn't work | Whether your reverse proxy buffers (Nginx needs `proxy_buffering off`) |
| Want to see what this key spent | Per-key view on the [usage page](https://zhonkezhonkemodel.dflop.top/dashboard/usage) |

## Other clients

- [Claude Code](./claude-code.md) — AI coding on the command line
- [Cursor](./cursor.md) — AI built into the IDE
- [Cline (VS Code)](./cline.md) — agentic AI coding
- [Continue.dev](./continue.md) — VS Code / JetBrains
- [FlopCode](./flopcode.md) — this platform's official fork
