Spaces:
Runtime error
Runtime error
library(shiny) | |
library(bslib) | |
library(httr2) | |
library(purrr) | |
library(glue) | |
source("helper.R") | |
ui <- page_sidebar( | |
title = "Chatbot with R & OpenAI", | |
theme = bs_theme(bootswatch = "vapor"), | |
sidebar = sidebar( | |
open = "closed", | |
selectInput("model", "Model", | |
choices = c("gpt-3.5-turbo", "gpt-4")), | |
selectInput("task", "Task", | |
choices = c("general", "code")) | |
), | |
textAreaInput("prompt", NULL, width = "400px"), | |
actionButton("chat", NULL, icon = icon("paper-plane"), | |
width = "75px", | |
class = "m-2 btn-secondary"), | |
uiOutput("chat_history") | |
) | |
server <- function(input, output, session) { | |
rv <- reactiveValues() | |
rv$chat_history <- NULL | |
observe({ | |
req(input$prompt != "") | |
response <- chat(input$prompt, | |
history = rv$chat_history, | |
system_prompt = input$task) | |
rv$chat_history <- update_history(rv$chat_history, input$prompt, response) | |
output$chat_history <- renderUI( | |
map(rv$chat_history, \(x) markdown(glue("{x$role}: {x$content}"))) | |
) | |
}) |> bindEvent(input$chat) | |
} | |
shinyApp(ui, server) | |