Skip to content

Instantly share code, notes, and snippets.

@Vovanda
Last active July 5, 2025 23:49
Show Gist options
  • Select an option

  • Save Vovanda/6c0a1d570a0f6d00a8baafefe6ec9f36 to your computer and use it in GitHub Desktop.

Select an option

Save Vovanda/6c0a1d570a0f6d00a8baafefe6ec9f36 to your computer and use it in GitHub Desktop.
Streaming proxy with chunk filtering for Open WebUI and Zed IDE — resolves invalid chunk errors from custom models and enables function calling emulation

Open Web UI Stream Chunk Filter for Zed IDE

This adapter script resolves the following error in Zed IDE:

data did not match any variant of untagged enum ResponseStreamResult

which occurs when using a custom Open Web UI model (pipe functions). Open Web UI sends invalid chunks in the stream, causing parsing exceptions.


What the adapter does

  • Proxies requests to Open Web UI
  • Filters out and removes invalid chunks from the stream, allowing Zed IDE to properly receive responses
  • Supports both streaming and regular JSON responses
  • Allows overriding system messages in requests (optional)

Usage

  1. Clone or download the script
  2. Set environment variables:
    • OPENWEBUI_URL — URL of your Open Web UI server
    • OPENWEBUI_API_KEY — API key for access
    • (optional) ZED_SYSTEM_PROMPT_FILE — path to a file with a system prompt
    • (optional) ZED_SYSTEM_PROMPT_MODE — mode for handling system messages, one of:
      • default (leave system messages unchanged)
      • replace (replace all system messages with the one from the file)
      • disable (remove all system messages)
  3. Install dependencies:
pip install fastapi httpx uvicorn python-dotenv
  1. Run the server:
python openAI_adapter.py
  1. Configure Zed IDE to use this proxy instead of direct connection to Open Web UI

Important notes

  • The invalid chunk issue only occurs when using Open Web UI custom models (pipe functions)
  • No such problems occur when using models via OpenRouter
  • This script is intended as a temporary workaround for smooth operation with Zed IDE

If you have any questions, feel free to reach out.


Author: Savkin Vladimir Date: 2025


Фильтр невалидных чанков Open Web UI для Zed IDE

Этот скрипт-адаптер решает проблему с ошибкой в Zed IDE:

data did not match any variant of untagged enum ResponseStreamResult

Возникающую при использовании кастомной модели Open Web UI (pipe functions), когда Open Web UI отправляет невалидные чанки в stream, что вызывает исключения при парсинге.


Что делает адаптер

  • Проксирует запросы к Open Web UI
  • Фильтрует и удаляет невалидные чанки из stream, позволяя Zed IDE корректно принимать ответы
  • Поддерживает как streaming, так и обычные JSON-ответы
  • Позволяет переопределять системные сообщения в запросах (опционально)

Использование

  1. Клонируйте или скачайте скрипт
  2. Задайте переменные окружения:
    • OPENWEBUI_URL — URL вашего Open Web UI сервера
    • OPENWEBUI_API_KEY — API ключ для доступа
    • (опционально) ZED_SYSTEM_PROMPT_FILE — путь к файлу с системным сообщением
    • (опционально) ZED_SYSTEM_PROMPT_MODE — режим обработки системных сообщений, одно из:
      • default (оставить системные сообщения без изменений)
      • replace (заменить все системные сообщения на указанное в файле)
      • disable (удалить все системные сообщения)
  3. Установите зависимости:
pip install fastapi httpx uvicorn python-dotenv
  1. Запустите сервер:
python openAI_adapter.py
  1. Настройте Zed IDE использовать этот прокси вместо прямого подключения к Open Web UI

Важные замечания

  • Проблема с невалидными чанками возникает только при использовании кастомной модели Open Web UI (pipe functions)
  • При использовании моделей через OpenRouter подобных проблем не наблюдается
  • Скрипт сделан как временное решение для корректной работы с Zed IDE

Если возникнут вопросы — обращайтесь.


Автор: Владимир Савкин
Дата: 2025

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment