chat_app {shinychat} | R Documentation |
Open a live chat application in the browser
Description
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.
Usage
chat_app(client, ...)
chat_mod_ui(id, ..., client = NULL, messages = NULL)
chat_mod_server(id, client)
Arguments
client |
A chat object created by ellmer, e.g.
|
... |
In |
id |
The chat module ID. |
messages |
Initial messages shown in the chat, used when |
Value
-
chat_app()
returns ashiny::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.
Functions
-
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.
Examples
## 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)