0aff31e2d3
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
34 lines
776 B
Markdown
34 lines
776 B
Markdown
---
|
|
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);
|
|
```
|