chatgpt kann Fragen zu einer breiten Palette von Technologiethemen beantworten - einschließlich die, wie man (R-)Code schreibt. Das bedeutet auch, dass OpenAIs Large Language Model (LLM) jedem Developer zur Seite steht, der oder die mit R arbeitet - auch ohne Vorkenntnisse im Bereich der KI-Modelle.
Inzwischen hat sich rund um ChatGPT und die Programmiersprache R ein Ökosystem gebildet. Das erleichtert es Ihnen maßgeblich, die KI-Technologie in Ihren R-Workflow zu integrieren. Bevor wir auf die einzelnen Tools im Detail eingehen - hier noch einige wichtige Aspekte, die Sie beachten sollten:
Jede Ihrer Eingaben in die Tools von OpenAI wird an die Server des Unternehmens gesendet. Sie sollten Tools auf ChatGPT-Basis nicht verwenden, um sensible Informationen zu verarbeiten.
ChatGPT gibt möglicherweise falsche Informationen zurück. Das Tool kann auch verschiedene Antworten auf dieselbe Frage generieren. Alles andere als ideal, wenn man einen reproduzierbaren Workflow braucht. Es empfiehlt sich daher, die Outputs stets zu überprüfen.
Falls eines Ihrer Packages kürzlich aktualisiert wurde, weiß ChatGPT nichts davon, da seine Trainingsdaten nur bis zum Jahr 2021 reichen.
Für fast alle der in diesem Artikel vorgestellten Tools benötigen Sie Ihren eigenen, kostenpflichtigen OpenAI-API-Key.
Wenn Sie sich ChatGPT für Programmierarbeiten zu Hilfe holen, ist es eher unwahrscheinlich, dass Sie in KI-Ethik- beziehungsweise Bias-Diskussionen geraten. Es tobt jedoch innerhalb der Community eine hitzige Debatte. Unter anderem darüber, wie klug es ist, OpenAI mit Daten zu versorgen, ob die Trainingsdaten in ethisch vertretbarer Weise aggregiert wurden und ob Open-Source-LLMs nicht die bessere Alternative wären.
Im Folgenden werfen wir einen Blick auf acht beeindruckende, R-spezifische ChatGPT-Ressourcen.
RTutor
Diese App bietet eine elegante und einfache Möglichkeit, die Kombination von ChatGPT und R auszutesten. Laden Sie dazu einen Datensatz hoch, stellen Sie eine Frage - und beobachten Sie anschließend, wie R-Code und Ihre Ergebnisse, einschließlich Grafiken, generiert werden. Übrigens kann diese App trotz ihres Namens auch Python-Code erzeugen.
RTutor ist derzeit das einzige hier gelistete Tool, das keinen ChatGPT-API-Key erfordert. Sie sind allerdings aufgefordert, bei intensiver Nutzung Ihren eigenen Account anzugeben, um das Konto der Entwickler nicht über Gebühr zu belasten. Wie die Macher der App auf ihrer Webseite erklären, besteht das wesentliche Ziel von RTutor darin, Menschen mit bislang überschaubarer Erfahrung in R dabei zu unterstützen, die Sprache zu lernen oder produktiver damit zu arbeiten.
RTutor ist Open Source und auf GitHub verfügbar, so dass Sie auch Ihre eigene lokale Version installieren können. Die Lizenzierung erlaubt jedoch nur eine Verwendung für nicht-kommerzielle Zwecke oder für kommerzielle Tests. Bei RTutor handelt es sich um ein persönliches Projekt von Dr. Steven Ge, Professor für Bioinformatik an der South Dakota State University.
CodeLingo
Diese mehrsprachige Anwendung "übersetzt" Code von einer Programmiersprache in eine andere. Zu den kompatiblen Sprachen gehören unter anderem:
Java,
Python,
JavaScript,
C,
C++,
PHP und
R.
CodeLingo ist eine reine Webanwendung und erfordert einen OpenAI-API-Key (den Sie möglicherweise nach dem Testen neu generieren wollen).
In unserem Versuch, das Tool Code für ein ggplot2-R-Diagramm in JavaScript übersetzen zu lassen, folgte ein Output, der die schwer zu erlernende D3-Javascript-Bibliothek verwendete - statt die für einen JS-Einsteiger besser verträglichen Observable Plot oder Vega-Lite.
Der Python-Request im obenstehenden Screenshot war hingegen zielführender und unkomplizierter - und verwendete erwartbare Bibliotheken. Allerdings "verstand" ChatGPT dabei nicht, dass es sich bei "Set1" um eine ColorBrewer-Farbpalette handelt, die nicht direkt in Python verwendet werden kann. Das verdeutlicht (wie bei vielen anderen Anwendungen von ChatGPT): Die Arbeit mit dem Tool kann eine gute Basis liefern, aber man sollte dabei in der Lage sein, Fehler zu erkennen und zu korrigieren.
CodeLingo wurde von Analytica Data Science Studios entwickelt.
askgpt
Auch dieses Package, das auf GitHub zum Download zur Verfügung steht, ist ein möglicher guter Startpunkt für Nutzer, die sich mit ChatGPT vertraut machen wollen. Das liegt auch daran, dass askgpt beim ersten Startvorgang einige nützliche Anweisungen mitliefert. Sobald Sie das Package mit library(askgpt)
geladen haben, antwortet es mit:
Hi, this is askgpt :).
• To start error logging, run `log_init()` now.
• To see what you can do use `?askgpt()`.
• Or just run `askgpt()` with any question you want!
Wenn Sie die login()
-Funktion verwenden, ohne vorher einen Key zu speichern, erhalten Sie eine Statusmeldung, die Sie darüber aufklärt, wie Sie diesen erhalten:
? It looks like you have not provided an API key yet.
1. Go to <https://platform.openai.com/account/api-keys>
2. (Log into your account if you haven't done so yet)
3. On the site, click the button + Create new secret key to create an API key
4. Copy this key into R/RStudio
askgpt speichert die Ergebnisse Ihrer Abfrage standardmäßig als Objekt, damit Sie sie in einer Variablen wie dieser speichern können:
barchart_instructions <- askgpt("How do I make a bar chart with custom colors with ggplot2?")
Sobald Sie einen Request einreichen, sehen Sie die Statusmeldung:
GPT is thinking .:
Sie können sich also sicher sein, dass Ihre Anfrage abgeschickt wurde und eine Antwort in Arbeit ist.
Neben der allgemeinen askgpt()
-Funktion des Pakets gibt es ein paar codierungsspezifische Funktionen wie annotate_code()
, explain_code()
und test_function()
. Diese Funktionen erfordern in der Folge, dass Sie Outputs im Copy-Paste-Verfahren in Ihren Quellcode integrieren müssen.
Für diejenigen, die mit der OpenAI-API vertraut sind, ermöglicht es die chat_api()
-Funktion des Pakets, API-Parameter festzulegen, etwa das zu verwendende Modell, die maximale Anzahl an Token, die Sie pro Anfrage ausgeben möchten oder die gewünschte "Response Temperature" (dazu später mehr). chat_api()
gibt eine Liste zurück, mit dem Textteil der Antwort in YourVariableName$choices[[1]]$message$content
. Auch andere nützliche Informationen werden in dieser Liste gespeichert, wie beispielsweise die Anzahl der verwendeten Token.
Für askgpt
zeichnet Johannes Gruber verantwortlich, Post-Doc-Forscher an der Vrije Universiteit Amsterdam.
gptstudio
Dieses Package enthält RStudio-Add-Ins für die Arbeit mit ChatGPT (es gibt jedoch auch einige Kommandozeilen-Funktionen gibt, die in jeder IDE, beziehungsweise jedem Terminal funktionieren). Auf die Add-Ins in RStudio können Sie entweder über das Drop-Down-Menü zugreifen - oder Sie suchen direkt danach (Strg + Shift + P).
Laut der Webseite soll gptstudio
ein allgemeines Hilfsmittel für R-Programmierer darstellen, um Large Language Models (LLMs) einfach in ihre Projektabläufe zu integrieren. Das ChatGPT-Add-in startet eine browserbasierte App, die Fragen zum Programmieren mit R beantwortet und Optionen für Programmierstil (Tidyverse, Base) und -niveau bietet.
Ein anderes Add-In des gptstudio-Packages ist ChatGPT in Source. Sie schreiben den Code wie gewohnt in Ihrem Quelltextfenster, fügen einen Kommentar hinzu, in dem Sie um Änderungen bitten, wählen den Codeblock mit Ihrem Kommentar aus und wenden das Add-In an. Und voilà: Die von Ihnen gewünschten Änderungen werden vorgenommen.
Ich habe das Add-In auf folgenden Code angewendet:
# Sort bars by descending Y value, rotate x-axis text 90 degrees, color bars steel blue
ggplot(states, aes(x = State, y = Pop_2020)) +
geom_col()
Das führte dazu, dass mein Code wie im nachfolgenden Screenshot zu sehen verändert wurde:
Folgenden Code an das Add-in zu senden, generierte vollständige Anweisungen und Code für eine Shiny-App:
# Create an R Shiny app with this data
states <- readr::read_csv("https://raw.githubusercontent.com/smach/SampleData/main/states.csv")
Entwickelt wurde gptstudio von Michel Nivard und James Wade.
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()
undrefactor_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
undtestthat
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:
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:
(fm)
Dieser Beitrag basiert auf einem Artikel unserer US-Schwesterpublikation Infoworld.