Contoh aplikasi untuk menghitung item target dalam gambar atau video.
Pastikan Anda telah menginstal python dan pip.
python --version
pip --version
Dari direktori root jalankan perintah berikut untuk menginstal dependensi: pip install -r requirements.txt
Anda dapat menjalankan aplikasi menggunakan perintah ini: python -m uvicorn src.api.index:app --reload
Setelah berjalan, Anda dapat menavigasi ke http://127.0.0.1:8000/docs
untuk melihat dokumentasi API interaktif.
Ada beberapa langkah yang perlu dilakukan sebelum dapat menjalankan dan mengembangkan kode dengan benar di repositori ini.
Berikut ini adalah daftar langkah-langkah yang harus dilakukan sebelum mulai bekerja/menguji pipeline repositori ini:
Proyek ini dilengkapi dengan Makefile
( tidak didukung di Windows! ) yang dapat digunakan untuk menjalankan perintah yang akan membuat interaksi dengan proyek ini lebih lancar. Ingatlah bahwa folder dengan spasi pada namanya dapat menyebabkan masalah.
Seseorang dapat melihat semua opsi yang tersedia dengan:
$: 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
CATATAN : Jika Anda menggunakan
Windows
, Anda mungkin harus menyalin dan memodifikasi sampai batas tertentu perintah yang merupakan bagian dariMakefile
untuk beberapa tugas.
Untuk mengerjakan fitur-fitur terkini/baru, seseorang dapat menggunakan Docker untuk memulai container baru dan memulai proses pengembangan lokal.
Untuk membangun image Docker, seseorang harus mengikuti langkah-langkah berikut:
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
Seseorang akan melihat kesalahan
direnv
karenadirenv
diinstal dan seseorang harus membiarkan perubahan diterapkan.
direnv
# Accept the changes
$: direnv allow
direnv: loading /opt/program/.envrc
init
: $: make init
Ini akan melakukan tugas-tugas berikut:
.envrc
yang digunakan oleh direnv
.direnv allow
untuk mengizinkan modifikasi direnv
.pip
pre-commit
untuk linting kode dan pemeriksaan kode.git-flow
, bila memungkinkan.Langkah-langkah ini memungkinkan pengguna untuk dapat mengembangkan fitur baru dalam Docker, yang memudahkan pengembang untuk memiliki seperangkat alat yang sama persis.
Proyek ini hadir dengan solusi siap pakai untuk memulai dan menghentikan titik akhir API melalui Docker.
Untuk memulai kontainer dengan titik akhir API, seseorang harus menjalankan perintah berikut:
# Start API service
make api-start
Layanan ini akan memulai kontainer Docker yang memaparkan port internal 80
ke port host lokal 8090
. Setelah image dibuat dan container telah dimulai, seseorang dapat membuka halaman utama layanan dengan menggunakan perintah berikut:
# Go the URL of the API endpoint
make api-web
Ini akan mengarahkan pengguna ke URL berikut: http://localhost:8090/docs
Untuk menghentikan layanan API, seseorang dapat menjalankan perintah berikut:
# Stop the API service
make api-stop
Saat seseorang menyesuaikan FastAPI dengan fitur baru dan banyak lagi, perubahan ini akan secara otomatis ditampilkan di URL di atas.
Mirip dengan bagian di atas, seseorang dapat memutar ke atas atau ke bawah semua layanan sekaligus dengan bantuan 2 perintah, yaitu all-start
dan all-stop
.
Untuk menjalankan layanan api dan untuk pengembangan lokal , seseorang dapat menjalankan:
make all-start
Perintah ini akan menjalankan kedua layanan dan seseorang akan dapat masuk ke wadah untuk pengembangan lokal, serta terhubung ke API melalui browser.
Demikian pula, untuk menghentikan semua layanan, seseorang cukup menjalankan:
make all-stop
Ini akan menghentikan kedua layanan dan menghapus semua container Docker yang tidak digunakan.
Tes unit dapat ditemukan di bawah folder src
di samping kode sumber. File pengujian diakhiri dengan _test
. Perintah berikut akan menjalankan semua tes.
python -m pytest -v -s
Argumen -v
adalah untuk keluaran verbose. Argumen -s
adalah untuk mematikan mode pengambilan sehingga pernyataan print dicetak ke konsol.
Perintah Makefile juga ada untuk menjalankannya. Lihat make test
.
Berikut adalah daftar perintah yang mungkin berguna saat berinteraksi dengan proyek ini.
Daftar semua container Docker:
docker ps -a
Untuk membantu memfasilitasi pengembangan lokal, Anda dapat menginstal ekstensi Visual Studio Code Dev Containers untuk VS Code. Ini akan memungkinkan Anda untuk terhubung ke wadah Docker pengembangan lokal dan mengembangkan fitur dengan lebih mudah.