Introducción y conceptos básicos
Langchain4j
Vectorización y búsqueda semántica
Demo 1
Jorge
Disclaimer
Introducción y conceptos básicos
Langchain4j
Vectorización y búsqueda semántica
Demo 1
Modelos LLM
Demo 2
Contexto y RAG
Demo 3
Conversando (Memory)
Demo 4
Agentes
Demo 5
Tools
Demo 6
MCP
Demo 7
Breve contexto sobre el auge de la IA generativa y los LLMs (Large Language Models).
Casos de uso relevantes para desarrolladores (chatbots, asistentes, generación de código, etc.).
Langchain4j facilita la integración de estas tecnologías en Java.
Framework de código abierto para construir aplicaciones impulsadas por LLMs en Java.
principales objetivos: simplicidad, modularidad y extensibilidad.
inspiración en Langchain (Python).
Introducción al concepto de "embeddings" o vectores semánticos.
el texto se transforma en representaciones numéricas.
la similitud entre dos textos utilizando vectores (ej. distancia coseno).
búsqueda semántica, sistemas de recomendación, etc.
implementation
"dev.langchain4j:langchain4j"
implementation
"dev.langchain4j:langchain4j-embeddings-all-minilm-l6-v2"txt = "Hola amiguis";
model = new AllMiniLmL6V2EmbeddingModel();
embedding1 = model.embed(txt).content();
embedding1.vector(); // float[](ChromaDB, CosmosDB, PostgreSQL, etc.).
PostgreSQL extension pgvector
Ver docker-compose.yml
implementation "dev.langchain4j:langchain4j-pgvector"
// cambiar pgvector por otrosEmbeddingStore<TextSegment> embeddingStore;
segment = TextSegment.from("una cadena",
Metadata.metadata("SourceId", "1")
);
embedding = embeddingModel.embed(segment).content();
embeddingStore.add(embedding, segment);LLMs (modelos basados en transformers entrenados con grandes cantidades de texto).
ejemplos populares (GPT-3.5, GPT-4, modelos open-source como Mistral).
(Langchain4j proporciona abstracciones para interactuar con diferentes LLMs).
implementation "dev.langchain4j:langchain4j-ollama"
// cambiar ollama por el correspondienteChatModel chatModel;
response = chatModel.chat(question);necesidad de la memoria para construir aplicaciones conversacionales coherentes.
Tipos de memoria en Langchain4j: buffer de conversación, memoria de ventana, etc.
chatMemory.add(UserMessage.from(question));
response = chatModel.chat(chatMemory.messages()).aiMessage();
chatMemory.add(response);sistemas capaces de tomar decisiones y ejecutar acciones basadas en la entrada del usuario y las herramientas disponibles.
la importancia de proporcionar contexto.
Introducción al concepto de "Retrieval-Augmented Generation" (RAG).
RAG: buscar e inyectar información
Langchain4j facilita la creación de sistemas de recuperación.
AiServices.builder(Demo6Assistant.class)
.chatLanguageModel(chatModel)
.chatMemory(chatMemory)
.contentRetriever(contentRetriever)
.build();Ejemplos de herramientas: búsqueda web, calculadoras, acceso a APIs.
propuesta de Antrop , aceptada por los demas