ui.chat_ui
ui.chat_ui(id, *, placeholder='Enter a message...', width='min(680px, 100%)', height='auto', fill=True, **kwargs)
UI container for a chat component (Shiny Core).
This function is for locating a Chat instance in a Shiny Core app. If you are using Shiny Express, use the ui
method instead.
Parameters
id: str
-
A unique identifier for the chat UI.
placeholder: str = ‘Enter a message…’
-
Placeholder text for the chat input.
width: CssUnit = ‘min(680px, 100%)’
-
The width of the chat container.
height: CssUnit = ‘auto’
-
The height of the chat container.
fill: bool = True
-
Whether the chat should vertically take available space inside a fillable container.
kwargs: TagAttrValue = {}
-
Additional attributes for the chat container element.
Examples
#| standalone: true
#| components: [editor, viewer]
#| layout: vertical
#| viewerHeight: 400
## file: app.py
from shiny import App, ui
app_ui = ui.page_fillable(
ui.panel_title("Hello Shiny Chat"),
ui.chat_ui("chat"),
fillable_mobile=True,
)
# Create a welcome message
welcome = ui.markdown(
"""
Hi! This is a simple Shiny `Chat` UI. Enter a message below and I will
simply repeat it back to you. For more examples, see this
[folder of examples](https://github.com/posit-dev/py-shiny/tree/main/examples/chat).
"""
)
def server(input, output, session):
chat = ui.Chat(id="chat", messages=[welcome])
# Define a callback to run when the user submits a message
@chat.on_user_submit
async def _():
# Get the user's input
user = chat.user_input()
# Append a response to the chat
await chat.append_message(f"You said: {user}")
app = App(app_ui, server)