Skip to content

Nekzus/frontend-backend-chat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Palermo Sushi ChatBot (Agent AI)

Palermo Sushi Chatbot

Este es el repositorio principal del proyecto Palermo Sushi ChatBot, un sistema que integra un backend y un frontend para un chatbot de restaurante de sushi. El chatbot está diseñado para facilitar la interacción con los clientes, permitiéndoles explorar el menú, realizar pedidos y obtener respuestas a sus consultas de manera conversacional.

Para más detalles sobre cada parte del proyecto, consulte los archivos README.md en los directorios backend y frontend.

🤖 Funcionamiento

El proyecto se divide en dos partes principales: un backend y un frontend. El backend utiliza inteligencia artificial para procesar las consultas de los clientes y proporcionar respuestas relevantes. El frontend proporciona una interfaz de usuario para que los clientes interactúen con el chatbot.

  1. 💬 Interacción del Cliente: El cliente envía un mensaje al chatbot a través del frontend.
  2. 📡 Comunicación con el Backend: El frontend envía el mensaje al backend.
  3. 🧠 Procesamiento del Mensaje: El backend recibe el mensaje y lo procesa mediante un modelo de lenguaje. Este modelo analiza el significado del mensaje y determina la acción a realizar.
  4. ⚙️ Acciones del Chatbot: El chatbot puede ejecutar diversas acciones, tales como:
    • 🔍 Búsqueda de ítems del menú, incluyendo una búsqueda semántica para encontrar platos basados en su significado y contexto.
    • 🛒 Adición de ítems al carrito de compras.
    • 📦 Consulta del estado de un pedido.
    • ℹ️ Respuesta a preguntas sobre el restaurante.
  5. 🗣️ Respuesta al Cliente: El backend genera una respuesta basada en la acción realizada y la envía al frontend.
  6. 📱 Presentación de la Respuesta: El frontend recibe la respuesta y la muestra al cliente.

🛠️ Tecnologías Clave

Este proyecto utiliza las siguientes tecnologías principales:

  • Node.js: Entorno de ejecución para JavaScript en el servidor.
  • TypeScript: Lenguaje de programación que añade tipado estático a JavaScript.
  • Express.js: Framework para la creación de aplicaciones web y APIs en Node.js.
  • MongoDB: Base de datos NoSQL para el almacenamiento de datos.
  • MongoDB Atlas Vector Search: Servicio de búsqueda vectorial para la búsqueda semántica.
  • OpenAI API: API para el procesamiento del lenguaje natural y la generación de texto.
  • Langchain: Framework para el desarrollo de aplicaciones basadas en modelos de lenguaje.
    • LangGraph: Componente de Langchain para la definición de flujos de conversación.
  • Vite: Herramienta de construcción para el frontend.
  • React: Biblioteca para la creación de interfaces de usuario.

🚀 Ejecución Local

Para ejecutar este proyecto en su entorno local, siga los siguientes pasos:

  1. ⬇️ Clonación del repositorio:

    git clone [email protected]:Nekzus/frontend-backend-chat.git
    cd frontend-backend-chat
  2. 📦 Instalación de dependencias: Asegúrese de tener instalado Node.js y un gestor de paquetes (npm o pnpm). Ejecute el siguiente script rápido:

    npm install && npm run install-all
  3. ⚙️ Configuración de variables de entorno: Cree un archivo .env en la raíz del proyecto back-end y copie el contenido de .env.example, ajustando los valores según su configuración local (idem para front-end). Se requiere:

    • 🔗 Una URI de MongoDB para la base de datos.
    • 🔑 Una clave secreta para JWT.
    • 🔑 Una clave de API de OpenAI.
    • 🚪 Un puerto para el servidor.

    Ejemplo de .env:

    MONGODB_URI=mongodb://localhost:27017/palermo-sushi
    JWT_SECRET=your-secret-key
    OPENAI_API_KEY=your-openai-api-key
    PORT=3000
    
  4. 🚀 Inicio del servidor y el frontend: Ejecute el siguiente comando para iniciar el servidor y el frontend en modo desarrollo:

    npm run dev
  5. 🌐 Acceso a la aplicación: Una vez que el servidor y el frontend estén en funcionamiento, la aplicación estará accesible a través de la URL que se mostrará en la consola (normalmente http://localhost:5173).

    Usuario de prueba (o registrar un nuevo usuario):

  6. 📚 Documentación de la API: La documentación de la API está disponible en la ruta /api-docs del backend (por ejemplo, http://localhost:3000/api-docs).

  7. 🌱 Opcional: Sembrado de la base de datos: Para inicializar la base de datos con datos de prueba, ejecute el siguiente comando en la carpeta back-end:

    npm run seed
  8. 🔍 Configuración de la búsqueda semántica: Para habilitar la búsqueda semántica del menú, siga estos pasos en su base de datos de MongoDB Atlas llamada palermo_sushi:

    1. Acceda a la sección "Atlas Search" en el panel de MongoDB Atlas.
    2. Cree un nuevo índice denominado vector_index.
    3. Seleccione el tipo de índice "vector search".
    4. Asigne este índice a la colección menu.
    5. Utilice el "JSON editor" para configurar el índice y pegue la siguiente configuración de campo:
      {
         "fields": [
            {
               "numDimensions": 1536,
               "path": "embedding",
               "similarity": "cosine",
               "type": "vector"
            }
         ]
      }

⏭️ Próximos Pasos

Este repositorio contiene tanto el backend como el frontend del chatbot de Palermo Sushi. Asegúrese de ejecutar ambos componentes para una experiencia completa.

Espero que este proyecto sea de utilidad para su propósito.

About

frontend-backend-chat

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published