Posts

Posts mit dem Label "Java" werden angezeigt.

AI Assistent mit LangChain4j und Spring Boot

Bild
LangChain4j ist ein neues und populäres Framework, um LLMs, Vektor-Datenbanken und weitere KI-Funktionen in Java Systemen zu nutzen. In diesem Artikel integrieren wir LangChain4j in eine Spring Boot Anwendung. Spring Boot mit LangChain4j Maven Dependencies Stand 22.07.2024 hat LangChain4j noch eine Nuller-Version im Maven Repository. LangChain4j integrieren wir als 3rd-Party Bibliothek in unser Spring Boot Projekt: < dependencies > < dependency > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter-web</ artifactId > </ dependency > < dependency > < groupId >dev.langchain4j</ groupId > < artifactId >langchain4j-spring-boot-starter</ artifactId > < version >0.32.0</ version > </ dependency > < dependency > < groupId >dev.langchain4j</ groupId > < artifactId >langchain4j-azure-op

Software-Entwicklung mit KI-Hilfe von ChatGPT

Bild
Wie hilft uns KI beim Programmieren? Als erfahrener Software Entwickler zeige ich euch, in welchen Situationen mir ChatGPT beim Entwickeln besonders hilft. Die Trainingsdaten der KI enthalten viele Programmiersprachen und Technologien. Außerdem kennt sie viele Algorithmen, Tutorials, Opensource Codes, Probleme und deren Lösungen. Dein Arbeits-Kontext, der komplette Sourcecode dazu und euer Problem bzw. dessen echte Root-Cause sind der KI allerdings unbekannt. Die KI bzw. ChatGPT hilft euch also nur so gut, wie ihr euer Problem bzw. die Anforderung mit passendem Kontext klar beschreibt. Mein generelles Vorgehen dazu ist Teile und Herrsche . Ich zerlege meine User Story bzw. meine Aufgabe in kleinere Teile. Kleinere Teilprobleme oder Teilanforderungen lassen sich leichter und genauer beschreiben, so dass die KI bzw. ChatGPT mich besser unterstützen kann.  Um euch das zu verdeutlichen, zeige ich im Folgenden Beispiele aus meinem Entwickler-Alltag. In diesen Beispielen habe ich Teil-Proble

Java 21: Die wichtigsten Features seit Version 17

Bild
Java 21, die neue Version mit verlängertem Support, ist da! Hier stelle ich die wichtigsten Features vor: Interface SequencedCollection, Record Patterns, Neuerungen bei switch und das Highlight virtuelle Threads Falls Ihr noch Java 11 verwendet, schaut euch hier die Features von Java 17 an:  java-17-features.html 🎓 Auf Udemy findet ihr meinen kostenloses Online-Kurs zu Java 21 . Java 21 at YouTube in English Interface SequencedCollection Die neuen Sequenced -Interfaces erweitern Listen-Implementierungen um den Direktzugriff auf das erste und letzte Element. Am Beispiel einer  ArrayList  zeige ich hier die neuen, selbsterklärenden Methoden: // Mutable list created. List < String > list = new ArrayList<>( List . of ( "1st" , "2nd" , "3rd" )); log .info( "Read first & last element in list: %s & %s" .formatted( list .getFirst(), list .getLast())); var reversedList = list .reversed(); reversedList .addFirst( "4th"

Streams vs. Loops in Java

Bild
Java's Stream API ist eine mächtige Alternative zu Schleifen. Modernere, reaktive Programmierung setzt voll auf Streams. Hier stelle ich Streams und Loops gegenüber, indem ich die gleiche Aufgabe mittels Stream und Schleife löse.   Java Streams API Ein Stream ist ein Datenstrom. Mit der Java Stream API können Objekte in Datenströmen analysiert, bearbeitet, gefiltert und umgewandelt werden. Ich stelle mir Stream gerne als Fließband vor. Die Objekte werden von einer Quelle (z.B. List ) auf das Fließband gepackt und durchlaufen verschiedene Stationen, an denen sie bearbeitet werden. Zum Abschluss werden sie in ein Ergebnis gepackt (z.B. neue List ), welches dann im weiteren Programmcode benutzt werden kann. Fließband: Stream der analogen Welt Intermediate Operations Zum Bearbeiten der Objekte im Stream gibt es sogenannte "intermediate Operations", die im Stream Interface definiert sind: filter - entfernt Objekte aus dem Stream map - wandelt Objekte um peek - erlaubt Bearbeit

ChatGPT Chatbot in Java Web-Anwendung integrieren

Bild
Wie integrierst Du eine künstliche Intelligenz als Chatbot in Deine Web-Anwendung? Am einfachsten indem Du die GPT-3 API benutzt. Hier zeige ich, wie es mit Java funktioniert. OpenAI Account und API Key OpenAI bietet die GPT-3 API an, die auch ChatGPT verwendet. Willst Du sie nutzen? Dann geht es vor dem eigentlichen Programmieren in Java so los: Eigenen Account auf  https://openai.com/ erstellen. Einloggen und eigenen API Key erstellen: https://beta.openai.com/account/api-keys Der API Key berechtigt Deine Anwendung die GPT-3 API zu nutzen. Bei YouTube findet ihr ein englisches und deutsches Video passend zu diesem Blog-Artikel. How-To use GPT-3 API video in English GPT-3 API mit Java HttpClient aufrufen Die GPT-3 API kann mit jeder Programmiersprache bzw. jedem HTTP Client verwendet werden. Ich zeige euch hier, wie es mit dem HttpClient von Java funktioniert. String postBody =       """      {          " prompt": "Code in Java to print first 20 Fibonacc

Java 17: Sprach-Freatures der neuen Langzeit-Support-Version

Bild
Welche Java Features helfen uns künftig besseren Code zu schreiben? In den Java Versionen 12 bis 17 gibt es spannende, neue Features - ich zeige euch diese hier: Text Blöcke Erweiterungen bei instanceof Neuerungen bei switch Records Versiegelte Klassen RandomGenerator 🎓 Auf Udemy findet ihr meinen kostenloses Online-Kurs zu diesem Blog-Artikel:  Java 17 @ Udemy Neue Java Versionen Seit Java 9 gibt es halbjährlich ein neues Release. Java 11 ist aufgrund des verlängerten Supports bis September 2026 ein wichtiges Release. Daher wird Java 11 aktuell häufig im Berufsumfeld eingesetzt. Seit September 2021 gibt es mit Java 17 ein neues Release mit verlängertem Support (LTS). Dieses wird Java 11 im Berufsumfeld mit der Zeit ablösen. Hier zeige ich Features der Java Versionen 12-17, welche direkten Einfluss auf die Code-Qualität haben und somit zum Thema Clean Code passen. Einen guten Überblick über Java Versionen, Erscheinungsdaten und Feature-Listen findet ihr bei Wikipedia:  https://en.wiki