R-Applikationen um LLM-Funktionen erweitern, ist mit diesen Tools kein Problem.

TippaPatt | shutterstock.com

Il mondo della Generative AI in R, sebbene non sia competitivo come Python, si è notevolmente evoluto negli ultimi mesi. Inizialmente gli strumenti a base ChatGPT avevano la priorità, ma adesso c’è un supporto diretto per i principali fornitori di modelli linguistici di grandi dimensioni (LLM). Anche la varietà delle attività di GenAI che gli sviluppatori possono svolgere con R si è allargata.

In questo articolo mostriamo cinque strumenti ideali per integrare modelli linguistici di grandi dimensioni nei progetti R, locali e tramite API.

Ellmer

Uno degli strumenti più importanti per integrare LLM nei flussi di lavoro R è ellmer. Questo progetto nasce dall’azienda Open Source Posit ed è gestito da sviluppatori che si sono distinti in altri popolari pacchetti R come ggplot2 e il framework Web Shiny R.

Per Kyle Walker, questo strumento ha un ottimo interfaccia per qualsiasi linguaggio, e ne sconsiglia l'uso per il trattamento PDF. Gli sviluppatori che lo usano lo adorano, e per saperne di più puoi visitare ellmer.tidyverse.org.

Kyle Walker: Ellmer Embed

Con ellmer, si crea oggetti chat con funzioni come chatopenai() o chatclaude(), permettendoti di interagire direttamente con LLM. Per conservare i propri API-Key, consulta la documentazione relativa alle funzionalità chat.

Ecco un esempio di oggetto chat OpenAI:

library(ellmer)

my_chat

Ancora, per un modello Claude, la sintassi diventa:

mychatclaude

I prompt di sistema non sono obbligatori, ma sono raccomandati per attività specifiche. Altrettanto non è necessario impostare uno specifico modello in ogni funzione chat. Tuttavia, è una buona idea per evitare modelli costosi o obsoleti.

Elenco dei LLM supportati

Ellmer supporta una moltitudine di modelli, tra cui:

    • OpenAI
    • Azure OpenAI
    • Anthropic
    • Google Gemini
    • AWS Bedrock
    • Snowflake Cortex
    • Perplexity AI
    • Ollama per modelli locali

Questo pacchetto può essere installato tramite CRAN, oppure puoi provare la versione in sviluppo con pak::pak("tidyverse/ellmer").

Parametri e configurazioni

Per modificare i parametri per il modello (inclusa la temperatura), usa api_arg. Ecco un esempio:

my_chat

Un'alta temperatura si accompagna spesso con output più creativo, mentre una bassa con una risposta più precisa. Tuttavia, la temperatura non è un argomento esplicito, e deve essere definito all’interno della lista api_arg. Per i parametri validi consulta la documentazione API del fornitore del modello.

Ellmer permette di gestire le chat in diversi modi:

    • fornisce un’interfaccia chatbot (R console o browser)
    • salva e restituisce i risultati in forma testuale
    • salva i risultati senza stream

Utilizzo in ambiente Shiny

Con liveconsole(mychat), puoi aprirci una finestra chiamata in R console. Per il browser, utilizza livebrowser(mychat).

Con il metodo di chiamata interattivo:

my_results

my_chat$chat()

Se si usa my_chat nuovamente per domande, il contesto precedente si mantiene:

my_results2 <-

my_chat$chat("Now color turquoise please")

Questo permette a future conversazioni di ricollegarsi al contesto storico:

Sharon Machlis

Se utilizzate Ellmer fuori da ambiente interactive, la documentazione consiglia di "incapsulare" il codice in una funzione in R:

my_function

Questa volta my_answer è solo una stringa testuale.

Vari funzionalità in ellmer

Ellmer offre, tra i tanti benefici:

    • chiamata di tool e funzioni
    • progettazione di prompty
    • estrazione dei dati

Siamo riusciti insieme a shinychat per aggiungere chatbot funzioni su un’app Shiny. Ecco un esempio in GitHub per costruire un’interfaccia chat Shiny semplice per modelli Ollama locali (include un menu a tendina per model selection e un bottone download).

Tidyllm

Questo strumento ha origini tedesche e fu sviluppato da Eduard Brüll, ricercatore presso il Leibniz-Zentrum für Europäische Wirtschaftsforschung. tidyllm e ellmer condividono molte funzionalità, ma differiscono per l'interfaccia utente e la filosofia del design.

Con tidyllm, i verbi, come chat() o send_batch(), vengono combinati con i fornitori per richieste come test embedding, chat ed elaborazione batch.

I modelli supportati includono:

    • Anthropic (Claude)
    • OpenAI
    • Google (Gemini)
    • Mistral
    • Groq (non Grok)
    • Perplexity
    • Azure OpenAI
    • Ollama per modelli locali

Se si utilizza un fornico cloud, devi specificare l’API Key usando sys.setenv(), o una file .Renviron.

Una semplice richiesta di chat comincia con llm_message() e un oggetto LLMMessage creato per passare alla funzione chat():

library(tidyllm)

my_conversation

chat(openai(.model = "gpt-4o-mini", .temperature = 0, .stream = FALSE))

La funzione llmmessage() può anche contenere messaggi .systemprompt.

Il risultato di my_conversation è solo un testo che puoi stampare. Per aggiungere nuovi messaggi:

my_conversation2

llm_message("Come posso ruotare le etichette sull’asse X a 90 gradi?") |>

chat(openai(.model = "gpt-4o-mini", .temperature = 0, .stream = FALSE))

print(my_conversation2)

Leer el artículo original →
← Volver a las noticias