shinychat 0.2.0
CRAN release: 2025-05-16
New features and improvements
Added new
output_markdown_stream()
andmarkdown_stream()
functions to allow for streaming markdown content to the client. This is useful for showing Generative AI responses in real-time in a Shiny app, outside of a chat interface. (#23)Both
chat_ui()
andoutput_markdown_stream()
now support arbitrary Shiny UI elements inside of messages. This allows for gathering input from the user (e.g.,selectInput()
), displaying of rich output (e.g., htmlwidgets like plotly), and more. (#29)Added a new
chat_clear()
function to clear the chat of all messages. (#25)Added
chat_app()
,chat_mod_ui()
andchat_mod_server()
.chat_app()
takes anellmer::Chat
client and launches a simple Shiny app interface with the chat.chat_mod_ui()
andchat_mod_server()
replicate the interface as a Shiny module, for easily adding a simple chat interface connected to a specificellmer::Chat
client. (#36)The promise returned by
chat_append()
now resolves to the content streamed into the chat. (#49)
Bug fixes
chat_append()
,chat_append_message()
andchat_clear()
now all work in Shiny modules without needing to namespace theid
of the Chat component. (#37)chat_append()
now logs and throws a silent error if the stream errors for any reason. This prevents the app from crashing if the stream is interrupted. You can still usepromises::catch()
to handle the error in your app code if desired. (#46)