Mit Generative AI programmieren

8 ChatGPT-Tools für R

05.09.2023
Von 
Sharon Machlis ist Director of Editorial Data & Analytics bei Foundry. Sie ist darüber hinaus Autorin von "Practical R for Mass Communication and Journalism".
Auch Developer, die mit R arbeiten, können auf Unterstützung durch ChatGPT zählen.
ChatGPT und R gehen inzwischen ganz gut zusammen, wie unser Blick auf acht Generative-AI-Tools in diesem Bereich zeigt.
ChatGPT und R gehen inzwischen ganz gut zusammen, wie unser Blick auf acht Generative-AI-Tools in diesem Bereich zeigt.
Foto: arip teguh santoso - shutterstock.com

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.

Der Screenshot zeigt das Ergebnis für die Frage nach einem Balkendiagramm, wobei dessen Elemente blau (für Werte größer 0) oder rot (für Werte kleiner 0) ausgegeben werden.
Der Screenshot zeigt das Ergebnis für die Frage nach einem Balkendiagramm, wobei dessen Elemente blau (für Werte größer 0) oder rot (für Werte kleiner 0) ausgegeben werden.
Foto: Sharon Machlis / IDG

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).

ggplot2-Code wird mit Pandas und matplotlib-Bibliotheken in Python "übersetzt"
ggplot2-Code wird mit Pandas und matplotlib-Bibliotheken in Python "übersetzt"
Foto: Sharon Machlis / IDG

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.

Dieser Screenshot zeigt den Output auf die Frage, wie ich als fortgeschrittener Programmierer ein R-Streudiagramm im Tidyverse-Stil erstellen kann.
Dieser Screenshot zeigt den Output auf die Frage, wie ich als fortgeschrittener Programmierer ein R-Streudiagramm im Tidyverse-Stil erstellen kann.
Foto: Sharon Machlis / IDG

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:

Das ChatGPT in Source Add-in zu beobachten, ist ein bisschen magisch.
Das ChatGPT in Source Add-in zu beobachten, ist ein bisschen magisch.
Foto: Sharon Machlis / IDG

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.