File size: 3,294 Bytes
b00385f 5350122 0914710 b00385f 0914710 b00385f 0914710 fcb8c81 0914710 fcb8c81 0914710 fcb8c81 0914710 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
---
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)
|