examples/open_webui/README.md
A filter pipeline that integrates MLflow tracing with Open WebUI, enabling observability for multi-turn chat sessions.
mlflow.trace.session, viewable with "Group by session" in the MLflow UImlflow.trace.usermlflow>=2.14.0| Valve | Default | Description |
|---|---|---|
mlflow_tracking_uri | http://localhost:5000 | MLflow tracking server URI |
mlflow_experiment_name | open-webui | Experiment name in MLflow |
debug | false | Enable debug logging |
mlflow server --disable-security-middleware
open-webui serve
Build a custom Docker image with MLflow installed:
# Create Dockerfile.mlflow
cat > Dockerfile.mlflow <<'EOF'
FROM ghcr.io/open-webui/pipelines:main
RUN pip install --no-cache-dir mlflow
EOF
# Build image
docker build -f Dockerfile.mlflow -t pipelines-mlflow .
# Launch container (replace host.docker.internal:5000 with your MLflow server address)
docker run -p 9099:9099 \
--add-host=host.docker.internal:host-gateway \
-v pipelines:/app/pipelines \
--name pipelines \
--restart always \
-e MLFLOW_TRACKING_URI=http://host.docker.internal:5000/ \
-e DEBUG_MODE=true \
pipelines-mlflow
In Open WebUI, go to Admin Panel → Settings → Connections and add a new OpenAI API connection pointing to the pipeline server:
http://localhost:9099/0p3n-w3bu! (default credential)Go to Admin Panel → Settings → Pipelines. Set the Pipelines listener address to http://host.docker.internal:9099, then upload mlflow_filter_pipeline.py using the file upload button. Then configure MLflow tracking URI and MLflow experiment name as follows:
Start a conversation in Open WebUI:
Open the MLflow UI and enable "Group by session" to view full conversations as grouped traces.
Single turn traces:
Full chat session grouped view: