Este repositorio contiene un chatbot avanzado creado con la API de OpenAI que aprovecha la memoria a largo plazo, la lógica avanzada, las integridades y las bases de datos para proporcionar una experiencia de usuario verdaderamente única. A diferencia de los chatbots tradicionales que simplemente responden a la entrada del usuario en función de las reglas o scripts predefinidos, este chatbot puede recordar lo que dijo en conversaciones anteriores y construir sobre ese conocimiento para proporcionar respuestas más personalizadas y relevantes.
Las capacidades lógicas avanzadas del chatbot también significan que puede manejar conversaciones más complejas y proporcionar respuestas más matizadas, lo que hace sentir que estás chateando con una persona real. Además, el chatbot utiliza integridades y bases de datos para lograr una memoria a largo plazo, lo que le permite retener información de conversaciones anteriores y utilizar esa información para informar interacciones futuras.
Para garantizar una experiencia de usuario segura, el chatbot también incluye la autenticación Know-Your-Customer (KYC) a través del inicio de sesión de Google. Esta característica verifica la identidad de los usuarios y ayuda a prevenir el fraude y el abuso.
Una de las características clave de este chatbot son sus indicaciones flexibles. Por ejemplo, el mensaje predeterminado está diseñado para hacer que el chatbot actúe como un maestro italiano, pero puede modificar fácilmente el indicador para que se ajuste a cualquier otro caso de uso que tenga en cuenta. Esto hace que el chatbot sea altamente versátil y adaptable a una amplia gama de casos de uso.
Utiliza el último modelo (GPT-3.5-TURBO) de API de OpenAI para el procesamiento avanzado del lenguaje natural
Memoria a largo plazo lograda a través de incrustaciones y bases de datos
Las indicaciones flexibles permiten una fácil personalización para adaptarse a cualquier caso de uso
Las capacidades lógicas avanzadas permiten conversaciones más complejas y respuestas matizadas
La autenticación de KYC a través de Google Login garantiza una experiencia de usuario segura
Se puede integrar fácilmente en varias aplicaciones y plataformas
Si está buscando un chatbot que vaya más allá de los simples scripts y reglas, y pueda proporcionar una experiencia de usuario más personalizada y atractiva al tiempo que mantiene la seguridad de la información del usuario, este chatbot con AI con memoria a largo plazo, lógica avanzada y autenticación de KYC es la solución perfecta!

Para usar el chatbot, primero deberá clonar este repositorio a su máquina local. Puede hacer esto ejecutando el siguiente comando en su terminal:
git clone https://github.com/FaustoNisida/AI-Chatbot-Long-Term-Memory thefolderofyourchoise
cd thefolderofyourchoise
A continuación, deberá instalar todas las dependencias para las aplicaciones del cliente y el servidor. Para hacer esto, primero navegue al directorio del cliente en su terminal:
cd client
Luego, ejecute el siguiente comando para instalar las dependencias del cliente:
npm install --force
Tenga en cuenta que el indicador --force puede ser necesario si encuentra algún error durante el proceso de instalación.
A continuación, navegue al directorio del servidor en su terminal:
cd ../server
Luego, ejecute el siguiente comando para instalar las dependencias del servidor:
npm install
Después de instalar las dependencias, deberá crear un archivo .env en los directorios del cliente y el servidor que contiene las siguientes variables ambientales:
OPENAI_API_KEY=<youropenaiapikey>
Crea tu tecla OpenAI aquí
API_KEY=<yourcustomapikeyforaccessingtheserver>
Puede colocar la contraseña o clave de su elección en el campo API_KEY .
VITE_Api_Key=<yourcustomapikeyforaccessingtheserver>
VITE_Google_Client_id=<yourgoogleclientid>
Cree un proyecto y luego una ID de cliente de Google aquí
Para garantizar que su ID de cliente de Google esté configurada correctamente, es esencial incluir los siguientes orígenes durante el proceso de creación:
Orígenes autorizados de JavaScript:
Redirección autorizada URI:


En el campo VITE_Api_Key debe colocar la misma contraseña o clave que colocó en la variable Enviromental API_KEY del archivo .env archivo.
Ahora está listo para usar la aplicación
Abra una ventana de terminal.
Navegue al directorio del servidor ejecutando el cd server de comando.
Inicie el servidor ejecutando el comando npm run server .
El servidor ahora se ejecuta en http: // localhost: 3000
Por defecto, el chatbot está configurado para actuar como un maestro italiano. Sin embargo, puede modificar fácilmente el indicador para que se ajuste a cualquier otro caso de uso que tenga en mente. Simplemente edite el indicador en la línea 97 del archivo index.js en el directorio del servidor para incluir el mensaje deseado .
Abra una segunda ventana de terminal, sin cerrar el terminal donde actualmente ejecuta el cliente .
Navegue al directorio del cliente ejecutando el cd client de comando.
Inicie el cliente ejecutando el comando npm run dev .
El cliente y el servidor ahora se están ejecutando y puede acceder a la aplicación visitando http: // localhost: 5173 en su navegador web.
¡Disfruta del uso!
Se recomienda almacenar los incrustaciones y las entradas y salidas asociadas con las de una base de datos que admite la búsqueda de vectores, como Weaviate o Pinecone. Si bien los archivos JSON locales (como utilicé para este proyecto por el tiempo del tiempo) se pueden usar como una base de datos para proyectos o creación de prototipos a pequeña escala, es una mejor práctica usar bases de datos especializadas cuando se trata de incrustaciones y datos asociados.
Al almacenar los incrustaciones y los datos asociados en una base de datos de búsqueda vectorial, puede buscar y recuperar fácilmente información relevante cuando sea necesario, sin tener que confiar en consultas de base de datos más complejas y lentas. Esto puede mejorar significativamente la velocidad general y la eficiencia del chatbot, lo que resulta en una mejor experiencia del usuario.
Tenga en cuenta que, si bien estas bases de datos pueden ofrecer beneficios significativos, también pueden requerir una configuración y mantenimiento adicionales en comparación con las bases de datos tradicionales. Considere sus necesidades y recursos específicos antes de decidir usar una base de datos de búsqueda vectorial.
Si desea contribuir a este proyecto, no dude en enviar una solicitud de extracción con sus cambios propuestos. Agradecemos todas las contribuciones, incluidas las correcciones de errores, las nuevas características y las mejoras en la documentación.
Si tiene alguna pregunta o comentarios sobre este proyecto, no dude en comunicarse con nosotros:
Nos encantaría saber de usted y estamos felices de ayudar con cualquier problema que pueda encontrar.