0aff31e2d3
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
38 lines
882 B
Markdown
38 lines
882 B
Markdown
---
|
|
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>
|