Chat With LLMs es una aplicación web que permite a los usuarios chatear con varios modelos de lenguajes grandes (LLM) de los principales proveedores de inteligencia artificial. Permite a los usuarios cambiar de modelo en mitad de una conversación sin perder el contexto del chat.
Este proyecto integra la generación de texto basada en API utilizando varios modelos de lenguaje grande (LLM). El marco utilizado para orquestar estas interacciones es LangChain, que permite una integración perfecta y una selección dinámica de modelos entre diferentes proveedores.
Actualmente, la plataforma admite seis proveedores LLM distintos, cada uno de los cuales ofrece una variedad de modelos de chat:
esos son
Autenticación : la aplicación web utiliza Google OAuth 2.0 para la autenticación e inicio de sesión seguros del usuario.
Servidor backend : los mensajes de los usuarios se procesan y las respuestas de los LLM se generan utilizando el marco FastAPI de Python. El backend también integra el marco LangChain, que es responsable de la generación rápida y la gestión de llamadas API a diferentes proveedores de LLM.
Transmisión de eventos : los eventos enviados por el servidor (SSE) son un estándar para la comunicación unidireccional en tiempo real desde un servidor a un cliente a través de HTTP. Con SSE, el servidor puede enviar los datos generados token por token al cliente sin que el cliente tenga que solicitarlos repetidamente.
Base de datos de Firestore : la información del usuario, los detalles del chat y el historial del chat se almacenan en la base de datos de Firestore de Google. Se elige Firestore por su nivel gratuito, alto rendimiento y capacidades de escalamiento automático, lo que lo hace ideal para aplicaciones dinámicas y en crecimiento.
Frontend de ReactJS : el frontend está construido con ReactJS, lo que proporciona una interfaz de usuario interactiva y responsiva para una interacción perfecta con la aplicación de chat.
Haga una copia del archivo .env.example
y cámbiele el nombre a .env
:
cp .env.example .env # For Unix/Linux
copy .env.example .env # For Windows
Abra el archivo .env
en un editor de texto e ingrese las variables necesarias con sus valores correspondientes. Estas variables suelen ser claves API y otras configuraciones específicas del entorno.
docker-compose up
Todos los servicios estarán funcionando en los siguientes puertos:
Backend FastAPI : localhost:8080
ReactJS Frontend : localhost:3000
pip install pipenv
pipenv install
nodemon
or
uvicorn app:app --port 5000
cd web
npm install
npm start
Acceda a los documentos de swagger utilizando el siguiente enlace
http://localhost:8080/docs