Skip to content

Overhaul demos directory: cleanup, restructure, and standardize configs#760

Merged
adilhafeez merged 6 commits intomainfrom
demos-overhaul
Feb 17, 2026
Merged

Overhaul demos directory: cleanup, restructure, and standardize configs#760
adilhafeez merged 6 commits intomainfrom
demos-overhaul

Conversation

@adilhafeez
Copy link
Contributor

@adilhafeez adilhafeez commented Feb 15, 2026

Summary

  • Clean up dead/duplicate demos: Remove samples_java/, shared/chatbot_ui/, legacy observability stacks (grafana, prometheus, logfire, honeycomb, signoz), and variant docker-compose files
  • Restructure into semantic categories: getting_started/, agent_orchestration/, llm_routing/, filter_chains/, integrations/, advanced/ — replacing the flat samples_python/ and use_cases/ layout
  • Standardize all configs to v0.3.0: Rename llm_providersmodel_providers, modernize listener format to array style, add tracing where missing, replace chatbot_ui with AnythingLLM in docker-compose files, and update 3 CLI init templates
  • Update all path references: README, docs, e2e test scripts, docker-compose files, and demo READMEs
demos/
├── getting_started/
│   ├── llm_gateway/              (moved from use_cases/llm_routing/ — simplest demo: just proxy to an LLM)
│   └── weather_forecast/         (moved from samples_python/weather_forecast/ — intro to agents & function calling)
├── agent_orchestration/
│   ├── travel_agents/            (moved from use_cases/travel_agents/)
│   └── multi_agent_crewai_langchain/  (moved from use_cases/multi_agent_with_crewai_langchain/)
├── llm_routing/
│   ├── model_alias_routing/      (moved from use_cases/model_alias_routing/)
│   ├── preference_based_routing/ (moved from use_cases/preference_based_routing/)
│   └── claude_code_router/       (moved from use_cases/claude_code_router/)
├── filter_chains/
│   ├── http_filter/              (moved from use_cases/http_filter/)
│   └── mcp_filter/               (moved from use_cases/mcp_filter/)
├── integrations/
│   ├── ollama/                   (moved from use_cases/ollama/)
│   └── spotify_bearer_auth/      (moved from use_cases/spotify_bearer_auth/)
├── advanced/
│   ├── model_choice_test_harness/ (moved from use_cases/model_choice_with_test_harness/)
│   ├── multi_turn_rag/           (moved from samples_python/multi_turn_rag_agent/)
│   ├── currency_exchange/        (moved from samples_python/currency_exchange/)
│   └── stock_quote/              (moved from samples_python/stock_quote/)
└── shared/                       (slimmed down — only jaeger + test_runner remain)
    ├── jaeger/
    └── test_runner/

adilhafeez and others added 4 commits February 15, 2026 01:43
Phase 1 - Remove dead/duplicate content:
- Delete demos/samples_java/ (incomplete Java demo)
- Delete demos/shared/chatbot_ui/ (replaced by AnythingLLM)
- Delete demos/shared/grafana/, prometheus/, logfire/, honeycomb/, signoz/
  (legacy observability stacks; only jaeger is retained)
- Delete variant docker-compose files (honeycomb, logfire, signoz, jaeger)
- Delete demos/use_cases/spotify_bearer_auth/run_demo.sh (stale script)

Phase 2 - Restructure into semantic categories:
- getting_started/  : weather_forecast, llm_gateway
- agent_orchestration/ : travel_agents, multi_agent_crewai_langchain
- llm_routing/       : model_alias_routing, preference_based_routing, claude_code_router
- filter_chains/     : http_filter, mcp_filter
- integrations/      : ollama, spotify_bearer_auth
- advanced/          : model_choice_test_harness, multi_turn_rag,
                       currency_exchange, stock_quote

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Update all demo config files to version v0.3.0
- Rename llm_providers → model_providers across all configs
- Modernize listener format from object to array style
  (e.g. listeners: [{type: model, name:, port:}])
- Replace chatbot_ui with AnythingLLM in 6 docker-compose files
- Remove prometheus/grafana services from llm_gateway and
  preference_based_routing docker-compose files
- Add tracing: random_sampling: 100 to configs that lacked it
- Update 3 CLI init templates (coding_agent_routing,
  preference_aware_routing, conversational_state_v1_responses)
- Fix test_init.py assertion for model_providers key

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Update README.md demo path references to agent_orchestration/
- Update docs/source paths for multi_turn_rag and travel_agents
- Update e2e test scripts for weather_forecast and model_alias_routing
- Update docker-compose.dev.yaml and e2e docker-compose.yaml paths
- Update demo READMEs with correct cross-references and remove
  references to deleted observability stacks
- Update test runner script for preference_based_routing path

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Update ci.yml demo paths: use_cases/preference_based_routing →
  llm_routing/preference_based_routing, samples_python/currency_exchange
  → advanced/currency_exchange
- Fix SocketAddressValidationError in Envoy config: set default address
  ("0.0.0.0") and timeout ("30s") on array-style listener dicts so the
  Envoy template renders valid listener addresses
- Also extract prompt_gateway_listener from type: "prompt" listeners
  in the array format (was only handled for legacy dict format)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@adilhafeez adilhafeez closed this Feb 15, 2026
@adilhafeez adilhafeez reopened this Feb 15, 2026
adilhafeez and others added 2 commits February 15, 2026 10:34
# Conflicts:
#	demos/shared/chatbot_ui/Dockerfile
Use dict merge ({**defaults, **listener}) instead of setdefault() to
provide address/timeout defaults for the Envoy template without
mutating the original listener dicts. This prevents extra fields
(timeout: 30s) from leaking into the rendered plano config YAML.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Contributor

@salmanap salmanap left a comment

Choose a reason for hiding this comment

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

one minor comment - please spot check a few of these demos, because its hard to tell if they work given the filepath moves

@adilhafeez adilhafeez merged commit 473996d into main Feb 17, 2026
20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants