samgis / README.md
aletrn's picture
[doc] update README.md, merge history from huggingface
a198d62
|
raw
history blame
3.42 kB
metadata
title: SamGIS
emoji: 🗺️
colorFrom: red
colorTo: blue
sdk: docker
pinned: false
license: mit

SamGIS - HuggingFace version

Build the docker image this way:

# clean any old active containers
docker stop $(docker ps -a -q); docker rm $(docker ps -a -q)

# build the base docker image with the ARG DEPENDENCY_GROUP=fastapi used by poetry
docker build . -f dockerfiles/dockerfile-samgis-base --build-arg DEPENDENCY_GROUP=fastapi --tag localhost/samgis-base-fastapi --progress=plain

# build the image, use the tag "samgis-huggingface"
docker build . --tag localhost/samgis-huggingface --progress=plain

Run the container (keep it on background) and show logs

docker run  -d --name samgis-huggingface -p 7860:7860 localhost/samgis-huggingface; docker logs -f samgis-huggingface

Test it with curl:

curl -X 'POST' \
  'http://localhost:7860/infer_samgeo' \
  -H 'accept: application/json' \
  -d '{}'

or better visiting the swagger page on http://localhost:7860/docs

SamGIS - lambda AWS version

Build the docker image this way:

# clean any old active containers
docker stop $(docker ps -a -q); docker rm $(docker ps -a -q)

# build the base docker image with the docker aws repository tag
docker build . -f dockerfiles/dockerfile-samgis-base --build-arg DEPENDENCY_GROUP=aws_lambda --tag localhost/samgis-base-aws-lambda --progress=plain

# build the final docker image
docker build . -f dockerfiles/dockerfile-lambda-fastsam-api --tag localhost/lambda-fastsam-api --progress=plain

Run the container (keep it on background) and show logs

docker run  -d --name lambda-fastsam-api -p 8080:8080 lambda-fastsam-api; docker logs -f lambda-fastsam-api

Test it with curl:

URL=http://localhost:8080/2015-03-31/functions/function/invocations
curl -X 'POST' \
  ${URL} \
  -H 'accept: application/json' \
  -d '{}'

Publish the aws lambda docker image

Login on aws ECR with the correct aws profile (change the example localhost/ repository url with the one from the ECR push command instructions page).

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.

python -m pytest --cov=samgis --cov-report=term-missing && coverage html

How to update the static documentation with sphinx

Run the 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 for details. Run the command from the project root:

# missing docs folder (run from project root)
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

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.