LangChain4j ist ein Open-Source-Framework, das speziell für die Integration von Large Language Models (LLMs) in Java-Anwendungen entwickelt wurde. Es bietet eine vereinheitlichte API, die den Zugriff auf verschiedene LLM-Anbieter wie OpenAI oder Google Vertex AI erleichtert. Mit LangChain4j können Entwickler Aufgaben wie das Erstellen von Embeddings, semantische Suchen, Chatbot-Implementierungen und Retrieval-Augmented-Generation (RAG) effizient umsetzen.
Um LangChain4j in einem Java-Projekt zu nutzen, müssen die entsprechenden Maven-Abhängigkeiten hinzugefügt werden und zwar so in der pom.xml:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>de.wenzlaff.twki</groupId> <artifactId>de.wenzlaff.twki</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies> <dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j-open-ai</artifactId> <version>1.0.0-beta2</version> </dependency> <dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j</artifactId> <version>1.0.0-beta2</version> </dependency> </dependencies> </project> |
Wir wollen mal die Anfrage:
„Was kann man über Kleinhirn.eu und Mindmaps sagen?
Erstelle auch eine flowchart Diagramm mit den wichtigsten Inhalten im Mermaid Format.“
an OpenAI stellen, wir erstellen diesen Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
package de.wenzlaff.twki; import dev.langchain4j.model.openai.OpenAiChatModel; /** * Minimales Demo-Programm für OpenAi. * * https://docs.langchain4j.dev/get-started/ * * https://platform.openai.com/settings/organization/data-controls/visibility * * https://platform.openai.com/api-keys * * @author Thomas Wenzlaff */ public class KiStart { public static void main(String[] args) { // geht auch ohne Key im Demo-Modus, // dann Api Key auf TEST setzen, // und nur mit den gpt-4o-mini Model: String apiKey = System.getProperty("OPENAI_API_KEY"); OpenAiChatModel model = OpenAiChatModel.builder().baseUrl("http://langchain4j.dev/demo/openai/v1").apiKey("TEST").modelName("gpt-4o-mini").build(); String answer = model.chat("Was kann man über Kleinhirn.eu und Mindmaps sagen? Erstelle auch eine flowchart Diagramm mit den wichtigsten Inhalten im Mermaid Format."); System.out.println(answer); } } |
Das Ergebnis:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
Kleinhirn.eu ist eine Plattform, die sich auf die Verwendung von Mindmaps konzentriert, um Wissen zu visualisieren und zu organisieren. Mindmaps sind eine kreative und effektive Methode, um Informationen zu strukturieren, indem sie zentrale Ideen um einen zentralen Punkt herum organisieren. Diese Technik fördert das Verständnis, das Gedächtnis und die Kreativität, indem sie visuelle Verbindungen zwischen verschiedenen Konzepten herstellt. Hier sind einige wichtige Aspekte der Plattform und des Themas Mindmaps: - **Definition**: Mindmaps sind visuelle Darstellungen von Ideen und Konzepten. - **Zweck**: Sie helfen bei der Ideenentwicklung, Organisation, Problemlösung sowie dem Lernen. - **Struktur**: Beginnt mit einer zentralen Idee und verzweigt sich in verwandte Themen und Unterthemen. - **Anwendung**: Bildung, Projektmanagement, Brainstorming und persönliche Entwicklung. - **Werkzeuge**: Es gibt verschiedene Software und Online-Plattformen, die Benutzern helfen, Mindmaps zu erstellen. Hier ist ein Flowchart-Diagramm im Mermaid-Format, das die wichtigsten Inhalte zusammenfasst: ```mermaid flowchart TD A[Kleinhirn.eu] --> B[Mindmaps] B --> C[Definition] B --> D[Zweck] B --> E[Struktur] B --> F[Anwendung] B --> G[Werkzeuge] C --> C1[Visuelle Darstellungen] C --> C2[Zentrale Idee] D --> D1[Ideenentwicklung] D --> D2[Organisation] D --> D3[Problemlösung] D --> D4[Lernen] E --> E1[Zentrale Idee] E --> E2[Verzweigungen] E --> E3[Unterthemen] F --> F1[Bildung] F --> F2[Projektmanagement] F --> F3[Brainstorming] F --> F4[Persönliche Entwicklung] G --> G1[Online-Tools] G --> G2[Software] ``` Dieses Diagramm verdeutlicht die wesentlichen Elemente von Kleinhirn.eu und deren Anwendung von Mindmaps. |
Das gerenderte Mermaid Diagram:
Der Framework unterstützt sowohl Low-Level-Komponenten für maximale Flexibilität als auch High-Level-APIs für einfache und elegante Implementierungen.
LangChain4j ist besonders nützlich für Anwendungen wie Chatbots mit Memory-Funktion, die Verarbeitung unstrukturierter Daten oder die Generierung von Inhalten. Es bietet zudem Integrationen mit Frameworks wie Quarkus und Spring Boot, wodurch es sich nahtlos in moderne Java-Ökosysteme einfügt. Dazu später mehr.