Mit Generative AI programmieren

8 ChatGPT-Tools für R

Sharon Machlis ist Director of Editorial Data & Analytics bei Foundry. Sie ist darüber hinaus Autorin von "Practical R for Mass Communication and Journalism".

gpttools

Das gpttools-Package will gptstudio für R-Paketentwickler erweitern, damit sie LLMs leichter in ihre Projektabläufe integrieren können", wie es auf der Webseite heißt. Sie können das Package über GitHub oder R Universe installieren:

# Enable repository from jameshwade

options(repos = c(

jameshwade = "https://jameshwade.r-universe.dev",

CRAN = "https://cloud.r-project.org"

))

# Download and install gpttools in R

install.packages("gpttools")

Die Add-Ins des Packages umfassen:

  • ChatGPT with Retrieval

  • Convert Script to Function

  • Add roxygen to Function (dokumentiert eine Funktion)

  • Suggest Unit Test

  • Document Data

  • Suggest Improvements

Um ein Add-In auszuführen, markieren Sie Ihren Code und wählen Sie das Add-In entweder aus dem Dropdown-Menü aus oder suchen Sie direkt danach. Als ich ein Add-In ausgeführt habe, wurde mir nicht immer eine Statusmeldung angezeigt - Sie sollten also Geduld mitbringen.

Das Add-In "Suggest Improvements" generierte unkommentierten Text unterhalb meiner Funktion in einer R-Datei, gefolgt von geändertem Code. Einige der Vorschläge waren dabei nicht sehr hilfreich. Zum Beispiel für diesen Code:

if (exportcsv) {

filename_root <- strsplit(filename, "\\.")[[1]][1]

filename_with_winner <- paste0(filename_root, "_winners.csv")

rio::export(data, filename_with_winner)

}

Das Add-in empfahl:

Use `paste()` instead of `paste0()` to ensure a space is included between the names of the winners.

Ich wollte aber kein Leerzeichen in meinem Dateinamen. Der folgende Vorschlag erschien mir vernünftig:

Use a switch statement instead of multiple if statements, to allow for additional functionality in the future

In diesem Fall würde ich wahrscheinlich eher dplyrs case_when() oder data.tables fcase() verwenden als switch() von base R.

Stellen Sie unbedingt sicher, eine Kopie Ihres Original-Codes zu sichern. Denn es besteht die Gefahr, dass Ihr Code in unbeabsichtigter Art und Weise überschrieben wird.

chatgpt

Das chatgpt R-Package bietet sowohl Funktionen als auch RStudio-Add-ins, um ChatGPT mit R zu nutzen. Zum Zeitpunkt meines Tests waren 10 Add-ins dokumentiert. Code-spezifische Funktionen sind:

  • comment_code(),

  • complete_code(),

  • create_unit_tests(),

  • document_code(),

  • find_issues_in_code() und

  • refactor_code().

Wenn Sie ChatGPT für andere Zwecke verwenden möchten, gibt es dazu auch eine generische ask_chatgpt()-Funktion und ein Add-In.

Ihren Key speichern Sie in Ihrer .Renviron-Datei mit:

OPENAI_API_KEY="your key"

Jetzt können Sie loslegen. Das Package ist auf CRAN verfügbar - alternativ können Sie die Development-Version wie folgt installieren:

remotes::install_github("jcrodriguez1989/chatgpt", build_vignettes = TRUE)

Als ich ein Add-In ausprobierte, ohne das Paket zuerst zu laden, passierte nichts. Dann lud ich das Paket mit library(chatgpt), was folgenden Meldung hervorrief:

Warning message:

In run_addin("document_code") :

Please set one of `OPENAI_ADDIN_REPLACE=TRUE` or `OPENAI_VERBOSE=TRUE`

Da ich nicht wollte, dass mein ursprünglicher Code ersetzt wird, haben ich die Anweisungen in meiner R-Umgebungsdatei befolgt und die Option verbose auf TRUE gesetzt. Das führte dazu, dass eine Abfrage an ChatGPT und eine Antwort in meiner Konsole angezeigt wurden.

Mit der Option OPENAI_ADDIN_REPLACE=TRUE in meiner R-Umgebungsdatei und meinem in RStudio ausgewählten Code verschwanden gelegentlich Teile meines ursprünglichen Codes, wenn Dokumentation hinzugefügt wurde. Am Ende blieb ich bei den Kommandozeilenfunktionen dieses Pakets und nicht bei den Add-Ins. Sie finden diese eventuell nützlich - denken Sie aber daran, eine Kopie Ihres Codes zu sichern, bevor Sie experimentieren.

Das chatgpt-Paket wurde von Juan Cruz Rodriguez entwickelt.

gptchatteR

Bei gptchatteR handelt es sich nach Aussage der Verantwortlichen um einen "experimentellen und inoffiziellen Wrapper für die Interaktion mit OpenAI-GPT-Modellen in R". Ein wesentlicher Vorteil des Packages ist seine chatter.plot()-Funktion.

Installieren Sie das Paket mit:

remotes::install_github("isinaltinkaya/gptchatteR", build_vignettes = TRUE, dependencies = TRUE)

So wird gewährleistet, dass auch das erforderliche openai-Package installiert wird. Anschließend laden Sie das Paket und authentifizieren sich:

library(gptchatteR)

chatter.auth("YOUR KEY")

Sobald das erledigt ist, starten Sie eine Chatsitzung mit chatter.create(). Dieses Argument umfasst das OpenAI-Modell (Standard text-davinci-003), max_tokens für die maximale Anzahl von Token, die verwendet werden sollen (Standard ist 100), und eine "Temperatur", die mit einem Argument wie diesem festgelegt wird:

chatter.create(temperature = 0)

Laut der OpenAI-Dokumentation kann dieser Temperaturwert zwischen 0 und 1 liegen und gibt Auskunft darüber, wie oft das Modell ein weniger wahrscheinliches Token ausgibt.

Der Standardwert des Pakets ist ein neutraler Wert von 0,5. Wenn Sie brauchbaren Code erzeugen wollen, lohnt es sich den Wert auf 0 zu setzen. Im Test funktionierte das Package, gab aber folgende Warnmeldung aus:

The `engine_id` argument of `create_completion()` is deprecated as of openai 0.3.0.

Please use the `model` argument instead.

The deprecated feature was likely used in the gptchatteR package.

Please report the issue to the authors.

Einen "casual" Chat erstellen Sie mit chatter.chat("Ihr Input"). Mit chatter.feed() wird Ihre erste Anfrage zur Verwendung in einer zweiten Frage gespeichert.

Nachfolgenden Code habe ich mit dem Package ausgeführt:

library(gptchatteR)

chatter.auth(Sys.getenv("OPENAI_API_KEY"))

chatter.create(temperature = 0)

chatter.feed('I have the following data in R mydf <- data.frame(State = c("CT", "NJ", "NY"), Pop = c(3605944, 9288994, 20201249))')

myplot <- chatter.plot("Make a graph with State on the x axis and Pop on the Y axis")

Das Ergebnis: Ein Diagramm in meinem RStudio-Ansichtsfenster. Der Code des Diagramms wurde in myplot$code gespeichert.

gptchatteR wurde von Isin Altinkaya, Doktorand an der Universität Kopenhagen, entwickelt.

chatgptimages

Dieses R-Paket wurde nicht entwickelt, um Ihnen beim Programmieren zu helfen. Stattdessen verwendet es die vertraute R- und Shiny-Schnittstelle, um auf eine weitere ChatGPT-Fähigkeit zuzugreifen: Bilder zu erzeugen. Wenn Sie dieses Package nicht nur zu Unterhaltungszwecken nutzen, sollten Sie die ethischen und rechtlichen Fragestellungen in diesem Bereich unbedingt im Hinterkopf haben.

Wenn Sie es ausprobieren möchten, sollten Sie beachten, dass es sich nicht wie ein gewöhnliches Package installieren lässt. Stellen Sie zunächst sicher, dass Sie

  • shiny,

  • golem,

  • shinydashboard,

  • openai,

  • config und

  • testthat auf Ihrem System installiert haben.

Forken und laden Sie dann das gesamte GitHub-Repository herunter oder laden Sie die entsprechende .zip-Datei herunter und entpacken Sie diese. Öffnen Sie nun die Datei chatgptimages.Rproj in RStudio, die Datei run_dev.R im Dev-Ordner des Projekts und führen Sie diese kurze Datei Zeile für Zeile aus. Folgende Anwendung sollte sich in Ihrem Standardbrowser öffnen:

Foto: Sharon Machlis / IDG

Folgen Sie den Anweisungen, um einen ChatGPT-API-Key abzulegen und Sie können damit starten, Bilder zu erstellen und zu speichern. Die Ergebnisse sehen (in etwa) folgendermaßen aus:

Foto: Sharon Machlis / IDG

(fm)

Dieser Beitrag basiert auf einem Artikel unserer US-Schwesterpublikation Infoworld.

Zur Startseite