用於對影像或影片中的目標項目進行計數的範例應用程式。
確保已安裝 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 容器並更輕鬆地開發功能。