chat_app | R Documentation |
Create a simple Shiny app for live chatting using an ellmer::Chat object.
Note that these functions will mutate the input client
object as
you chat because your turns will be appended to the history.
chat_app(client, ...)
chat_mod_ui(id, ..., client = NULL, messages = NULL)
chat_mod_server(id, client)
client |
A chat object created by ellmer, e.g.
|
... |
In |
id |
The chat module ID. |
messages |
Initial messages shown in the chat, used when |
chat_app()
returns a shiny::shinyApp()
object.
chat_mod_ui()
returns the UI for a shinychat module.
chat_mod_server()
includes the shinychat module server logic, and
and returns the last turn upon successful chat completion.
chat_app()
: A simple Shiny app for live chatting.
chat_mod_ui()
: A simple chat app module UI.
chat_mod_server()
: A simple chat app module server.
## Not run:
# Interactive in the console ----
client <- ellmer::chat_claude()
chat_app(client)
# Inside a Shiny app ----
library(shiny)
library(bslib)
library(shinychat)
ui <- page_fillable(
titlePanel("shinychat example"),
layout_columns(
card(
card_header("Chat with Claude"),
chat_mod_ui(
"claude",
messages = list(
"Hi! Use this chat interface to chat with Anthropic's `claude-3-5-sonnet`."
)
)
),
card(
card_header("Chat with ChatGPT"),
chat_mod_ui(
"openai",
messages = list(
"Hi! Use this chat interface to chat with OpenAI's `gpt-4o`."
)
)
)
)
)
server <- function(input, output, session) {
claude <- ellmer::chat_claude(model = "claude-3-5-sonnet-latest") # Requires ANTHROPIC_API_KEY
openai <- ellmer::chat_openai(model = "gpt-4o") # Requires OPENAI_API_KEY
chat_mod_server("claude", claude)
chat_mod_server("openai", openai)
}
shinyApp(ui, server)
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.