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/langchain4jhttps://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