{"id":22558,"date":"2025-03-16T13:00:47","date_gmt":"2025-03-16T12:00:47","guid":{"rendered":"http:\/\/blog.wenzlaff.de\/?p=22558"},"modified":"2025-03-16T11:50:14","modified_gmt":"2025-03-16T10:50:14","slug":"get-started-openaichatmodel-mit-langchain4j","status":"publish","type":"post","link":"http:\/\/blog.wenzlaff.de\/?p=22558","title":{"rendered":"Get Started OpenAiChatModel mit LangChain4j in Java"},"content":{"rendered":"<p><a href=\"https:\/\/docs.langchain4j.dev\/get-started\" target=\"_blank\">LangChain4j<\/a> ist ein Open-Source-Framework, das speziell f\u00fcr 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 <a href=\"https:\/\/docs.langchain4j.dev\/get-started\" target=\"_blank\">LangChain4j<\/a> k\u00f6nnen Entwickler Aufgaben wie das Erstellen von Embeddings, semantische Suchen, Chatbot-Implementierungen und Retrieval-Augmented-Generation (RAG) effizient umsetzen.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2025\/03\/kleinhirn.webp\" alt=\"\" width=\"1024\" height=\"1024\" class=\"aligncenter size-full wp-image-22564\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2025\/03\/kleinhirn.webp 1024w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2025\/03\/kleinhirn-300x300.webp 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2025\/03\/kleinhirn-150x150.webp 150w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2025\/03\/kleinhirn-768x768.webp 768w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2025\/03\/kleinhirn-100x100.webp 100w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2025\/03\/kleinhirn-120x120.webp 120w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/p>\n<p>Um LangChain4j in einem Java-Projekt zu nutzen, m\u00fcssen die entsprechenden Maven-Abh\u00e4ngigkeiten hinzugef\u00fcgt werden und zwar so in der pom.xml:<!--more--><\/p>\n<pre class=\"minimize:true lang:default decode:true \" >&lt;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\"&gt;\r\n  &lt;modelVersion&gt;4.0.0&lt;\/modelVersion&gt;\r\n  &lt;groupId&gt;de.wenzlaff.twki&lt;\/groupId&gt;\r\n  &lt;artifactId&gt;de.wenzlaff.twki&lt;\/artifactId&gt;\r\n  &lt;version&gt;0.0.1-SNAPSHOT&lt;\/version&gt;\r\n\r\n\t&lt;dependencies&gt;\r\n\t\t&lt;dependency&gt;\r\n\t\t\t&lt;groupId&gt;dev.langchain4j&lt;\/groupId&gt;\r\n\t\t\t&lt;artifactId&gt;langchain4j-open-ai&lt;\/artifactId&gt;\r\n\t\t\t&lt;version&gt;1.0.0-beta2&lt;\/version&gt;\r\n\t\t&lt;\/dependency&gt;\r\n\t\t&lt;dependency&gt;\r\n\t\t\t&lt;groupId&gt;dev.langchain4j&lt;\/groupId&gt;\r\n\t\t\t&lt;artifactId&gt;langchain4j&lt;\/artifactId&gt;\r\n\t\t\t&lt;version&gt;1.0.0-beta2&lt;\/version&gt;\r\n\t\t&lt;\/dependency&gt;\r\n  \r\n  &lt;\/dependencies&gt;\r\n&lt;\/project&gt;<\/pre>\n<p>Wir wollen mal die Anfrage: <\/p>\n<p>&#8222;Was kann man \u00fcber <a href=\"http:\/\/kleinhirn.eu\/\" target=\"_blank\">Kleinhirn.eu<\/a> und Mindmaps sagen?<br \/>\nErstelle auch eine flowchart Diagramm mit den wichtigsten Inhalten im Mermaid Format.&#8220; <\/p>\n<p>an OpenAI stellen, wir erstellen diesen Code:<\/p>\n<pre class=\"lang:java decode:true \" >package de.wenzlaff.twki;\r\n\r\nimport dev.langchain4j.model.openai.OpenAiChatModel;\r\n\r\n\/**\r\n * Minimales Demo-Programm f\u00fcr OpenAi.\r\n * \r\n * https:\/\/docs.langchain4j.dev\/get-started\/\r\n * \r\n * https:\/\/platform.openai.com\/settings\/organization\/data-controls\/visibility\r\n * \r\n * https:\/\/platform.openai.com\/api-keys\r\n * \r\n * @author Thomas Wenzlaff\r\n *\/\r\npublic class KiStart {\r\n\r\n\tpublic static void main(String[] args) {\r\n\r\n\t\t\/\/ geht auch ohne Key im Demo-Modus,\r\n\t\t\/\/ dann Api Key auf TEST setzen,\r\n\t\t\/\/ und nur mit den gpt-4o-mini Model:\r\n\t\tString apiKey = System.getProperty(\"OPENAI_API_KEY\");\r\n\r\n\t\tOpenAiChatModel model = OpenAiChatModel.builder().baseUrl(\"http:\/\/langchain4j.dev\/demo\/openai\/v1\").apiKey(\"TEST\").modelName(\"gpt-4o-mini\").build();\r\n\r\n\t\tString answer = model.chat(\"Was kann man \u00fcber Kleinhirn.eu und Mindmaps sagen? Erstelle auch eine flowchart Diagramm mit den wichtigsten Inhalten im Mermaid Format.\");\r\n\r\n\t\tSystem.out.println(answer);\r\n\t}\r\n}\r\n<\/pre>\n<p>Das Ergebnis:<\/p>\n<pre class=\"lang:default decode:true \" >\r\n\r\nKleinhirn.eu ist eine Plattform, die sich auf die Verwendung von Mindmaps konzentriert, \r\num Wissen zu visualisieren und zu organisieren. Mindmaps sind eine kreative und effektive Methode, \r\num Informationen zu strukturieren, indem sie zentrale Ideen um einen zentralen Punkt herum organisieren. \r\nDiese Technik f\u00f6rdert das Verst\u00e4ndnis, das Ged\u00e4chtnis und die Kreativit\u00e4t, \r\nindem sie visuelle Verbindungen zwischen verschiedenen Konzepten herstellt.\r\n\r\nHier sind einige wichtige Aspekte der Plattform und des Themas Mindmaps:\r\n\r\n- **Definition**: Mindmaps sind visuelle Darstellungen von Ideen und Konzepten.\r\n- **Zweck**: Sie helfen bei der Ideenentwicklung, Organisation, Probleml\u00f6sung sowie dem Lernen.\r\n- **Struktur**: Beginnt mit einer zentralen Idee und verzweigt sich in verwandte Themen und Unterthemen.\r\n- **Anwendung**: Bildung, Projektmanagement, Brainstorming und pers\u00f6nliche Entwicklung.\r\n- **Werkzeuge**: Es gibt verschiedene Software und Online-Plattformen, die Benutzern helfen, Mindmaps zu erstellen.\r\n\r\nHier ist ein Flowchart-Diagramm im Mermaid-Format, das die wichtigsten Inhalte zusammenfasst:\r\n\r\n```mermaid\r\nflowchart TD\r\n    A[Kleinhirn.eu] --&gt; B[Mindmaps]\r\n    B --&gt; C[Definition]\r\n    B --&gt; D[Zweck]\r\n    B --&gt; E[Struktur]\r\n    B --&gt; F[Anwendung]\r\n    B --&gt; G[Werkzeuge]\r\n    \r\n    C --&gt; C1[Visuelle Darstellungen]\r\n    C --&gt; C2[Zentrale Idee]\r\n    \r\n    D --&gt; D1[Ideenentwicklung]\r\n    D --&gt; D2[Organisation]\r\n    D --&gt; D3[Probleml\u00f6sung]\r\n    D --&gt; D4[Lernen]\r\n    \r\n    E --&gt; E1[Zentrale Idee]\r\n    E --&gt; E2[Verzweigungen]\r\n    E --&gt; E3[Unterthemen]\r\n\r\n    F --&gt; F1[Bildung]\r\n    F --&gt; F2[Projektmanagement]\r\n    F --&gt; F3[Brainstorming]\r\n    F --&gt; F4[Pers\u00f6nliche Entwicklung]\r\n\r\n    G --&gt; G1[Online-Tools]\r\n    G --&gt; G2[Software]\r\n```\r\n\r\nDieses Diagramm verdeutlicht die wesentlichen Elemente von Kleinhirn.eu und deren Anwendung von Mindmaps.\r\n<\/pre>\n<p>Das gerenderte Mermaid Diagram:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2025\/03\/wenzlaff.de-2025-03-16-um-11.12.14.png\" alt=\"\" width=\"4226\" height=\"448\" class=\"aligncenter size-full wp-image-22559\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2025\/03\/wenzlaff.de-2025-03-16-um-11.12.14.png 4226w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2025\/03\/wenzlaff.de-2025-03-16-um-11.12.14-300x32.png 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2025\/03\/wenzlaff.de-2025-03-16-um-11.12.14-1024x109.png 1024w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2025\/03\/wenzlaff.de-2025-03-16-um-11.12.14-768x81.png 768w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2025\/03\/wenzlaff.de-2025-03-16-um-11.12.14-1536x163.png 1536w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2025\/03\/wenzlaff.de-2025-03-16-um-11.12.14-2048x217.png 2048w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/p>\n<p>Der Framework unterst\u00fctzt sowohl Low-Level-Komponenten f\u00fcr maximale Flexibilit\u00e4t als auch High-Level-APIs f\u00fcr einfache und elegante Implementierungen.<br \/>\nLangChain4j ist besonders n\u00fctzlich f\u00fcr 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-\u00d6kosysteme einf\u00fcgt. Dazu sp\u00e4ter mehr.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>LangChain4j ist ein Open-Source-Framework, das speziell f\u00fcr 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\u00f6nnen Entwickler Aufgaben wie das Erstellen von Embeddings, semantische Suchen, Chatbot-Implementierungen und Retrieval-Augmented-Generation (RAG) effizient umsetzen. Um &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/blog.wenzlaff.de\/?p=22558\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eGet Started OpenAiChatModel mit LangChain4j in Java\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[220,5373],"tags":[6160,2178,6076,288,6159,6161,6162,2148],"class_list":["post-22558","post","type-post","status-publish","format-standard","hentry","category-anleitung","category-chatgpt","tag-gag","tag-java","tag-ki","tag-kleinhirn-eu","tag-langchain4j","tag-llm","tag-llms","tag-modell"],"_links":{"self":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/22558","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=22558"}],"version-history":[{"count":0,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/22558\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=22558"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=22558"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=22558"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}