The AI project to assess the vegetables health.
- Bean;
- Potato;
- Tomato;
- Rice.
We are using models from Kaggle.
You can get a Gemini API key in this link.
Create a .env
file in the root folder with content:
CLOUD_STORAGE_URL_PREFIX=https://URL_TO_YOUR_STORAGE_DOMAIN/
FLASK_PORT=5001
GEMINI_API_KEY=YOUR_API_KEY_HERE
FLASK_ENV=production
Download the best_tomato_leaf_inceptionV3_256.h5 and best_rice_leaf.h5, into the constants/weights directory.
Use pip install -U -r requirements.txt
to install dependencies.
Use ./download_models.sh
to download the trained models
If want to use self-certificates, run the next script to build them.
Run ./generate_certificates.sh
NOTE: In production the cloud provider would set these on your behalf enabling HTTPS
Run python3 app.py
to start project.
The https://API_URL:PORT/predict
should be used for the POST API calls
Following an example of the API body request
{
"model_type": "rice_leaf",
"content_url": "https://techwarriors-objectstorage-test.s3.us-south.cloud-object-storage.appdomain.cloud/brownspotDSC_0100.jpg"
}
Run the directory tests, if in PyCharm .it will execute all files with application running.
Running in CLI, run the pytest
command on the project directory.
NOTE: Ensure to set the
PYTHONPATH
first to make pytest localize theapp
. In Linux OS try:export PYTHONPATH=.
- Unit tests;
- Create a REST API to use this code;
- Kaggle explains;
- Tests describe how to execute;
- Deploy project in VPS;
- Validation URL from back-end with prefix in DNS of cloud (Jorge);
- ChatGPT return with data structured;
- Create all tests with different models;
- Search new tomato models in Kaggle;
- Integrated responses with ChatGPT;
- Upload vegetable images in cloud (Jorge);
- Configure CORS.