diff --git a/examples/airmass/README.md b/examples/airmass/README.md new file mode 100644 index 000000000..135269eb0 --- /dev/null +++ b/examples/airmass/README.md @@ -0,0 +1,3 @@ +## Airmass app + + diff --git a/examples/annotation-export/README.md b/examples/annotation-export/README.md new file mode 100644 index 000000000..dc68b756b --- /dev/null +++ b/examples/annotation-export/README.md @@ -0,0 +1,3 @@ +## Plot annotation app + + diff --git a/examples/annotation-export/requirements.txt b/examples/annotation-export/requirements.txt index 4695c7070..6a921d305 100644 --- a/examples/annotation-export/requirements.txt +++ b/examples/annotation-export/requirements.txt @@ -1,2 +1,4 @@ seaborn pandas +shiny +matplotlib diff --git a/examples/brownian/README.md b/examples/brownian/README.md new file mode 100644 index 000000000..d2b531f43 --- /dev/null +++ b/examples/brownian/README.md @@ -0,0 +1 @@ +## Hand-driven data exploration app diff --git a/examples/busy_indicators/README.md b/examples/busy_indicators/README.md new file mode 100644 index 000000000..bfea496a6 --- /dev/null +++ b/examples/busy_indicators/README.md @@ -0,0 +1,3 @@ +## Busy indicators app + + diff --git a/examples/busy_indicators/requirements.txt b/examples/busy_indicators/requirements.txt new file mode 100644 index 000000000..8cc6a66a2 --- /dev/null +++ b/examples/busy_indicators/requirements.txt @@ -0,0 +1,3 @@ +numpy +seaborn +shiny diff --git a/examples/chat/RAG/recipes/requirements.txt b/examples/chat/RAG/recipes/requirements.txt new file mode 100644 index 000000000..54b14a013 --- /dev/null +++ b/examples/chat/RAG/recipes/requirements.txt @@ -0,0 +1,4 @@ +aiohttp +bs4 +openai +shiny diff --git a/examples/chat/README.md b/examples/chat/README.md index c5a366394..b0c2f4907 100644 --- a/examples/chat/README.md +++ b/examples/chat/README.md @@ -1,5 +1,21 @@ # Shiny `Chat` examples + This folder contains a collection of examples illustrating `shiny.ui.Chat` usage. Many of them require API keys from providers such as OpenAI, Anthropic, etc. In those cases, the example should have commentary explaining how to obtain keys as well as how to provide them to the app. To get started with an app that doesn't require an API key, see the `hello-world` example. This example has both a Shiny Core and Express app to illustrate how it's used in either mode. + + +----------------------- + +## Apps + +* [hello-world](hello-world): A simple chat app that echoes back the user's input. +* [playground](playground): A playground for testing out different chat models: `openai`, `claude`, and `google`. +* RAG + * [recipes](RAG/recipes): A simple recipe extractor chatbot that extracts recipes from URLs using the OpenAI API. +* UI + * [clear](ui/clear): This example demonstrates how to clear the chat when the model changes. + * [dark](ui/dark): This example demonstrates Shiny Chat's dark mode capability. + * [dynamic](ui/dynamic): A basic example of dynamically re-rendering a Shiny Chat instance with different models. + * [sidebar](ui/sidebar): An example of placing a Shiny Chat instance in a sidebar (and having it fill the sidebar). diff --git a/examples/chat/hello-world/requirements.txt b/examples/chat/hello-world/requirements.txt new file mode 100644 index 000000000..3e78250b6 --- /dev/null +++ b/examples/chat/hello-world/requirements.txt @@ -0,0 +1 @@ +shiny diff --git a/examples/chat/playground/requirements.txt b/examples/chat/playground/requirements.txt new file mode 100644 index 000000000..29bb799b8 --- /dev/null +++ b/examples/chat/playground/requirements.txt @@ -0,0 +1,4 @@ +langchain_anthropic +langchain_google_vertexai +langchain_openai +shiny diff --git a/examples/chat/ui/clear/requirements.txt b/examples/chat/ui/clear/requirements.txt new file mode 100644 index 000000000..74bdc42cd --- /dev/null +++ b/examples/chat/ui/clear/requirements.txt @@ -0,0 +1,2 @@ +langchain_openai +shiny diff --git a/examples/chat/ui/dark/requirements.txt b/examples/chat/ui/dark/requirements.txt new file mode 100644 index 000000000..74bdc42cd --- /dev/null +++ b/examples/chat/ui/dark/requirements.txt @@ -0,0 +1,2 @@ +langchain_openai +shiny diff --git a/examples/chat/ui/dynamic/requirements.txt b/examples/chat/ui/dynamic/requirements.txt new file mode 100644 index 000000000..74bdc42cd --- /dev/null +++ b/examples/chat/ui/dynamic/requirements.txt @@ -0,0 +1,2 @@ +langchain_openai +shiny diff --git a/examples/chat/ui/sidebar/requirements.txt b/examples/chat/ui/sidebar/requirements.txt new file mode 100644 index 000000000..74bdc42cd --- /dev/null +++ b/examples/chat/ui/sidebar/requirements.txt @@ -0,0 +1,2 @@ +langchain_openai +shiny diff --git a/examples/cpuinfo/README.md b/examples/cpuinfo/README.md new file mode 100644 index 000000000..69defb255 --- /dev/null +++ b/examples/cpuinfo/README.md @@ -0,0 +1,3 @@ +## CPU usage app + + diff --git a/examples/cpuinfo/requirements.txt b/examples/cpuinfo/requirements.txt new file mode 100644 index 000000000..91b6de986 --- /dev/null +++ b/examples/cpuinfo/requirements.txt @@ -0,0 +1,5 @@ +matplotlib +numpy +pandas +psutil +shiny diff --git a/examples/dataframe/README.md b/examples/dataframe/README.md new file mode 100644 index 000000000..629d00a93 --- /dev/null +++ b/examples/dataframe/README.md @@ -0,0 +1,3 @@ +## Data frame viewer + + diff --git a/examples/dataframe/requirements.txt b/examples/dataframe/requirements.txt new file mode 100644 index 000000000..4702dcbc4 --- /dev/null +++ b/examples/dataframe/requirements.txt @@ -0,0 +1,4 @@ +pandas +seaborn +shiny +shinyswatch diff --git a/examples/duckdb/README.md b/examples/duckdb/README.md new file mode 100644 index 000000000..6a66eb541 --- /dev/null +++ b/examples/duckdb/README.md @@ -0,0 +1,3 @@ +## DuckDB query weather explorer + + diff --git a/examples/duckdb/requirements.txt b/examples/duckdb/requirements.txt index 71bb3d1d9..4eb669cd9 100644 --- a/examples/duckdb/requirements.txt +++ b/examples/duckdb/requirements.txt @@ -1,4 +1,4 @@ duckdb +pandas shiny shinyswatch -pandas diff --git a/examples/event/README.md b/examples/event/README.md new file mode 100644 index 000000000..679f6d62e --- /dev/null +++ b/examples/event/README.md @@ -0,0 +1,3 @@ +## Sync / Async events + + diff --git a/examples/event/requirements.txt b/examples/event/requirements.txt new file mode 100644 index 000000000..3e78250b6 --- /dev/null +++ b/examples/event/requirements.txt @@ -0,0 +1 @@ +shiny diff --git a/examples/express/README.md b/examples/express/README.md new file mode 100644 index 000000000..ab7a3151e --- /dev/null +++ b/examples/express/README.md @@ -0,0 +1,33 @@ +## `shiny.express` examples + +This folder contains a collection of examples illustrating `shiny.express` usage. + +### Apps + +* [`accordion_app.py`](accordion_app.py): + * Integrates `ui.accordion()` and `ui.accordion_panel()`. + +* [`basic_app.py`](basic_app.py): + * Basic app containing a `ui.input_slider()` and `ui.output_code()`. + +* [`column_wrap_app.py`](basic_app.py): + * Basic app containing a `ui.input_slider()` and `ui.output_code()`. + +* [`expressify_app.py`](expressify_app.py): + * Demonstrates how to use `@expressify` to convert regular functions into _express_ compatible functions. + +* [`hold_app.py`](hold_app.py): + * Demonstrates how to use `@hold` to prevent the app from updating. + +* [`nav_app.py`](nav_app.py): + * Demonstrates how to use different navsets along with `ui.nav_panel()`. + +* [`plot_app.py`](plot_app.py): + * Demonstrates how plot render methods are rendered in place. + +* [`render_express_app.py`](render_express_app.py): + * Demonstrates how to use `@render.express()` (similar to `@render.ui()`), but for _express_ functions. + +* [`shared_app.py`](shared_app.py): + * This app demonstrates how to use "global" variables that are shared across sessions. + * This is useful if you want to load data just once and use it in multiple apps, or if you want to share data or reactives among apps. diff --git a/examples/express/hold_app.py b/examples/express/hold_app.py index e64c29490..b692f195d 100644 --- a/examples/express/hold_app.py +++ b/examples/express/hold_app.py @@ -25,4 +25,4 @@ def txt(): ui.input_slider("n", "N", 1, 100, 50) -shiny.ui.output_code("txt", inline=True) +shiny.ui.output_code("txt") diff --git a/examples/express/requirements.txt b/examples/express/requirements.txt new file mode 100644 index 000000000..b079970cd --- /dev/null +++ b/examples/express/requirements.txt @@ -0,0 +1,3 @@ +matplotlib +numpy +shiny diff --git a/examples/global_pyplot/README.md b/examples/global_pyplot/README.md new file mode 100644 index 000000000..39a635c47 --- /dev/null +++ b/examples/global_pyplot/README.md @@ -0,0 +1,3 @@ +## Plotting with `matplotlib.pyplot` + + diff --git a/examples/global_pyplot/requirements.txt b/examples/global_pyplot/requirements.txt new file mode 100644 index 000000000..400f73f5f --- /dev/null +++ b/examples/global_pyplot/requirements.txt @@ -0,0 +1,2 @@ +matplotlib +shiny diff --git a/examples/headers/README.md b/examples/headers/README.md new file mode 100644 index 000000000..2dddf3be0 --- /dev/null +++ b/examples/headers/README.md @@ -0,0 +1,3 @@ +## HTTP request headers app + + diff --git a/examples/headers/requirements.txt b/examples/headers/requirements.txt new file mode 100644 index 000000000..3e78250b6 --- /dev/null +++ b/examples/headers/requirements.txt @@ -0,0 +1 @@ +shiny diff --git a/examples/inputs-update/README.md b/examples/inputs-update/README.md new file mode 100644 index 000000000..ac9c8c9d1 --- /dev/null +++ b/examples/inputs-update/README.md @@ -0,0 +1,3 @@ +## Updating shiny inputs + + diff --git a/examples/inputs-update/requirements.txt b/examples/inputs-update/requirements.txt new file mode 100644 index 000000000..3e78250b6 --- /dev/null +++ b/examples/inputs-update/requirements.txt @@ -0,0 +1 @@ +shiny diff --git a/examples/load_balance/README.md b/examples/load_balance/README.md new file mode 100644 index 000000000..495d3da59 --- /dev/null +++ b/examples/load_balance/README.md @@ -0,0 +1,3 @@ +## Sticky load balance test app + + diff --git a/examples/load_balance/requirements.txt b/examples/load_balance/requirements.txt new file mode 100644 index 000000000..71022f994 --- /dev/null +++ b/examples/load_balance/requirements.txt @@ -0,0 +1,2 @@ +shiny +starlette diff --git a/examples/model-score/README.md b/examples/model-score/README.md new file mode 100644 index 000000000..45205eceb --- /dev/null +++ b/examples/model-score/README.md @@ -0,0 +1,3 @@ +## Model monitoring dashboard + + diff --git a/examples/model-score/requirements.txt b/examples/model-score/requirements.txt index 1a5617b60..a87615d6d 100644 --- a/examples/model-score/requirements.txt +++ b/examples/model-score/requirements.txt @@ -1,3 +1,4 @@ +numpy pandas plotly shiny diff --git a/examples/moduleapp/README.md b/examples/moduleapp/README.md new file mode 100644 index 000000000..45205eceb --- /dev/null +++ b/examples/moduleapp/README.md @@ -0,0 +1,3 @@ +## Model monitoring dashboard + + diff --git a/examples/moduleapp/requirements.txt b/examples/moduleapp/requirements.txt new file mode 100644 index 000000000..3e78250b6 --- /dev/null +++ b/examples/moduleapp/requirements.txt @@ -0,0 +1 @@ +shiny diff --git a/examples/penguins/README.md b/examples/penguins/README.md new file mode 100644 index 000000000..b16135304 --- /dev/null +++ b/examples/penguins/README.md @@ -0,0 +1,3 @@ +## Penguins dashboard + + diff --git a/examples/penguins/requirements.txt b/examples/penguins/requirements.txt index 14d67b478..35f60813f 100644 --- a/examples/penguins/requirements.txt +++ b/examples/penguins/requirements.txt @@ -1,4 +1,4 @@ -shiny -shinyswatch +matplotlib pandas seaborn +shiny diff --git a/examples/req/README.md b/examples/req/README.md new file mode 100644 index 000000000..7fb618939 --- /dev/null +++ b/examples/req/README.md @@ -0,0 +1,3 @@ +## Error handling example app + + diff --git a/examples/req/requirements.txt b/examples/req/requirements.txt new file mode 100644 index 000000000..3e78250b6 --- /dev/null +++ b/examples/req/requirements.txt @@ -0,0 +1 @@ +shiny diff --git a/examples/static_plots/README.md b/examples/static_plots/README.md new file mode 100644 index 000000000..94baf664a --- /dev/null +++ b/examples/static_plots/README.md @@ -0,0 +1,3 @@ +## Static Plots + + diff --git a/examples/static_plots/requirements.txt b/examples/static_plots/requirements.txt new file mode 100644 index 000000000..dcb817f56 --- /dev/null +++ b/examples/static_plots/requirements.txt @@ -0,0 +1,6 @@ +matplotlib +numpy +pandas +seaborn +plotnine +shiny diff --git a/examples/typed_inputs/README.md b/examples/typed_inputs/README.md new file mode 100644 index 000000000..91d2d6704 --- /dev/null +++ b/examples/typed_inputs/README.md @@ -0,0 +1,3 @@ +## Typed inputs + + diff --git a/examples/typed_inputs/requirements.txt b/examples/typed_inputs/requirements.txt new file mode 100644 index 000000000..3e78250b6 --- /dev/null +++ b/examples/typed_inputs/requirements.txt @@ -0,0 +1 @@ +shiny diff --git a/examples/ui-func/README.md b/examples/ui-func/README.md new file mode 100644 index 000000000..0b4fd38cf --- /dev/null +++ b/examples/ui-func/README.md @@ -0,0 +1,3 @@ +## UI as a function + + diff --git a/examples/ui-func/requirements.txt b/examples/ui-func/requirements.txt new file mode 100644 index 000000000..71022f994 --- /dev/null +++ b/examples/ui-func/requirements.txt @@ -0,0 +1,2 @@ +shiny +starlette