---
layout: default
---

# RAG completo: Búsqueda + Generación

```typescript
import { ChatOpenAI } from "@langchain/openai";
import { PromptTemplate } from "@langchain/core/prompts";

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");

// Crear prompt con contexto
const prompt = PromptTemplate.fromTemplate(`
Responde la pregunta basándote SOLO en el siguiente contexto:

Contexto:
{contexto}

Pregunta: {pregunta}

Respuesta:`);

const chain = prompt.pipe(llm);
const respuesta = await chain.invoke({ contexto, pregunta });

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