RAG Multitenant Dos flujos:
Front End: Crear producto nuevoCopy code
httt://localhost:3000/products/add
src/app/products/add/page.tsx
Componente Cliente (Formulario crea producto)
src/components/doc-upload-form.tsx
Server Action:
src/lib/actions/product.ts
- Validación del esquema del formulario
- Creación de Slug para el nombre
- Cargar documento e imagen a s3 (URL prefirmada)
- Crear producto en el esquema de la base de datos (Prisma)
- Vectorizar e indexar el doc File
Insertar Archivo de Documento
src/lib/pinecone-utils.ts
Para integrar un LLM con una aplicación Next.js, particularmente cuando se trata de una pantalla de chat que envía y recibe respuestas de una cadena de LangChain, es necesario seguir un proceso específico. Así es como funciona:
-
Componente Cliente: La pantalla de chat debe ser un componente cliente porque utilizará varios hooks de React, incluido el hook
useChat
. -
Hook useChat: El hook
useChat
es responsable de enviar los mensajes del usuario (prompts) a un manejador de rutas. Este manejador es donde reside el Runnable de LangChain para la Generación Aumentada por Recuperación (RAG). -
Manejo de Mensajes: Cuando un usuario envía un mensaje, el hook
useChat
empaqueta el historial de mensajes, incluyendo el último mensaje de chat, y lo envía al manejador de rutas. -
Proceso de Cadena RAG:
- La cadena RAG recibe el mensaje prompt junto con el historial de mensajes.
- Realiza una búsqueda semántica para reunir el contexto relevante basado en el prompt.
- La RAG luego combina el mensaje prompt con el contexto recuperado y utiliza esta información para alimentar al Modelo de Lenguaje (LLM).
-
Respuesta en Streaming: El LLM procesa la entrada y genera una respuesta en streaming.
-
Actualización de la Interfaz: El hook
useChat
o un componente de UI de un SDK de IA sabe cómo convertir la respuesta en streaming en texto, que luego se muestra directamente en la pantalla de chat como la respuesta del LLM.