用于对图像或视频中的目标项目进行计数的示例应用程序。
确保已安装 python 和 pip。
python --version
pip --version
从根目录运行以下命令来安装依赖项: pip install -r requirements.txt
您可以使用以下命令运行应用程序: python -m uvicorn src.api.index:app --reload
运行后,您可以导航到http://127.0.0.1:8000/docs
以查看交互式 API 文档。
在能够正确运行和开发此存储库中的代码之前,需要完成一些步骤。
以下是开始工作/测试此存储库的管道之前必须执行的步骤列表:
该项目附带一个Makefile
( Windows 不支持! ),可用于执行命令,使与该项目的交互更加顺畅。请记住,名称中带有空格的文件夹可能会导致问题。
人们可以通过以下方式查看所有可用选项:
$: make
Available rules:
add-licenses Add licenses to Python files
all-start Starts both the API service and the local development service
all-stop Stops both the API service and the local development service
all-web Open up all web endpoints
api-build Build API image
api-start Start API image container
api-stop Stop API image container
api-web Open API in web browser
clean Removes artifacts from the build stage, and other common Python artifacts.
clean-build Remove build artifacts
clean-images Clean left-over images
clean-model-files Remove files related to pre-trained models
clean-pyc Removes Python file artifacts
clean-secrets Removes secret artifacts - Serverless
clean-test Remove test and coverage artifacts
create-environment Creates the Python environment
create-envrc Set up the envrc file for the project.
delete-environment Deletes the Python environment
delete-envrc Delete the local envrc file of the project
destroy Remove ALL of the artifacts + Python environments
docker-local-dev-build Build local development image
docker-local-dev-login Start a shell session into the docker container
docker-local-dev-start Start service for local development
docker-local-dev-stop Stop service for local development
docker-prune Clean Docker images
git-flow-install Install git-flow
init Initialize the repository for code development
lint Run the ' pre-commit ' linting step manually
pip-upgrade Upgrade the version of the ' pip ' package
pre-commit-install Installing the pre-commit Git hook
pre-commit-uninstall Uninstall the pre-commit Git hook
requirements Install Python dependencies into the Python environment
show-params Show the set of input parameters
sort-requirements Sort the project packages requirements file
streamlit-app-build Build Streamlit App image
streamlit-app-start Start Streamlit App image container
streamlit-app-stop Stop Streamlit App image container
streamlit-app-web Open Streamlit App in web browser
test Run all Python unit tests with verbose output and logs
注意:如果您使用的是
Windows
,则可能必须在某种程度上复制和修改属于某些任务的Makefile
一部分的命令。
为了处理当前/新功能,可以使用Docker启动一个新容器并开始本地开发过程。
要构建 Docker 镜像,必须遵循以下步骤:
Makefile
运行以下命令: # Go the project's directory
cd /path/to/directory
# Build the Docker iamge and start a container
make docker-local-dev-start
# Log into the container
make docker-local-dev-login
# Log into the container
➜$: make docker-local-dev-login
direnv: error /opt/program/.envrc is blocked. Run ` direnv allow ` to approve its content
人们将看到
direnv
错误,因为direnv
已安装并且必须允许更改生效。
direnv
更改 # Accept the changes
$: direnv allow
direnv: loading /opt/program/.envrc
init
命令轻松完成: $: make init
这将执行以下任务:
direnv
使用的.envrc
文件。direnv allow
允许direnv
修改。pip
安装包要求pre-commit
以进行代码检查和代码检查。git-flow
。这些步骤使用户能够在 Docker 中开发新功能,从而使开发人员更容易获得完全相同的工具集。
该项目附带了一个开箱即用的解决方案,用于通过 Docker 启动和停止 API 端点。
要使用 API 端点启动容器,必须运行以下命令:
# Start API service
make api-start
该服务将启动一个 Docker 容器,将内部端口80
暴露给本地主机的端口8090
。构建镜像并启动容器后,可以使用以下命令转到服务的主页:
# Go the URL of the API endpoint
make api-web
这会将用户定向到以下 URL:http://localhost:8090/docs
为了停止API 服务,可以运行以下命令:
# Stop the API service
make api-stop
当用户使用新功能等自定义 FastAPI 时,这些更改将自动显示在上面的 URL 中。
与上面的部分类似,可以借助 2 个命令(即all-start
和all-stop
立即启动或关闭所有服务。
为了启动api服务和本地开发服务,可以运行:
make all-start
该命令将执行这两项服务,并且能够登录容器进行本地开发,并通过浏览器连接到 API。
同样,为了停止所有服务,只需运行:
make all-stop
这将停止这两个服务并删除任何未使用的 Docker 容器。
单元测试可以在源代码旁边的src
文件夹下找到。测试文件以_test
结尾。以下命令将运行所有测试。
python -m pytest -v -s
-v
参数用于详细输出。 -s
参数用于关闭捕获模式,以便将打印语句打印到控制台。
还存在一个 Makefile 命令来运行这些命令。请参阅make test
。
以下是与此项目交互时可能有用的命令列表。
列出所有 Docker 容器:
docker ps -a
为了帮助促进本地开发,您可以安装 VS Code 的 Visual Studio Code Dev Containers 扩展。这将允许您连接到本地开发 Docker 容器并更轻松地开发功能。