sábado, 17 de enero de 2026

LangChain4j

LangChain4j es una librería para Java que unifica y simplifica la integración de modelos de lenguaje (LLM) y stores vectoriales en tus aplicaciones. Ofrece APIs unificadas para múltiples proveedores (OpenAI, Vertex AI, etc.) y stores (Pinecone, Milvus, etc.), además de un toolbox con patrones comunes como plantillas de prompts, memoria conversacional, RAG, agentes y function calling

Se usa en escenarios empresariales para construir asistentes con RAG, moderación y reglas de entrada/salida, manteniendo control sobre datos e infraestructura.

En pocas palabras, es una opción similar a Spring AI del que hablaremos en otra ocasión.

Sus principales características son:

  • API unificada que permite interactuar con diversos proveedores. 
  • Integración con frameworks como Sprinc Boot, Quarkus y Helidon. 
  • Memoria de conversación. 
  • Soporte RAG. 
  • Function Calling.

¿Qué se puede hacer con esta herramienta?

  • Extracción y tratamiento de texto. 
  • Chatbots. 
  • Agentes de IA. 
  • Etc.

Empezando con LangChain4j

OpenAI es una empresa de investigación y despliegue de IA y es la opción más directa y estable para probar LangChain4j. Iniciemos con un proyecto Java.

Requisitos:

  • Tener el JDK instalado (última versión). 
  • Tener Maven instalado (última versión). 
  • Tener una cuenta OpenAI (https://openai.com)

1. Creamos el proyecto con Maven y nos ubicamos en el directorio generado:

$ mvn archetype:generate -DgroupId=com.inforhomex -DartifactId=demo-langchain4j -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
$ cd demo-langchain4j

2. Agregamos las dependencias necesarias en el archivo ``pom.xml``

<dependencies>
  <!-- Núcleo LangChain4j -->
  <dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j</artifactId>
    <version>0.31.0</version>
  </dependency>

  <!-- Cliente OpenAI -->
  <dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-open-ai</artifactId>
    <version>0.31.0</version>
  </dependency>
</dependencies>

3. Ahora editaremos la clase App.java

package com.inforhomex;


import dev.langchain4j.model.chat.ChatLanguageModel;
import dev.langchain4j.model.openai.OpenAiChatModel;

public class App {
    public static void main(String[] args) {
        ChatLanguageModel model = OpenAiChatModel.builder()
            .apiKey(System.getenv("OPENAI_API_KEY"))
            .modelName("gpt-4o-mini")
            .build();

        String respuesta = model.generate("Explica qué es LangChain4j en 2 frases.");
        System.out.println(respuesta);
    }
}

4. Obtener la API KEY OPENAI. Vamos a este sitio: https://platform.openai.com/account/api-keys

Una vez logeados debemos ir a la sección de API keys y crear una nueva. Deberá crearte una cadena encriptada de aproximandamente 165 caracteres. Guardala en un bloc de notas o cualquier otro editor.

5. Crear la variable de entorno.

Linux:

$ export OPENAI_API_KEY="tu_api_key_aquí"

Windows (Powershell):

$ setx OPENAI_API_KEY "tu_api_key_aquí"

5. Construimos nuestro proyecto Java con Maven:

$ mvn clean install -X

O con este otro comando:

$ mvn clean package

6. Hacer ejecutable nuestro proyecto, para ello modificamos el archivo ``pom.xml``:

<?xml version="1.0" encoding="UTF-8"?>
<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 
                             http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.inforhomex</groupId>
  <artifactId>demo-langchain4j</artifactId>
  <version>1.0</version>

  <name>demo-langchain4j</name>
  <url>http://www.example.com</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>21</maven.compiler.source>
    <maven.compiler.target>21</maven.compiler.target>
  </properties>

  <dependencies>

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-simple</artifactId>
  <version>2.0.12</version>
</dependency>


    <!-- Cliente OpenAI -->
    <dependency>
      <groupId>dev.langchain4j</groupId>
      <artifactId>langchain4j-open-ai</artifactId>
      <version>0.31.0</version>
    </dependency>

    <!-- Núcleo LangChain4j -->
    <dependency>
      <groupId>dev.langchain4j</groupId>
      <artifactId>langchain4j</artifactId>
      <version>0.31.0</version>
    </dependency>
  </dependencies>

  <repositories>
    <repository>
      <id>central</id>
      <url>https://repo.maven.apache.org/maven2</url>
    </repository>
  </repositories>

  <build>
    <plugins>
      <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>3.3.0</version>
            <configuration>
                <mainClass>com.inforhomex.App</mainClass>
            </configuration>
        </plugin>

        <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-jar-plugin</artifactId>
      <version>3.3.0</version>
      <configuration>
        <archive>
          <manifest>
            <mainClass>com.inforhomex.App</mainClass>
          </manifest>
        </archive>
      </configuration>
    </plugin>

    </plugins>
  </build>
</project>

7. Ejecutamos el proyecto:

$ mvn exec:java -Dexec.mainClass=com.inforhomex.App

Si tines problemas con tu OPEN AI KEY puedes escribir:

$ mvn compile exec:java -Dexec.mainClass=com.inforhomex.App -DOPENAI_API_KEY=AQUI_TU_OPENAI_KEY

Si todo va bien, deberá mostrarte una respuesta.

Conclusión: Hemos visto como hacer una consulta usando LangChain4j desde una aplicación Java.

Continuarmos con este tema en próximas entregas.

Enlaces:

https://github.com/langchain4j/langchain4j
https://www.linkedin.com/pulse/langchain4j-el-poder-de-la-ia-conversacional-para-java-fabian-aguero-vmv2f/
https://medium.com/mitb-for-all/langchain4j-building-generative-ai-applications-in-java-670ec3d6167d
https://adictosaltrabajo.com/2024/03/05/langchain4j-potenciando-tus-aplicaciones-java-con-inteligencia-artificial-ia-y-modelos-de-lenguaje-de-gran-escala-llm-primeros-pasos/
https://www.reddit.com/r/java/comments/14ff6ie/seekeng_feedback_langchain4j_a_library_for_easy/?tl=es-419
https://www.baeldung.com/maven-java-main-method

No hay comentarios:

Publicar un comentario

LangChain4j

LangChain4j es una librería para Java que unifica y simplifica la integración de modelos de lenguaje (LLM) y stores vectoriales en tus ap...

Etiquetas

Archivo del blog