chattr
es un paquete que permite la interacción con modelos de lenguajes grandes (LLM), como GitHub Copilot Chat y GPT 3.5 y 4 de OpenAI. El vehículo principal es una aplicación Shiny que se ejecuta dentro del IDE de RStudio. Aquí hay un ejemplo de cómo se ve ejecutándose dentro del panel Visor:

Figura 1: chattr
La aplicación Shiny de
Aunque este artículo destaca chattr
En cuanto a la integración con el IDE de RStudio, cabe mencionar que funciona fuera de RStudio, por ejemplo el terminal.
Empezando
Para comenzar, instale el paquete desde CRAN y luego llame a la aplicación Shiny usando el chattr_app()
función:
# Set up from CRAN
set up.packages("chattr")
# Run the app
::chattr_app()
chattr
#> ── chattr - Obtainable fashions
#> Choose the variety of the mannequin you wish to use:
#>
#> 1: GitHub - Copilot Chat - (copilot)
#>
#> 2: OpenAI - Chat Completions - gpt-3.5-turbo (gpt35)
#>
#> 3: OpenAI - Chat Completions - gpt-4 (gpt4)
#>
#> 4: LlamaGPT - ~/ggml-gpt4all-j-v1.3-groovy.bin (llamagpt)
#>
#>
#> Choice:
>
Después de seleccionar el modelo con el que desea interactuar, se abrirá la aplicación. La siguiente captura de pantalla proporciona una descripción basic de los diferentes botones y atajos de teclado que puede usar con la aplicación:

Figura 2: chattr
la interfaz de usuario
Puede comenzar a escribir sus solicitudes en el cuadro de texto principal en la parte superior izquierda de la aplicación. Luego envíe su pregunta haciendo clic en el botón ‘Enviar’ o presionando Shift+Enter.
chattr
analiza la salida del LLM y muestra el código dentro de fragmentos. También coloca tres botones en la parte superior de cada trozo. Uno para copiar el código al portapapeles, el otro para copiarlo directamente a su script activo en RStudio y otro para copiar el código a un nuevo script. Para cerrar la aplicación, presione la tecla ‘Escape’.
Al presionar el botón ‘Configuración’ se abrirán los valores predeterminados que utiliza la sesión de chat. Estos se pueden cambiar como mejor le parezca. El cuadro de texto ‘Preguntar’ es el texto adicional que se envía al LLM como parte de su pregunta.

Figura 3: chattr
UI de – Página de configuración
Configuración personalizada
chattr
Intentará identificar qué modelos ha configurado e incluirá solo aquellos en el menú de selección. Para Copilot y OpenAI,
chattr
confirma que hay un token de autenticación disponible para poder mostrarlos en el menú. Por ejemplo, si solo tiene configurada OpenAI, el mensaje se verá así:
::chattr_app()
chattr#> ── chattr - Obtainable fashions
#> Choose the variety of the mannequin you wish to use:
#>
#> 2: OpenAI - Chat Completions - gpt-3.5-turbo (gpt35)
#>
#> 3: OpenAI - Chat Completions - gpt-4 (gpt4)
#>
#> Choice:
>
Si desea evitar el menú, utilice el chattr_use()
función. A continuación se muestra un ejemplo de cómo configurar GPT 4 como predeterminado:
library(chattr)
chattr_use("gpt4")
chattr_app()
También puede seleccionar un modelo configurando el CHATTR_USE
variable de entorno.
Personalización avanzada
Es posible personalizar muchos aspectos de su interacción con el LLM. Para hacer esto, use el chattr_defaults()
función. Esta función muestra y configura el mensaje adicional enviado al LLM, el modelo que se utilizará, determina si el historial del chat se enviará al LLM y modela argumentos específicos.
Por ejemplo, es posible que desee cambiar la cantidad máxima de tokens utilizados por respuesta; para OpenAI puede usar esto:
# Default for max_tokens is 1,000
library(chattr)
chattr_use("gpt4")
chattr_defaults(model_arguments = checklist("max_tokens" = 100))
#>
#> ── chattr ──────────────────────────────────────────────────────────────────────
#>
#> ── Defaults for: Default ──
#>
#> ── Immediate:
#> • {{readLines(system.file('immediate/base.txt', package deal = 'chattr'))}}
#>
#> ── Mannequin
#> • Supplier: OpenAI - Chat Completions
#> • Path/URL: https://api.openai.com/v1/chat/completions
#> • Mannequin: gpt-4
#> • Label: GPT 4 (OpenAI)
#>
#> ── Mannequin Arguments:
#> • max_tokens: 100
#> • temperature: 0.01
#> • stream: TRUE
#>
#> ── Context:
#> Max Knowledge Recordsdata: 0
#> Max Knowledge Frames: 0
#> ✔ Chat Historical past
#> ✖ Doc contents
Si desea conservar los cambios en los valores predeterminados, utilice el chattr_defaults_save()
función. Esto creará un archivo yaml, llamado ‘chattr.yml’ de forma predeterminada. Si lo encuentra,
chattr
utilizará este archivo para cargar todos los valores predeterminados, incluido el modelo seleccionado.
Una descripción más extensa de esta característica está disponible en el chattr
sitio net bajo
Modificar mejoras de mensajes
Más allá de la aplicación
Además de la aplicación Shiny, chattr
ofrece un par de otras formas de interactuar con el LLM:
- Utilice el
chattr()
función - Resalte una pregunta en su guión y úsela como mensaje.
> chattr("how do I take away the legend from a ggplot?")
#> You possibly can take away the legend from a ggplot by including
#> `theme(legend.place = "none")` to your ggplot code.
Un artículo más detallado está disponible en chattr
sitio net
aquí.
Complementos de RStudio
chattr
viene con dos complementos de RStudio:

Figura 4: chattr
complementos
Puede vincular estas llamadas de complementos a atajos de teclado, lo que facilita la apertura de la aplicación sin tener que escribir el comando cada vez. Para saber cómo hacerlo, consulte el Atajo de teclado sección en el
chattr
sitio net oficial.
Trabaja con LLM locales
Hoy en día, se encuentran ampliamente disponibles modelos capacitados de código abierto que pueden ejecutarse en su computadora portátil. En lugar de integrarse con cada modelo individualmente, chattr
trabaja con LlamaGPTJ-chat. Esta es una aplicación liviana que se comunica con una variedad de modelos locales. En este momento LlamaGPTJ-chat se integra con las siguientes familias de modelos:
- GPT-J (modelos ggml y gpt4all)
- Llama (ggml modelos Vicuña de Meta)
- Transformadores preentrenados en mosaico (MPT)
LlamaGPTJ-chat funciona directamente desde la terminal. chattr
se integra con la aplicación iniciando una sesión de terminal “oculta”. Allí inicializa el modelo seleccionado y lo deja disponible para comenzar a chatear con él.
Para comenzar, necesitas instalar LlamaGPTJ-chat y descargar un modelo suitable. Se encuentran instrucciones más detalladas.
aquí.
chattr
busca la ubicación del chat LlamaGPTJ y el modelo instalado en una ubicación de carpeta específica en su máquina. Si las rutas de instalación no coinciden con las ubicaciones esperadas por chattr
entonces el LlamaGPT no aparecerá en el menú. Pero está bien, aún puedes acceder a él con chattr_use()
:
library(chattr)
chattr_use(
"llamagpt",
path = "[path to compiled program]",
mannequin = "[path to model]"
)#>
#> ── chattr
#> • Supplier: LlamaGPT
#> • Path/URL: [path to compiled program]
#> • Mannequin: [path to model]
#> • Label: GPT4ALL 1.3 (LlamaGPT)
Extensión chattr
chattr
tiene como objetivo facilitar la adición de nuevas API de LLM. chattr
tiene dos componentes, la interfaz de usuario (aplicación Shiny y
chattr()
función), y los back-ends incluidos (GPT, Copilot, LLamaGPT). No es necesario agregar nuevos backends directamente en chattr
. Si es desarrollador de paquetes y le gustaría aprovechar las ventajas chattr
UI, todo lo que necesitas hacer es definir ch_submit()
método en su paquete.
Los dos requisitos de salida para ch_submit()
son:
-
Como valor de retorno last, envíe la respuesta completa del modelo en el que está integrando
chattr
. -
Si se transmite (
stream
esTRUE
), genera la salida precise a medida que ocurre. Generalmente a través de uncat()
llamada a función.
Aquí hay un ejemplo de juguete easy que muestra cómo crear un método personalizado para
chattr
:
library(chattr)
<- operate(defaults,
ch_submit.ch_my_llm immediate = NULL,
stream = NULL,
prompt_build = TRUE,
preview = FALSE,
...) {# Use `prompt_build` to prepend the immediate
if(prompt_build) immediate <- paste0("Use the tidyversen", immediate)
# If `preview` is true, return the ensuing immediate again
if(preview) return(immediate)
<- paste0("You mentioned this: n", immediate)
llm_response if(stream) {
cat(">> Streaming:n")
for(i in seq_len(nchar(llm_response))) {
# If `stream` is true, make certain to `cat()` the present output
cat(substr(llm_response, i, i))
Sys.sleep(0.1)
}
}# Be sure to return your entire output from the LLM on the finish
llm_response
}
chattr_defaults("console", supplier = "my llm")
#>
chattr("hey")
#> >> Streaming:
#> You mentioned this:
#> Use the tidyverse
#> hey
chattr("I can use it proper from RStudio", prompt_build = FALSE)
#> >> Streaming:
#> You mentioned this:
#> I can use it proper from RStudio
Para obtener más detalles, visite la página de referencia de la función, enlace
aquí.
Bienvenidos comentarios
Después de probarlo, siéntete libre de enviar tus pensamientos o problemas en el
chattr
‘s repositorio de GitHub.