alessandro trinca tornidor
[refactor] rename samgis module tosamgis_lisa_on_cuda, bump to version 1.3.0, update samgis and lisa_on_cuda dependencies
fcb8c81
| title: SamGIS - LISA on CUDA | |
| emoji: 🗺️ | |
| colorFrom: red | |
| colorTo: blue | |
| sdk: docker | |
| pinned: false | |
| license: mit | |
| ## Segment Anything models | |
| It's possible to prepare the model files using https://github.com/vietanhdev/samexporter/ or using the ones | |
| from https://huggingface.co/aletrn/sam-quantized (copy them within the folder `/machine_learning_models`). | |
| ## SamGIS - HuggingFace version | |
| The SamGIS HuggingSpace url is https://huggingface.co/spaces/aletrn/samgis-lisa-on-cuda. | |
| Build the docker image this way: | |
| ```bash | |
| # clean any old active containers | |
| docker stop $(docker ps -a -q); docker rm $(docker ps -a -q) | |
| # build the base docker image from the repository root folder using ARGs: | |
| # - DEPENDENCY_GROUP=fastapi used by poetry | |
| # VITE__MAP_DESCRIPTION, VITE__SAMGIS_SPACE used by 'docker build' | |
| ( | |
| set -o allexport && source <(cat ./static/.env|grep VITE__) && set +o allexport; | |
| env|grep VITE__; | |
| docker build . -f dockerfiles/dockerfile-samgis-base --progress=plain \ | |
| --build-arg DEPENDENCY_GROUP=fastapi \ | |
| --build-arg VITE__MAP_DESCRIPTION=${VITE__MAP_DESCRIPTION} \ | |
| --build-arg VITE__SAMGIS_SPACE=${VITE__SAMGIS_SPACE} \ | |
| --tag registry.gitlab.com/aletrn/gis-prediction | |
| ) | |
| # build the image, use the tag "samgis-huggingface" | |
| docker build . --tag example-docker-namespace/samgis-huggingface --progress=plain | |
| ``` | |
| Run the container (keep it on background) and show logs | |
| ```bash | |
| docker run -d --name samgis-huggingface -p 7860:7860 example-docker-namespace/samgis-huggingface; docker logs -f samgis-huggingface | |
| ``` | |
| Test it with curl using a json payload: | |
| ```bash | |
| URL=http://localhost:7860/infer_samgis | |
| curl -d@./events/payload_point_eolie.json -H 'accept: application/json' ${URL} | |
| ``` | |
| or better visiting the swagger page on http://localhost:7860/docs | |
| ### Dependencies installation and local tests | |
| The docker build process needs only the base dependency group plus the `aws_lambda` or `fastapi` optional one. | |
| Install also the `test` and/or `docs` groups if needed. | |
| ### Tests | |
| Tests are defined in the `tests` folder in this project. Use PIP to install the test dependencies and run tests. | |
| ```bash | |
| python -m pytest --cov=samgis_lisa_on_cuda --cov-report=term-missing && coverage html | |
| ``` | |
| ### How to update the static documentation with sphinx | |
| This project documentation uses sphinx-apidoc: it's a tool for automatic generation of Sphinx sources that, using the autodoc | |
| extension, document a whole package in the style of other automatic API documentation tools. See the | |
| [documentation page](https://www.sphinx-doc.org/en/master/man/sphinx-apidoc.html) for details. | |
| Run the command from the project root: | |
| ```bash | |
| # missing docs folder (run from project root) initialize this way | |
| cd docs && sphinx-quickstart -p SamGIS -r 1.0.0 -l python --master index | |
| # update docs folder (from project root) | |
| sphinx-apidoc -f -o docs samgis | |
| ``` | |
| Then it's possible to generate the HTML pages | |
| ```bash | |
| cd docs && make html && ../ | |
| # to clean old files | |
| cd docs && make clean html && cd ../ | |
| ``` | |
| The static documentation it's now ready at the path `docs/_build/html/index.html`. | |
| To create a work in progress openapi json or yaml file use | |
| - `extract-openapi-fastapi.py` | |
| - `extract-openapi-lambda.py` (useful to export the json schema request and response from lambda app api) | |