Untitled
unknown
plain_text
a month ago
2.2 kB
10
Indexable
Never
library(shiny) library(tidychatmodels) # Define la interfaz de usuario ui <- fluidPage( titlePanel("Aplicación Shiny - Traductor"), # Usa un diseño de ubicación simple de elementos fluidRow( column(width = 12, # Area de texto para ingresar el prompt textAreaInput("prompt", "Escribe el texto a traducir:", value = "", rows = 3, placeholder = "Escribe el texto a traducir..."), # Botón para procesar el prompt actionButton("process", "Traducir"), # Área de texto para mostrar la respuesta, ubicada debajo textAreaInput("response", "Traducción:", value = "", rows = 10, placeholder = "Aquí se mostrará la traducción") ) ) ) # Define el comportamiento del servidor server <- function(input, output, session) { # Creamos el chat usando la API Key (permiso para conectarnos a Open AI) chat <- create_chat("openai", "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") # Le indicamos al sistema qué función realizará chat <- chat %>% add_model("gpt-3.5-turbo") %>% add_params("temperature" = 0, "max_tokens" = 250) %>% add_message( role = "system", message = "Eres un sistema traductor. Todo lo que escriba el usuario deberá ser traducido del español al inglés y viceversa. Tú eres responsable de identificar el idioma original y el idioma destino. No tienes permitido hacer nada más que traducir." ) # Observar el clic en el botón y actualizar la respuesta observeEvent(input$process, { # Le hacemos una solicitud al sistema chat <- chat %>% add_message( role = "user", message = input$prompt ) # Nos conectamos a la API de Open AI (tener cuidado, cada llamada genera costo) chat <- chat %>% perform_chat() # Extraemos los mensajes desde la API de Open AI messages <- chat %>% extract_chat(silent = TRUE) # Actualiza el área de texto updateTextAreaInput(session, "response", value = as.character(messages[nrow(messages), "message"])) }) } # Ejecuta la aplicación Shiny shinyApp(ui = ui, server = server)
Leave a Comment