LangChain4j es un poderoso framework para construir aplicaciones de inteligencia artificial generativa en Java. Inspirado en el popular LangChain para Python y JavaScript, este marco permite integrar modelos de lenguaje como OpenAI GPT, Llama, o Hugging Face con herramientas avanzadas, flujos de trabajo y procesamiento dinámico.
LangChain4j proporciona herramientas para manejar modelos de lenguaje de manera modular y escalable. Algunas de sus características destacadas incluyen:
- Integración de Modelos de Lenguaje (LLMs): Interactúa fácilmente con GPT-4, GPT-3, o modelos personalizados.
- Encadenamiento de Operaciones: Diseña flujos complejos combinando varios modelos y herramientas.
- Contexto Extendido: Utiliza almacenamiento vectorial para manejar contextos largos.
- Herramientas de Razonamiento y Extracción: Construye aplicaciones como chatbots avanzados, asistentes de búsqueda, o sistemas de recomendación.
Antes de comenzar, agrega la dependencia en tu proyecto Maven o Gradle:
Veamos la dependencia de maven:
<dependency>
<groupId>com.langchain4j</groupId>
<artifactId>langchain4j-core</artifactId>
<version>1.0.0</version>
</dependency>
o gradle:
implementation 'com.langchain4j:langchain4j-core:1.0.0'
Veamos un cliente básico para interactuar con OpenAI GPT:
import com.langchain4j.LangChain;
import com.langchain4j.llm.OpenAiClient;
public class LangChainExample {
public static void main(String[] args) {
OpenAiClient client = OpenAiClient.builder()
.apiKey("tu-api-key")
.build();
String response = client.chat("¿Qué es LangChain4j?");
System.out.println("Respuesta: " + response);
}
}
Este ejemplo muestra cómo enviar una consulta y recibir una respuesta usando OpenAI GPT.
LangChain4j soporta herramientas como cadenas de procesamiento (`Chains`) para flujos más complejos.
Veamos un ejemplo de un Flujo con Memoria:
import com.langchain4j.chain.ConversationChain;
import com.langchain4j.memory.InMemoryMemory;
public class ConversationExample {
public static void main(String[] args) {
ConversationChain conversation = ConversationChain.builder()
.llm(OpenAiClient.builder().apiKey("tu-api-key").build())
.memory(new InMemoryMemory())
.build();
System.out.println(conversation.chat("Hola, ¿quién eres?"));
System.out.println(conversation.chat("¿Recuerdas mi nombre?"));
}
}
Aquí, InMemoryMemory permite que el modelo recuerde las interacciones previas.
LangChain4j admite almacenamiento vectorial, útil para aplicaciones de búsqueda semántica o contextos largos.
import com.langchain4j.vector.PineconeVectorStore;
public class VectorStoreExample {
public static void main(String[] args) {
PineconeVectorStore vectorStore = PineconeVectorStore.builder()
.apiKey("tu-api-key")
.environment("us-west1-gcp")
.build();
vectorStore.add("doc1", "Este es un ejemplo de texto.");
System.out.println(vectorStore.search("texto relacionado", 1));
}
}
LangChain4j extiende las capacidades de los modelos de lenguaje para aplicaciones empresariales en Java. Con su enfoque modular, herramientas avanzadas, y soporte para almacenamiento vectorial, se posiciona como una opción clave para proyectos de IA generativa en el ecosistema Java.
Y falto decir que se puede integrar con spring y otros frameworks, pero eso lo voy a dejar para otro post...
Dejo link: https://docs.langchain4j.dev/