Skip to content

AI engine for food recognition - UNRC 2024 project

Notifications You must be signed in to change notification settings

joaquinmezzano/CookingWithAI

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

🍰 Cooking With AI

🚧 Proyecto en desarrollo
Este proyecto NO está finalizado en su totalidad. ¡Mantente al tanto para futuras actualizaciones y mejoras!


👥 Equipo de desarrollo

  • Bavera, Guillermo
  • Bricco, Matias
  • Conti, Bruno
  • Gonzalez, Juan Cruz
  • Mezzano, Joaquin
  • Vollenweider, Erich

📖 Descripción

Cooking With AI utiliza inteligencia artificial para analizar imágenes de ingredientes alimenticios, identificarlos y generar recetas basadas en ellos. A través del procesamiento de imágenes y modelos de lenguaje, el sistema puede reconocer ingredientes en una foto y sugerir recetas que los incluyan. ¡Así, puedes crear platos deliciosos y adaptados a los ingredientes que ya tienes en casa! 🥕🍅🍲

💡 Motivación

Este proyecto surge de la necesidad de:

  • Facilitar la planificación de comidas
  • Reducir el desperdicio alimentario

Muchas personas tienen ingredientes en casa, pero no siempre saben cómo combinarlos. Esta aplicación simplifica la creación de recetas, promoviendo una alimentación creativa y evitando que los alimentos se desperdicien. ♻️

🎯 Objetivo

El objetivo de Cooking With AI es desarrollar una aplicación que permita a los usuarios:

  • Obtener sugerencias de recetas a partir de los ingredientes detectados en imágenes
  • Aprovechar técnicas de IA como el reconocimiento de imágenes para ofrecer soluciones prácticas

🔧 Tecnologías utilizadas


🚀 Instalación (Linux)

Nota: todos los pasos siguientes deben ejecutarse en la terminal.

1. Actualizar el sistema

sudo apt update && sudo apt upgrade

2. Instalar las dependencias necesarias

🧰 Ollama

curl -fsSL https://ollama.com/install.sh | sh

🐍 Python

sudo apt install python3 python3-venv python3-pip

📦 Node.js

curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs

3. Instalar el modelo Gemma2 de Ollama

ollama pull gemma2:2b

4. Clonar el repositorio

Elige la ubicación donde deseas el proyecto y ejecuta:

git clone https://github.com/erichvollenweider/CookingWithAI.git

5. Crear el entorno virtual

cd /ruta/CookingWithAI/server
python3 -m venv .venv

6. Configurar el entorno virtual

source .venv/bin/activate
pip install -r requirements.txt
deactivate  # Salida del entorno virtual

7. Instalar dependencias del cliente (React)

En otra terminal, accede al cliente:

cd /ruta/CookingWithAI/client
npm install

🏁 Ejecucción del Proyecto

1. Iniciar el servidor de Ollama

Deja esta terminal abierta:

ollama serve

2. Iniciar el servidor de Python

En otra terminal:

source .venv/bin/activate
python3 app.py

💡 ¿Deseas habilitar el RAG? Ve a la seccion Habilitar RAG para activar esta funcionalidad y luego regresa a este paso para continuar con la ejecución estándar.

3. Iniciar el servidor de React

En una tercera termina, ejecuta el cliente:

npm run dev  # Ejecución en localhost
npm run dev -- --host  # Ejecución en localhost y red

🌐 Acceder a la aplicacción

Abre tu navegador e ingresa la dirección IP proporcionada en la consola de NPM. ¡Estás listo para explorar Cooking With AI! 🎉

🔎 Habilitar RAG

El RAG (Retrieval-Augmented Generation) permite integrar capacidades avanzadas de recuperación de información para enriquecer las respuestas de Gemma2 con datos específicos, en este caso para dar recetas argentinas.

Pasos para activar el RAG:

1. Descargar el modelo adicional de embeddings:

ollama pull nomic-embed-text

2. Ejecutar el archivo encargado de generar la base de datos con los embeddings:

python3 gemma2_rag.py

3. Regresa a la seccion Iniciar el servidor de Python para continuar con la configuración estándar.

About

AI engine for food recognition - UNRC 2024 project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 87.7%
  • JavaScript 4.6%
  • CSS 4.3%
  • Python 3.4%