Esta aplicación facilita un chatbot aprovechando Next.js como interfaz y FastAPI como backend, utilizando el poder de LangChain para interacciones web dinámicas.
La aplicación integra el servidor Python/FastAPI en la aplicación Next.js bajo la ruta /api/
. Esto se logra mediante reescrituras next.config.js
, dirigiendo cualquier solicitud /api/:path*
al servidor FastAPI ubicado en la carpeta /api
. Localmente, FastAPI se ejecuta en 127.0.0.1:8000
, mientras que en producción funciona como funciones sin servidor en Vercel.
npm install
.env
con su clave API de OpenAI: OPENAI_API_KEY=[your-openai-api-key]
npm run dev
Para pruebas solo de backend:
conda create --name nextjs-fastapi-your-chat python=3.10
conda activate nextjs-fastapi-your-chat
pip install -r requirements.txt
uvicorn api.index:app --reload
Las opciones para preservar el historial de chat incluyen:
RAG (Retrieval Augmented Generation) mejora los modelos de lenguaje con contexto recuperado de una base de conocimiento personalizada. El proceso implica recuperar documentos HTML, dividirlos en fragmentos y vectorizarlos utilizando modelos de incrustación como el de OpenAI. Estos datos vectorizados forman un almacén de vectores, lo que permite búsquedas semánticas basadas en consultas de los usuarios. Los fragmentos relevantes recuperados se utilizan luego como contexto para el modelo de lenguaje, formando una respuesta integral a las consultas de los usuarios.
La función get_vectorstore_from_url
extrae y procesa texto de una URL determinada, mientras que get_context_retriever_chain
forma una cadena que recupera el contexto relevante para todo el historial de conversaciones. Este enfoque de canalización garantiza que las respuestas sean precisas y conscientes del contexto.