chattr
é um pacote que permite a interação com Massive Language Fashions (LLMs), como GitHub Copilot Chat e OpenAI’s GPT 3.5 e 4. O veículo principal é um aplicativo Shiny que roda dentro do RStudio IDE. Aqui está um exemplo de como ele se parece rodando dentro do painel Viewer:

Figura 1: chattr
Aplicativo Shiny do
Embora este artigo destaque chattr
integração do com o RStudio IDE, vale ressaltar que ele funciona fora do RStudio, por exemplo, no terminal.
Começando
Para começar, instale o pacote do CRAN e, em seguida, chame o aplicativo Shiny usando o chattr_app()
função:
# 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:
>
Após selecionar o modelo com o qual deseja interagir, o aplicativo será aberto. A captura de tela a seguir fornece uma visão geral dos diferentes botões e atalhos de teclado que você pode usar com o aplicativo:

Figura 2: chattr
IU do ‘s
Você pode começar a escrever suas solicitações na caixa de texto principal no canto superior esquerdo do aplicativo. Então envie sua pergunta clicando no botão ‘Enviar’ ou pressionando Shift+Enter.
chattr
analisa a saída do LLM e exibe o código dentro dos chunks. Ele também coloca três botões no topo de cada chunk. Um para copiar o código para a área de transferência, o outro para copiá-lo diretamente para seu script ativo no RStudio e um para copiar o código para um novo script. Para fechar o aplicativo, pressione a tecla ‘Escape’.
Pressionar o botão ‘Configurações’ abrirá os padrões que a sessão de bate-papo está usando. Eles podem ser alterados conforme você achar necessário. A caixa de texto ‘Immediate’ é o texto adicional que está sendo enviado ao LLM como parte da sua pergunta.

Figura 3: chattr
Página de configurações da IU do ‘s
Configuração personalizada
chattr
tentará identificar quais modelos você configurou e incluirá apenas aqueles no menu de seleção. Para Copilot e OpenAI,
chattr
confirma que há um token de autenticação disponível para exibi-los no menu. Por exemplo, se você tiver apenas a configuração OpenAI, o immediate será parecido com este:
::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:
>
Se você deseja evitar o menu, use o chattr_use()
função. Aqui está um exemplo de configuração do GPT 4 como padrão:
library(chattr)
chattr_use("gpt4")
chattr_app()
Você também pode selecionar um modelo definindo o CHATTR_USE
variável de ambiente.
Personalização avançada
É possível personalizar muitos aspectos da sua interação com o LLM. Para fazer isso, use o chattr_defaults()
função. Esta função exibe e outline o immediate adicional enviado ao LLM, o modelo a ser usado, determina se o histórico do chat deve ser enviado ao LLM e argumentos específicos do modelo.
Por exemplo, você pode desejar alterar o número máximo de tokens usados por resposta. Para o OpenAI, você pode usar isto:
# 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', bundle = '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 Information Recordsdata: 0
#> Max Information Frames: 0
#> ✔ Chat Historical past
#> ✖ Doc contents
Se você deseja manter suas alterações nos padrões, use o chattr_defaults_save()
função. Isso criará um arquivo yaml, chamado ‘chattr.yml’ por padrão. Se encontrado,
chattr
usará este arquivo para carregar todos os padrões, incluindo o modelo selecionado.
Uma descrição mais extensa deste recurso está disponível em chattr
website em
Modificar melhorias de immediate
Além do aplicativo
Além do aplicativo Shiny, chattr
oferece algumas outras maneiras de interagir com o LLM:
- Use o
chattr()
função - Destaque uma pergunta em seu script e use-a como seu immediate
> chattr("how do I take away the legend from a ggplot?")
#> You'll be able to take away the legend from a ggplot by including
#> `theme(legend.place = "none")` to your ggplot code.
Um artigo mais detalhado está disponível em chattr
native na rede Web
aqui.
Complementos do RStudio
chattr
vem com dois complementos do RStudio:

Figura 4: chattr
suplementos
Você pode vincular essas chamadas de add-in a atalhos de teclado, facilitando a abertura do aplicativo sem precisar escrever o comando toda vez. Para saber como fazer isso, veja o Atalho de teclado seção no
chattr
web site oficial.
Trabalha com LLMs locais
Modelos treinados de código aberto, que podem ser executados em seu laptop computer, estão amplamente disponíveis hoje. Em vez de integrar com cada modelo individualmente, chattr
funciona com Bate-papo LlamaGPTJ. Este é um aplicativo leve que se comunica com uma variedade de modelos locais. No momento, o LlamaGPTJ-chat integra-se com as seguintes famílias de modelos:
- GPT-J (modelos ggml e gpt4all)
- LLAMA (modelos ggml Vicuna de Meta)
- Transformadores pré-treinados em mosaico (MPT)
O LlamaGPTJ-chat funciona diretamente no terminal. chattr
integra-se com o aplicativo iniciando uma sessão de terminal ‘oculta’. Lá, ele inicializa o modelo selecionado e o torna disponível para começar a conversar com ele.
Para começar, você precisa instalar o LlamaGPTJ-chat e baixar um modelo compatível. Instruções mais detalhadas podem ser encontradas
aqui.
chattr
procura a localização do LlamaGPTJ-chat e o modelo instalado em um native de pasta específico em sua máquina. Se seus caminhos de instalação não corresponderem aos locais esperados por chattr
então o LhamaGPT não aparecerá no menu. Mas tudo bem, você ainda pode acessá-lo com chattr_use()
:
library(chattr)
chattr_use(
"llamagpt",
path = "(path to compiled program)",
mannequin = "(path to mannequin)"
)#>
#> ── chattr
#> • Supplier: LlamaGPT
#> • Path/URL: (path to compiled program)
#> • Mannequin: (path to mannequin)
#> • Label: GPT4ALL 1.3 (LlamaGPT)
Estendendo chattr
chattr
tem como objetivo facilitar a adição de novas APIs LLM. chattr
tem dois componentes, a interface do usuário (aplicativo Shiny e
chattr()
função) e os back-ends incluídos (GPT, Copilot, LLamaGPT). Não é necessário adicionar novos back-ends diretamente em chattr
. Se você é um desenvolvedor de pacotes e gostaria de aproveitar as vantagens do chattr
UI, tudo o que você precisa fazer é definir ch_submit()
método no seu pacote.
Os dois requisitos de saída para ch_submit()
são:
Como valor de retorno ultimate, envie a resposta completa do modelo que você está integrando
chattr
.Se estiver transmitindo (
stream
éTRUE
), emita a saída atual conforme ela está ocorrendo. Geralmente por meio de umcat()
chamada de função.
Aqui está um exemplo de brinquedo simples que mostra como criar um 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 sure that to `cat()` the present output
cat(substr(llm_response, i, i))
Sys.sleep(0.1)
}
}# Ensure to return your complete output from the LLM on the finish
llm_response
}
chattr_defaults("console", supplier = "my llm")
#>
chattr("good day")
#> >> Streaming:
#> You mentioned this:
#> Use the tidyverse
#> good day
chattr("I can use it proper from RStudio", prompt_build = FALSE)
#> >> Streaming:
#> You mentioned this:
#> I can use it proper from RStudio
Para mais detalhes, visite a página de referência da função, hyperlink
aqui.
Comentários bem-vindos
Depois de experimentar, sinta-se à vontade para enviar suas ideias ou problemas no
chattr
‘s Repositório GitHub.