Untitled
unknown
plain_text
a year ago
2.2 kB
35
Indexable
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)Editor is loading...
Leave a Comment