Coding mit KI (eBook)
412 Seiten
Rheinwerk Computing (Verlag)
978-3-367-10346-1 (ISBN)
KI verändert, wie wir Software entwickeln. Wer die neuen KI-Helfer nicht nutzt, macht sich das Leben unnötig schwer und läuft Gefahr, den Anschluss zu verlieren. In diesem Buch erfahren Sie, was Tools wie ChatGPT oder GitHub Copilot bereits leisten können und wo ihre Grenzen liegen. Praxisnahe Beispiele zeigen Ihnen, wie Sie heute schon mit KI-Unterstützung schneller, effizienter und fehlerfreier programmieren können. Ein pragmatischer Leitfaden für alle, die wissen wollen, wie künstliche Intelligenz die Softwareentwicklung verändert.
Aus dem Inhalt:
- Wie funktioniert Künstliche Intelligenz
- Strukturiert programmieren mit KI
- Debugging, Refactoring und Unit-Tests
- Dokumentation automatisiert erstellen
- Datenbankentwicklung und -design
- Scripting und Administration
- Lokale LLMs ausführen
- Projekt-Bootstrapping mit OpenDevin
- Mit der OpenAI-API arbeiten
- KI-Apps und RAGs
- Risiken, Grenzen und Ausblick
Michael Kofler hat Telematik an der TU Graz studiert und ist einer der erfolgreichsten deutschsprachigen IT-Fachbuchautoren. Zu seinen Themengebieten zählen neben Linux auch IT-Sicherheit, Python, Swift, Java und der Raspberry Pi. Er ist Entwickler, berät Firmen und arbeitet als Lehrbeauftragter.
1 Einführung
Dieses »Hello, World!«-Kapitel gibt eine erste Einführung in den Umgang mit KI-Tools bei der Programmentwicklung. Anhand von Beispielen zeigt das Kapitel die Verwendung von Chat-basierten Werkzeugen wie ChatGPT sowie von Coding-Assistenten wie GitHub Copilot.
Höchstwahrscheinlich haben Sie schon KI-Coding-Tools ausprobiert. Überfliegen Sie dennoch die folgenden Seiten – vielleicht können wir Sie schon im Einführungskapitel auf neue Ideen bringen, bevor wir in den weiteren Kapiteln mehr in die Tiefe gehen.
Jedenfalls lesenswert ist Abschnitt 1.5, »Grundlagen von Large Language Models (LLMs)«: Er enthält eine knappe Zusammenfassung, wie Sprachmodelle hinter den Kulissen funktionieren. Dieses Wissen ist nicht zuletzt deswegen hilfreich, um die Grenzen der aktuellen Technik besser zu verstehen.
1.1 Coding per Chat
Den intuitivsten Einstieg in das KI-unterstütze Coding bieten Chat-Systeme wie ChatGPT. Als wir dieses Buch im Sommer 2024 verfassten, standen diverse kostenlose Systeme zur Auswahl:
-
https://chatgpt.com (das Original von OpenAI)
-
https://www.bing.com/chat (Microsoft, greift auf ChatGPT/OpenAI zurück)
-
https://gemini.google.com (Google)
-
https://claude.ai (Anthropic)
Auf den meisten Webseiten haben Sie die Option, mit dem Abschluss eines kostenpflichtigen Abos Zusatzfunktionen freizuschalten. Soweit wir bei der Arbeit für dieses Buch mit öffentlich verfügbaren Chat-Systemen experimentiert haben, war ChatGPT unser bevorzugtes System. Bei dieser Website müssen Sie sich einmalig registrieren. Das geht schnell und kostet nichts. Anschließend ist die Anwendung denkbar einfach: Sie formulieren Ihre Frage und erhalten eine Antwort.
Passwortgenerator
Sie brauchen in einem Python-Script eine Funktion, die ein zufälliges Passwort in einer vorgegebenen Länge liefert. Natürlich können Sie den Code selbst schreiben – aber Sie sparen sich vermutlich ein, zwei Minuten Zeit, wenn Sie diese triviale Aufgabe an ChatGPT abgeben.
Abbildung 1.1 ChatGPT hat einen Passwortgenerator in eine Funktion verpackt.
Den Code können Sie nun unkompliziert kopieren und in Ihr Script einbauen. Vergessen Sie die erforderlichen Importe nicht! Diese werden immer am Beginn des Scripts angegeben.
Deutsch oder Englisch?
Wie das einleitende Beispiel gezeigt hat, versteht ChatGPT Prompts in deutscher Sprache. Dennoch empfehlen wir Ihnen, Prompts in englischer Sprache zu formulieren. Dafür gibt es mehrere Gründe:
-
Sprachmodelle sind nur so gut wie das zugrunde liegende Trainingsmaterial. Naturgemäß gibt es viel mehr englischsprachige Websites, Bücher und Repositorys, die zum Training verwendet wurden. Je spezifischer Ihre Fragestellung, je diffiziler das Problem, desto eher werden Sie korrekte Antworten erhalten, wenn Sie Ihren Prompt englisch formulieren. Das gilt selbst dann, wenn Ihr Englisch nicht perfekt ist.
-
Bei den meisten größeren Software-Projekten ist die Verwendung englischer Klassen-, Funktions- und Variablennamen selbstverständlich oder sogar in den Projektrichtlinien festgeschrieben. Mit einem englischen Prompt bringen Sie zum Ausdruck, dass der KI-Codegenerator englische Begriffe vorziehen soll.
-
Auch wenn ChatGPT gleichermaßen deutsch, englisch, französisch sowie diverse andere Sprachen spricht: Auf diverse andere Sprachmodelle trifft dies nicht zu. Gerade öffentlich verfügbare Sprachmodelle, die lokal ausgeführt werden können (siehe Kapitel 9, »Sprachmodelle lokal ausführen«), funktionieren nur in englischer Sprache zufriedenstellend.
Deswegen arbeiten wir in diesem Buch fast durchgängig mit englischen Prompts. Das führt dazu, dass auch die Erklärungen und der erstellte Code auf Englisch ausgegeben werden. Das entspricht den Standards der meisten Entwicklungsprojekte, besonders wenn unterschiedliche Nationalitäten gemeinsam an einer Codebasis arbeiten. Falls Sie trotzdem deutsche Variablennamen und Funktionsbezeichner nutzen wollen, müssen Sie ChatGPT explizit anweisen.
Falls Sie die englischen Erklärungen einmal nicht verstehen, können Sie natürlich nach einer Übersetzung fragen. ChatGPT hilft Ihnen dann weiter und erläutert den Code auf Deutsch.
Python: Datum suchen und ersetzen
In diesem Beispiel sollen in einer Zeichenkette alle Datumsangaben vom US-Format (12/31/2024) in das ISO-Format (2024-12-31) umgewandelt werden. Als Programmiersprache soll Python verwendet werden.
Der Code verwendet das re-Modul, mit dem in Python reguläre Ausdrücke verarbeitet werden. ChatGPT formuliert den Code als Funktion, was die weitere Anwendung vereinfacht. convert_us_to_iso_date enthält wiederum eine Subfunktion replace, die an re.sub als Parameter übergeben wird und jeden Treffer durch das neu formatierte Datum ersetzt.
Prompt: Python: I want to replace all US dates by ISO dates in a string. Can you help?
Certainly! To replace all U.S. date formats (commonly MM/DD/YYYY) with ISO date formats (YYYY-MM-DD) in a string using Python, you can use the re module to find dates and then rearrange the format. Here’s a Python function that accomplishes this:
def convert_us_to_iso_dates(text):
date_pattern = r'/b(/d{1,2})/(/d{1,2})/(/d{4})/b'
def replace(match):
month, day, year = match.groups()
return {year}{month.zfill(2)}{day.zfill(2)}
return re.sub(date_pattern, replace, text)
input_text = "Today's date is 05/09/2024 and the event " +
converted_text = convert_us_to_iso_dates(input_text)
print(converted_text)
This script:
-
Defines a regex pattern to match dates in the format MM/DD/YYYY.
-
Uses a replacement function to rearrange the date components into the ISO format YYYY-MM-DD.
-
Applies this transformation to all occurrences in the provided text.
Der Code funktioniert in der präsentierten Form ausgezeichnet. Wenn Sie mit regulären Ausdrücken nicht vertraut sind, können Sie sich den Aufbau des Musters in einer Folgefrage erläutern lassen:
Prompt: Could you explain the regular pattern?
Certainly! Here’s a breakdown of the pattern r'/b(/d{1,2})/(/d{1,2})/(/d{4})/b':
-
/b: This is a word boundary marker. It ensures that the pattern matches whole words only, which helps prevent partial matches of larger sequences that aren’t dates.
-
(/d{1,2}): This part of the pattern captures one or two digits. The /d denotes a digit (equivalent to [0-9]), and {1,2} specifies that the digit can appear once or twice. This pattern is used for both the month and the day in the date.
-
/: This is a literal forward slash character. It separates the month and day, and day and year, in U.S. date formats.
-
(/d{4}): This captures exactly four digits, representing the year. Here, /d again denotes a digit, and {4} specifies that exactly four digits must be present.
-
/b: Another word boundary marker, ensuring the date is a standalone entity, not part of a larger sequence of numbers or characters.
So, the entire pattern matches strings that start and end with a boundary between words (like spaces or punctuation), followed by one or two digits for the month, a slash, one or two digits for the day, another slash, and finally four digits for the year.
In diesem Buch verzichten wir...
Erscheint lt. Verlag | 7.11.2024 |
---|---|
Sprache | deutsch |
Themenwelt | Mathematik / Informatik ► Informatik ► Programmiersprachen / -werkzeuge |
Informatik ► Theorie / Studium ► Künstliche Intelligenz / Robotik | |
ISBN-10 | 3-367-10346-2 / 3367103462 |
ISBN-13 | 978-3-367-10346-1 / 9783367103461 |
Informationen gemäß Produktsicherheitsverordnung (GPSR) | |
Haben Sie eine Frage zum Produkt? |
Größe: 3,8 MB
DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasserzeichen und ist damit für Sie personalisiert. Bei einer missbräuchlichen Weitergabe des eBooks an Dritte ist eine Rückverfolgung an die Quelle möglich.
Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belletristik und Sachbüchern. Der Fließtext wird dynamisch an die Display- und Schriftgröße angepasst. Auch für mobile Lesegeräte ist EPUB daher gut geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür die kostenlose Software Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür eine kostenlose App.
Geräteliste und zusätzliche Hinweise
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich