Mostrando entradas con la etiqueta langchain4j. Mostrar todas las entradas
Mostrando entradas con la etiqueta langchain4j. Mostrar todas las entradas

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

Pattern Matching en sencillas palabras (o no tanto)

El pattern matching es una técnica para comparar estructuras de datos contra un patrón y, si coincide, extraer valores o ejecutar lóg...

Etiquetas

Archivo del blog