Added new output_markdown_stream()
and
markdown_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()
and
output_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()
and
chat_mod_server()
. chat_app()
takes an
ellmer::Chat
client and launches a simple Shiny app
interface with the chat. chat_mod_ui()
and
chat_mod_server()
replicate the interface as a Shiny
module, for easily adding a simple chat interface connected to a
specific ellmer::Chat
client. (#36)
The promise returned by chat_append()
now resolves
to the content streamed into the chat. (#49)
chat_append()
, chat_append_message()
and chat_clear()
now all work in Shiny modules without
needing to namespace the id
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 use
promises::catch()
to handle the error in your app code if
desired. (#46)