initial commit: slides ready + upgraded
This commit is contained in:
@@ -0,0 +1,371 @@
|
||||
# Cambios necesarios para actualizar el curso LangChain.js
|
||||
|
||||
> Fecha de revision: 2026-05-22
|
||||
> Las slides fueron preparadas para Enero 2026 (v0.3.x). Desde entonces se ha lanzado **LangChain v1** y **LangGraph v1**, que traen cambios significativos.
|
||||
> **Todos los cambios críticos e importantes han sido aplicados.** El documento se conserva como referencia histórica.
|
||||
|
||||
## Versiones actuales en npm (mayo 2026)
|
||||
|
||||
| Paquete | Slides | Actual | Cambio |
|
||||
|---------|--------|--------|--------|
|
||||
| `langchain` | v0.3.x | **v1.2.35** | MAJOR |
|
||||
| `@langchain/core` | v0.3.x | **v1.1.34** | MAJOR |
|
||||
| `@langchain/openai` | - | **v1.3.0** | MAJOR |
|
||||
| `@langchain/anthropic` | - | **v1.3.25** | MAJOR |
|
||||
| `@langchain/google-genai` | en uso | **v2.1.26** (DEPRECATED) | Ver punto 3 |
|
||||
| `@langchain/google` | no mencionado | **v0.1.7** (NUEVO, reemplaza google-genai) | NUEVO |
|
||||
| `@langchain/community` | en uso | **v1.1.24** | MAJOR |
|
||||
| `@langchain/langgraph` | en uso | **v1.2.3** | MAJOR |
|
||||
| `@langchain/classic` | no existe en slides | **v1.0.24** (NUEVO) | NUEVO |
|
||||
| `@langchain/qdrant` | en uso | **v1.0.1** | MAJOR |
|
||||
| `@langchain/pinecone` | - | **v1.0.1** | MAJOR |
|
||||
|
||||
---
|
||||
|
||||
## 1. CRITICO: Versiones en slides/setup/03.md
|
||||
|
||||
**Fichero**: `pages/setup/03.md:52`
|
||||
**Problema**: Dice `Versiones actuales (Enero 2026): langchain v0.3.x · @langchain/core v0.3.x`
|
||||
**Correccion**: Cambiar a `Versiones actuales (Marzo 2026): langchain v1.x · @langchain/core v1.x`
|
||||
|
||||
---
|
||||
|
||||
## 2. CRITICO: Nuevo paquete @langchain/classic
|
||||
|
||||
**Ficheros afectados**: `pages/setup/02.md`
|
||||
**Problema**: La arquitectura de paquetes no menciona `@langchain/classic`, que es donde se ha movido la funcionalidad legacy en v1.
|
||||
**Que se movio a @langchain/classic**:
|
||||
- `MemoryVectorStore` (antes en `langchain/vectorstores/memory`)
|
||||
- `DirectoryLoader` (antes en `langchain/document_loaders/fs/directory`)
|
||||
- `TextLoader` (antes en `langchain/document_loaders/fs/text`)
|
||||
- Legacy chains (`LLMChain`, `ConversationChain`, etc.)
|
||||
- Retrievers legacy
|
||||
- Hub module
|
||||
- `ChatPromptTemplate` ahora se importa desde `@langchain/classic/prompts` en los ejemplos de proveedores (aunque sigue disponible en `@langchain/core/prompts`)
|
||||
|
||||
**Accion**: Anadir `@langchain/classic` al diagrama de arquitectura de paquetes en `setup/02.md`
|
||||
|
||||
---
|
||||
|
||||
## 3. CRITICO: @langchain/google-genai DEPRECATED
|
||||
|
||||
**Ficheros afectados**:
|
||||
- `pages/setup/02.md:54` - lista de proveedores
|
||||
- `pages/setup/03.md:31` - instalacion
|
||||
- `pages/setup/13.md` - ejemplo completo con Gemini
|
||||
- `pages/models/08b.md` - ChatGoogleGenerativeAI
|
||||
- `pages/models/10.md:38` - providers disponibles
|
||||
- `pages/rag/06.md:22` - GoogleGenerativeAIEmbeddings
|
||||
- `pages/rag/07.md` - no afectado directamente
|
||||
|
||||
**Problema**: La documentacion oficial dice textualmente:
|
||||
> "This library is based on a deprecated library from Google and will be replaced by the ChatGoogle library. New implementations should use the ChatGoogle library instead."
|
||||
|
||||
**Correccion**:
|
||||
```typescript
|
||||
// ANTES (deprecated)
|
||||
import { ChatGoogleGenerativeAI } from "@langchain/google-genai";
|
||||
const model = new ChatGoogleGenerativeAI({ model: "gemini-2.0-flash-exp" });
|
||||
|
||||
// AHORA (recomendado)
|
||||
import { ChatGoogle } from "@langchain/google";
|
||||
const model = new ChatGoogle({ model: "gemini-2.5-flash" });
|
||||
```
|
||||
|
||||
**Instalacion**: `npm install @langchain/google` en lugar de `npm install @langchain/google-genai`
|
||||
|
||||
---
|
||||
|
||||
## 4. CRITICO: createReactAgent -> createAgent
|
||||
|
||||
**Ficheros afectados**:
|
||||
- `pages/models/15.md` - ejemplo con Tavily usa `createReactAgent` de `@langchain/langgraph/prebuilt`
|
||||
- `pages/models/16.md` - comparacion bindTools vs createReactAgent
|
||||
|
||||
**Problema**: `createReactAgent` de `@langchain/langgraph/prebuilt` ha sido reemplazado por `createAgent` de `langchain` en v1.
|
||||
|
||||
**Correccion para models/15.md**:
|
||||
```typescript
|
||||
// ANTES
|
||||
import { ChatOpenAI } from "@langchain/openai";
|
||||
import { TavilySearchResults } from "@langchain/community/tools/tavily_search";
|
||||
import { createReactAgent } from "@langchain/langgraph/prebuilt";
|
||||
|
||||
const model = new ChatOpenAI({ model: "gpt-4o-mini" });
|
||||
const agent = createReactAgent({ llm: model, tools: [searchTool] });
|
||||
|
||||
// AHORA
|
||||
import { createAgent } from "langchain";
|
||||
import { TavilySearchResults } from "@langchain/community/tools/tavily_search";
|
||||
|
||||
const searchTool = new TavilySearchResults({ apiKey: process.env.TAVILY_API_KEY, maxResults: 5 });
|
||||
const agent = createAgent({
|
||||
model: "openai:gpt-4.1-mini",
|
||||
tools: [searchTool],
|
||||
});
|
||||
```
|
||||
|
||||
**Correccion para models/16.md**: Cambiar el titulo y contenido del panel derecho de `createReactAgent()` a `createAgent()`. La comparacion sigue siendo valida conceptualmente (bindTools para control manual vs createAgent para loop automatico).
|
||||
|
||||
> NOTA: La seccion de agentes (pages/agents/) ya usa `createAgent` correctamente. Solo models/15.md y models/16.md estan desactualizados.
|
||||
|
||||
---
|
||||
|
||||
## 5. IMPORTANTE: Nombres de modelos desactualizados
|
||||
|
||||
### OpenAI
|
||||
**Ficheros**: Multiples (models/, messages/, rag/, setup/, agents/)
|
||||
- `gpt-4o-mini` -> `gpt-4.1-mini` (segun docs actuales de LangChain)
|
||||
- `gpt-4o` -> `gpt-4.1` (segun docs actuales de LangChain)
|
||||
- `gpt-4-turbo` en `models/10.md:18` -> `gpt-4.1` o posterior
|
||||
|
||||
**Nota**: Los modelos `gpt-4o` y `gpt-4o-mini` siguen funcionando pero ya no son los mas recientes. La documentacion oficial de LangChain ahora muestra `gpt-4.1-mini` y `gpt-5.2` como ejemplos.
|
||||
|
||||
### Anthropic
|
||||
- `claude-sonnet-4-20250514` en `models/08.md:41` -> `claude-sonnet-4-6` (ultimo segun docs)
|
||||
- `claude-sonnet-4-5-20250929` en `agents/05.md:17` -> mantener o actualizar a `claude-sonnet-4-6`
|
||||
|
||||
### Google Gemini
|
||||
- `gemini-2.0-flash-exp` en `models/08b.md:19` -> `gemini-2.5-flash` (segun docs actuales)
|
||||
- `gemini-pro` en `models/10.md:38` -> `gemini-2.5-flash-lite` (modelo recomendado actual)
|
||||
- `gemini-2.5-flash` en `setup/13.md:16` -> OK, este esta correcto
|
||||
|
||||
### Embeddings
|
||||
- `embedding-001` en `rag/06.md:25` -> verificar nombre actual del modelo de embeddings de Google
|
||||
- `llama2` en `rag/07.md:32` (OllamaEmbeddings) -> `llama3.2` o modelo mas reciente
|
||||
|
||||
---
|
||||
|
||||
## 6. IMPORTANTE: MemoryVectorStore - import path cambiado
|
||||
|
||||
**Fichero**: `pages/rag/11.md:12`
|
||||
**Problema**:
|
||||
```typescript
|
||||
// ANTES (v0.3.x)
|
||||
import { MemoryVectorStore } from "langchain/vectorstores/memory";
|
||||
|
||||
// AHORA (v1.x)
|
||||
import { MemoryVectorStore } from "@langchain/classic/vectorstores/memory";
|
||||
```
|
||||
|
||||
**Nota**: En v1, `MemoryVectorStore` se ha movido a `@langchain/classic`. Requiere instalar: `npm install @langchain/classic`
|
||||
|
||||
---
|
||||
|
||||
## 7. IMPORTANTE: initChatModel - import path cambiado
|
||||
|
||||
**Fichero**: `pages/models/09.md:22`
|
||||
**Problema**:
|
||||
```typescript
|
||||
// ANTES (v0.3.x)
|
||||
import { initChatModel } from "@langchain/core/chat_models/universal";
|
||||
|
||||
// AHORA (v1.x)
|
||||
import { initChatModel } from "langchain";
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 8. IMPORTANTE: Document Loaders - import paths cambiados
|
||||
|
||||
**Fichero**: `pages/pending/06c.md`
|
||||
**Problema**: Los loaders que estaban en `langchain/` se han movido a `@langchain/classic/`:
|
||||
```typescript
|
||||
// ANTES
|
||||
import { DirectoryLoader } from "langchain/document_loaders/fs/directory";
|
||||
import { TextLoader } from "langchain/document_loaders/fs/text";
|
||||
|
||||
// AHORA
|
||||
import { DirectoryLoader } from "@langchain/classic/document_loaders/fs/directory";
|
||||
import { TextLoader } from "@langchain/classic/document_loaders/fs/text";
|
||||
```
|
||||
Los loaders de community (`PDFLoader`, `CSVLoader`) mantienen su path en `@langchain/community/...`.
|
||||
|
||||
---
|
||||
|
||||
## 9. IMPORTANTE: OllamaEmbeddings - import path
|
||||
|
||||
**Fichero**: `pages/rag/07.md:29`
|
||||
**Problema**:
|
||||
```typescript
|
||||
// ANTES
|
||||
import { OllamaEmbeddings } from "@langchain/community/embeddings/ollama";
|
||||
|
||||
// AHORA (paquete dedicado)
|
||||
import { OllamaEmbeddings } from "@langchain/ollama";
|
||||
```
|
||||
Requiere: `npm install @langchain/ollama`
|
||||
|
||||
---
|
||||
|
||||
## 10. MENOR: favicon en slides.md
|
||||
|
||||
**Fichero**: `slides.md:10`
|
||||
**Problema**: `favicon: https://js.langchain.com/v0.2/img/favicon.ico` - URL con referencia a v0.2
|
||||
**Correccion**: Actualizar a la URL actual de la documentacion: `https://docs.langchain.com/...` o usar favicon local
|
||||
|
||||
---
|
||||
|
||||
## 11. NUEVO CONCEPTO: Standard Content Blocks (v1)
|
||||
|
||||
**No existe en las slides actualmente.**
|
||||
**Relevancia**: Es una de las 3 mejoras principales de LangChain v1.
|
||||
|
||||
`contentBlocks` es una nueva propiedad en los mensajes que proporciona acceso unificado a features modernos de LLMs (reasoning tokens, imagenes, etc.) de forma estandarizada entre proveedores:
|
||||
|
||||
```typescript
|
||||
import { AIMessage } from "@langchain/core/messages";
|
||||
|
||||
// Los mensajes ahora tienen .contentBlocks para acceso tipado
|
||||
const reasoning = message.contentBlocks
|
||||
.filter((b) => b.type === "reasoning")
|
||||
.map((b) => b.reasoning);
|
||||
```
|
||||
|
||||
**Sugerencia**: Considerar anadir una slide en la seccion de mensajes (messages/) o en la seccion de agentes explicando este nuevo concepto.
|
||||
|
||||
---
|
||||
|
||||
## 12. NUEVO CONCEPTO: @langchain/classic
|
||||
|
||||
**No explicado en las slides.**
|
||||
En v1, la funcionalidad legacy se ha movido a `@langchain/classic`:
|
||||
- Legacy chains (LLMChain, ConversationChain)
|
||||
- Retrievers legacy
|
||||
- Hub module
|
||||
- MemoryVectorStore
|
||||
- Algunos document loaders
|
||||
|
||||
**Sugerencia**: Mencionar en la seccion de estructura/setup que en v1 existe este paquete para compatibilidad hacia atras.
|
||||
|
||||
---
|
||||
|
||||
## 13. MENOR: Modelos disponibles en providers (models/10.md)
|
||||
|
||||
**Fichero**: `pages/models/10.md`
|
||||
Los comentarios de modelos disponibles estan desactualizados:
|
||||
- OpenAI: `gpt-4o, gpt-4o-mini, gpt-4-turbo` -> `gpt-4.1, gpt-4.1-mini, gpt-5.2`
|
||||
- Google: `gemini-2.0-flash-exp, gemini-pro` -> `gemini-2.5-flash, gemini-2.5-flash-lite`
|
||||
- Anthropic: `claude-sonnet-4, claude-opus-4` -> `claude-sonnet-4-6, claude-opus-4-6`
|
||||
- Groq: `llama-3.1-70b, mixtral-8x7b` -> verificar disponibilidad actual
|
||||
- Ollama: `llama3.1:7b` -> `llama3.2:7b` o posterior
|
||||
|
||||
---
|
||||
|
||||
## 14. MENOR: Structured Output con createAgent (v1 mejora)
|
||||
|
||||
**Ficheros**: Los slides de structured output ya cubren `withStructuredOutput()` correctamente.
|
||||
**Novedad v1**: En `createAgent`, structured output ahora se genera en el loop principal (sin llamada LLM adicional) via `responseFormat`:
|
||||
|
||||
```typescript
|
||||
import { createAgent } from "langchain";
|
||||
import * as z from "zod";
|
||||
|
||||
const agent = createAgent({
|
||||
model: "gpt-4.1-mini",
|
||||
tools: [getWeather],
|
||||
responseFormat: z.object({
|
||||
temperature: z.number(),
|
||||
condition: z.string(),
|
||||
}),
|
||||
});
|
||||
const result = await agent.invoke({ messages: [...] });
|
||||
console.log(result.structuredResponse);
|
||||
```
|
||||
|
||||
**Sugerencia**: Verificar si esto ya esta cubierto en las slides de agents/structured output.
|
||||
|
||||
---
|
||||
|
||||
## 15. MENOR: URLs de documentacion desactualizadas
|
||||
|
||||
**Ficheros afectados**:
|
||||
- `pages/models/11.md` - enlace `js.langchain.com/docs/integrations/chat`
|
||||
- `pages/models/13.md` - enlace `js.langchain.com/docs/integrations/tools`
|
||||
- `pages/rag/29.md` - enlace `js.langchain.com/docs/tutorials/rag`
|
||||
- `pages/pending/09.md` - enlace `js.langchain.com/docs`
|
||||
|
||||
**Problema**: Las URLs antiguas `js.langchain.com/docs/...` han cambiado a `docs.langchain.com/oss/javascript/...`
|
||||
**Correccion**:
|
||||
- `js.langchain.com/docs/integrations/chat` -> `docs.langchain.com/oss/javascript/integrations/chat`
|
||||
- `js.langchain.com/docs/integrations/tools` -> `docs.langchain.com/oss/javascript/integrations/tools`
|
||||
- `js.langchain.com/docs/tutorials/rag` -> `docs.langchain.com/oss/javascript/langchain/rag`
|
||||
- `js.langchain.com/docs` -> `docs.langchain.com/oss/javascript`
|
||||
|
||||
---
|
||||
|
||||
## 16. MENOR: Precios y modelos en setup/04.md
|
||||
|
||||
**Fichero**: `pages/setup/04.md`
|
||||
**Problema**: La tabla de comparativa dice "Enero 2025" y lista modelos desactualizados:
|
||||
- "GPT-4o" -> "GPT-4.1" (o posterior)
|
||||
- "Gemini 2.0 Flash" -> "Gemini 2.5 Flash"
|
||||
- "Claude 4 Sonnet" -> modelo actual
|
||||
- Precios probablemente han cambiado
|
||||
|
||||
**Accion**: Actualizar la tabla con modelos y precios actuales (marzo 2026)
|
||||
|
||||
---
|
||||
|
||||
## 17. MENOR: setup/07.md modelos recomendados para produccion
|
||||
|
||||
**Fichero**: `pages/setup/07.md`
|
||||
**Problema**: Recomienda "Claude 4 Sonnet o GPT-4o" para produccion. Los nombres de modelo deberian reflejar los ultimos disponibles.
|
||||
|
||||
---
|
||||
|
||||
## 18. MENOR: Modelos Ollama en setup/09.md
|
||||
|
||||
**Fichero**: `pages/setup/09.md`
|
||||
**Problema**: Referencia a "Llama 3.1 7B/13B/70B" en la tabla de hardware. Llama 3.2 ya esta disponible y setup/14.md ya lo usa correctamente.
|
||||
|
||||
---
|
||||
|
||||
## 19. MENOR: Modelos en agents/ y alternatives/ desactualizados
|
||||
|
||||
**Ficheros afectados**:
|
||||
- `pages/agents/05.md:17` y `pages/agents/06.md:31` - usan `claude-sonnet-4-5-20250929`
|
||||
- `pages/alternatives/06.md:40` - usa `claude-sonnet-4-20250514` en ejemplo de Anthropic SDK nativo
|
||||
- `pages/alternatives/06.md:22` - usa `gpt-4o` en ejemplo de OpenAI SDK nativo
|
||||
- `pages/alternatives/07.md:15` - usa `gpt-4o` en Assistants API
|
||||
- `pages/alternatives/07.md:32` - usa `gemini-2.0-flash` en Google GenAI SDK
|
||||
|
||||
**Correccion**: Actualizar nombres de modelos a los ultimos disponibles (ver punto 5)
|
||||
|
||||
---
|
||||
|
||||
## NOTA POSITIVA: Secciones ya actualizadas a v1
|
||||
|
||||
Las siguientes secciones **ya estan correctamente actualizadas** para LangChain v1:
|
||||
- **agents/** (01-23): Usa `createAgent`, middleware, `humanInTheLoopMiddleware`, etc.
|
||||
- **messages/** (01-11): `ChatPromptTemplate`, `MessagesPlaceholder`, `SystemMessage` siguen siendo validos
|
||||
- **introduction/06.md**: Ya menciona "LangChain (v1)"
|
||||
- **langsmith/05.md**: Ya usa `createAgent` de `"langchain"`
|
||||
|
||||
---
|
||||
|
||||
## Resumen de prioridades
|
||||
|
||||
### Criticos (el curso no funciona correctamente sin estos cambios)
|
||||
1. Actualizar version numbers en setup/03.md (v0.3.x -> v1.x)
|
||||
2. Actualizar `@langchain/google-genai` a `@langchain/google` en multiples ficheros
|
||||
3. Reemplazar `createReactAgent` por `createAgent` en models/15.md y models/16.md
|
||||
4. Actualizar import de `MemoryVectorStore` en rag/11.md
|
||||
5. Actualizar import de `initChatModel` en models/09.md
|
||||
6. Anadir `@langchain/classic` a la arquitectura de paquetes
|
||||
|
||||
### Importantes (el codigo funciona pero con warnings/deprecaciones)
|
||||
7. Actualizar nombres de modelos (gpt-4o-mini -> gpt-4.1-mini, etc.)
|
||||
8. Actualizar imports de document loaders en pending/06c.md
|
||||
9. Actualizar OllamaEmbeddings import path en rag/07.md
|
||||
|
||||
### Menores / Mejoras
|
||||
10. Actualizar favicon URL en slides.md
|
||||
11. Considerar anadir slide sobre Standard Content Blocks
|
||||
12. Actualizar lista de modelos en models/10.md
|
||||
13. Mencionar @langchain/classic en el modulo de estructura
|
||||
14. Documentar responseFormat en createAgent
|
||||
15. Actualizar URLs de documentacion (js.langchain.com -> docs.langchain.com)
|
||||
16. Actualizar tabla de precios/modelos en setup/04.md
|
||||
17. Actualizar modelos recomendados en setup/07.mdhttps://docs.langchain.com/oss/javascript/langchain/messages
|
||||
18. Actualizar modelos Ollama en setup/09.md
|
||||
Reference in New Issue
Block a user