---
layout: default
---

# Paso 4: RAG - Búsqueda + Generación

```typescript
import { ChatOpenAI } from "@langchain/openai";
import { HumanMessage, SystemMessage } from "@langchain/core/messages";

const llm = new ChatOpenAI({ model: "gpt-4.1-mini" });

// Buscar contexto relevante
const pregunta = "¿Cómo resetear la contraseña?";
const docs = await vectorStore.similaritySearch(pregunta, 3);
const contexto = docs.map(d => d.pageContent).join("\n\n");

// Generar respuesta con contexto
const respuesta = await llm.invoke([
  new SystemMessage(
    `Responde basándote SOLO en este contexto:\n\n${contexto}`
  ),
  new HumanMessage(pregunta),
]);

console.log(respuesta.content);
```

<v-click>

<div class="mt-4 p-3 bg-purple-500/10 rounded text-sm">

Esto es RAG: **recuperar** contexto relevante y pasárselo al LLM para que **genere** la respuesta

</div>

</v-click>
