Skip to content

[ MLflow Demo ] UI updates for MLflow Demo interfaces#20162

Merged
B-Step62 merged 11 commits intomlflow:masterfrom
BenWilson2:stack/demo/home
Feb 9, 2026
Merged

[ MLflow Demo ] UI updates for MLflow Demo interfaces#20162
B-Step62 merged 11 commits intomlflow:masterfrom
BenWilson2:stack/demo/home

Conversation

@BenWilson2
Copy link
Member

@BenWilson2 BenWilson2 commented Jan 20, 2026

🥞 Stacked PR

Use this link to review incremental changes.


Related Issues/PRs

#xxx

What changes are proposed in this pull request?

Adds the UI navigation elements to go to the demo content. Adds the ability to clear demo data from an existing server if desired (without soft deletion of an experiment and the requirement to use gc commands).

Screenshot 2026-01-22 at 3 44 41 PM Screenshot 2026-01-22 at 3 44 50 PM

How is this PR tested?

  • Existing unit/integration tests
  • New unit/integration tests
  • Manual tests

Does this PR require documentation update?

  • No. You can skip the rest of this section.
  • Yes. I've updated:
    • Examples
    • API references
    • Instructions

Release Notes

Is this a user-facing change?

  • No. You can skip the rest of this section.
  • Yes. Give a description of this change to be included in the release notes for MLflow users.

What component(s), interfaces, languages, and integrations does this PR affect?

Components

  • area/tracking: Tracking Service, tracking client APIs, autologging
  • area/models: MLmodel format, model serialization/deserialization, flavors
  • area/model-registry: Model Registry service, APIs, and the fluent client calls for Model Registry
  • area/scoring: MLflow Model server, model deployment tools, Spark UDFs
  • area/evaluation: MLflow model evaluation features, evaluation metrics, and evaluation workflows
  • area/gateway: MLflow AI Gateway client APIs, server, and third-party integrations
  • area/prompts: MLflow prompt engineering features, prompt templates, and prompt management
  • area/tracing: MLflow Tracing features, tracing APIs, and LLM tracing functionality
  • area/projects: MLproject format, project running backends
  • area/uiux: Front-end, user experience, plotting, JavaScript, JavaScript dev server
  • area/build: Build and test infrastructure for MLflow
  • area/docs: MLflow documentation pages

How should the PR be classified in the release notes? Choose one:

  • rn/none - No description will be included. The PR will be mentioned only by the PR number in the "Small Bugfixes and Documentation Updates" section
  • rn/breaking-change - The PR will be mentioned in the "Breaking Changes" section
  • rn/feature - A new user-facing feature worth mentioning in the release notes
  • rn/bug-fix - A user-facing bug fix worth mentioning in the release notes
  • rn/documentation - A user-facing documentation change worth mentioning in the release notes

Should this PR be included in the next patch release?

Yes should be selected for bug fixes, documentation updates, and other small changes. No should be selected for new features and larger changes. If you're unsure about the release classification of this PR, leave this unchecked to let the maintainers decide.

What is a minor/patch release?
  • Minor release: a release that increments the second part of the version number (e.g., 1.2.0 -> 1.3.0).
    Bug fixes, doc updates and new features usually go into minor releases.
  • Patch release: a release that increments the third part of the version number (e.g., 1.2.0 -> 1.2.1).
    Bug fixes and doc updates usually go into patch releases.
  • Yes (this PR will be cherry-picked and included in the next patch release)
  • No (this PR will be included in the next minor release)

@github-actions
Copy link
Contributor

🛠 DevTools 🛠

Install mlflow from this PR

# mlflow
pip install git+https://github.com/mlflow/mlflow.git@refs/pull/20162/merge
# mlflow-skinny
pip install git+https://github.com/mlflow/mlflow.git@refs/pull/20162/merge#subdirectory=libs/skinny

For Databricks, use the following command:

%sh curl -LsSf https://raw.githubusercontent.com/mlflow/mlflow/HEAD/dev/install-skinny.sh | sh -s pull/20162/merge

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces a comprehensive demo data framework for MLflow, featuring UI enhancements, backend API endpoints, CLI commands, and a complete demo data generation system. The changes enable users to explore MLflow's GenAI features through pre-populated sample data.

Changes:

  • Added demo data generation framework with support for traces, prompts, and evaluation datasets
  • Implemented new home page UI with feature cards and demo banner for easy onboarding
  • Created mlflow demo CLI command for launching demo servers
  • Added demo management API endpoints for generating and deleting demo data
  • Enhanced logging configuration to reduce noise from alembic and huey

Reviewed changes

Copilot reviewed 35 out of 36 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
mlflow/demo/ Core demo framework with base classes, registry, and generators for traces/prompts/evaluation
mlflow/cli/demo.py New CLI command for launching demo servers with interactive setup
mlflow/server/handlers.py API endpoints for demo generation and deletion
mlflow/server/js/src/home/ React components for demo banner and feature cards on home page
mlflow/server/js/src/settings/SettingsPage.tsx UI for clearing demo data from settings
mlflow/utils/ Port availability checking and logging improvements
tests/demo/ Comprehensive test suite for demo functionality

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@BenWilson2 BenWilson2 changed the title UI changes [ MLflow Demo ] UI updates for MLflow Demo interfaces Jan 21, 2026
@github-actions
Copy link
Contributor

github-actions bot commented Jan 21, 2026

Documentation preview for 1c72aff is available at:

More info
  • Ignore this comment if this PR does not change the documentation.
  • The preview is updated when a new commit is pushed to this PR.
  • This comment was created by this workflow run.
  • The documentation was built by this workflow run.

@BenWilson2 BenWilson2 force-pushed the stack/demo/home branch 4 times, most recently from beaa393 to c2dc6ed Compare January 22, 2026 18:56
@github-actions github-actions bot added area/uiux Front-end, user experience, plotting, JavaScript, JavaScript dev server rn/feature Mention under Features in Changelogs. labels Jan 22, 2026
@BenWilson2 BenWilson2 force-pushed the stack/demo/home branch 3 times, most recently from 4582c9b to 79d71ad Compare January 26, 2026 15:00
@BenWilson2 BenWilson2 force-pushed the stack/demo/home branch 3 times, most recently from 86d8908 to 17cde10 Compare January 28, 2026 19:16
@B-Step62
Copy link
Collaborator

@BenWilson2 The generation flow looks so smooth! Very easy to access each feature.

Before reviewing the implementation closely, a few minor thoughts:

  1. Can we rename "Experiments" to "Model Training" or something? Since we use Experiment as a container of tracing, evals, etc, it might be a bit misleading to have it as a stand-alone concept in a set of cards.

  2. "Explore demo data" <- I think we can simplify "Explore demo"?

  3. Maybe we can rename the "Experiments" section to "Recent Experiments".

@BenWilson2 BenWilson2 force-pushed the stack/demo/home branch 5 times, most recently from 66ea277 to 3ceb48c Compare January 30, 2026 03:26
@BenWilson2
Copy link
Member Author

@BenWilson2 The generation flow looks so smooth! Very easy to access each feature.

Before reviewing the implementation closely, a few minor thoughts:

  1. Can we rename "Experiments" to "Model Training" or something? Since we use Experiment as a container of tracing, evals, etc, it might be a bit misleading to have it as a stand-alone concept in a set of cards.
  2. "Explore demo data" <- I think we can simplify "Explore demo"?
  3. Maybe we can rename the "Experiments" section to "Recent Experiments".

Updated!
Screenshot 2026-01-29 at 10 38 45 PM

@BenWilson2 BenWilson2 force-pushed the stack/demo/home branch 3 times, most recently from c050bd3 to 7de585e Compare February 2, 2026 16:07
export const featureDefinitions: FeatureDefinition[] = [
{
id: 'tracing',
icon: WorkflowsIcon,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: Is it possible to use the consistent icon as the experiment sidebar?
Uploading Screenshot 2026-02-04 at 22.47.08.png…

<Button
componentId="mlflow.settings.demo.clear-all-button"
onClick={handleClearAllDemoData}
disabled={isCleaningDemo}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we have a confirmation pop up before deleting the demo data?

onExperimentCreated={handleExperimentCreated}
/>
<LogTracesDrawerLoader />
<LogTracesDrawer />
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are we showing this drawer somewhere?

from mlflow.demo.generators.traces import TracesDemoGenerator
from mlflow.demo.registry import demo_registry

# NB: Order matters here. Prompts must be created before traces (for linking),
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice catch!

navigate(data.navigation_url || '/experiments');
} catch (error) {
console.error('Failed to generate demo:', error);
navigate('/experiments');
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if re-directing to experiment page on failure is confusing to users, they will see the default experiment with no data. Shall we we show a notice "Failed to generate demo" (a similar popup to the one shown when clicking copy button) and keep users on the current page?

Comment on lines +43 to +45
console.error('Failed to generate demo:', error);
navigate(feature.navigationPath);
} finally {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same comment as the DemoBanner error handling.

navigate(feature.navigationPath);
}, [feature.navigationPath, navigate]);

const cardStyles = {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure if this is the common pattern in the repo. Shall we inline to avoid regenerating these on render or have a separate css file?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we add some test coverage to these new components?

Signed-off-by: Ben Wilson <benjamin.wilson@databricks.com>
BenWilson2 and others added 9 commits February 9, 2026 17:41
…plates

- Add timestamp distribution across 7 days (v1 in days 0-3.5, v2 in days 3.5-7)
- Add token count estimation as span attributes (SpanAttributeKey.CHAT_USAGE)
- Add prompt-based traces with template rendering and variables
- Restructure sessions to have 2-4 turns each across 3 sessions
- Fix trace metadata by using InMemoryTraceManager directly
- Update test expectations for new trace counts (34 total: 4 RAG, 4 agent, 12 prompt, 14 session)

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Ben Wilson <benjamin.wilson@databricks.com>
…plates

- Add timestamp distribution across 7 days (v1 in days 0-3.5, v2 in days 3.5-7)
- Add token count estimation as span attributes (SpanAttributeKey.CHAT_USAGE)
- Add prompt-based traces with template rendering and variables
- Restructure sessions to have 2-4 turns each across 3 sessions
- Fix trace metadata by using InMemoryTraceManager directly
- Update test expectations for new trace counts (34 total: 4 RAG, 4 agent, 12 prompt, 14 session)

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Ben Wilson <benjamin.wilson@databricks.com>
Signed-off-by: Ben Wilson <benjamin.wilson@databricks.com>
Signed-off-by: Ben Wilson <benjamin.wilson@databricks.com>
Signed-off-by: Ben Wilson <benjamin.wilson@databricks.com>
Signed-off-by: Ben Wilson <benjamin.wilson@databricks.com>
Signed-off-by: B-Step62 <yuki.watanabe@databricks.com>
Signed-off-by: B-Step62 <yuki.watanabe@databricks.com>
Signed-off-by: B-Step62 <yuki.watanabe@databricks.com>
Signed-off-by: B-Step62 <yuki.watanabe@databricks.com>
@B-Step62 B-Step62 added this pull request to the merge queue Feb 9, 2026
Merged via the queue into mlflow:master with commit 4fc42f6 Feb 9, 2026
50 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/uiux Front-end, user experience, plotting, JavaScript, JavaScript dev server rn/feature Mention under Features in Changelogs.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants