แอปตัวอย่างเพื่อนับรายการเป้าหมายภายในรูปภาพหรือวิดีโอ
ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง 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
สิ่งนี้จะทำงานต่อไปนี้:
.envrc
ที่ใช้โดย direnv
direnv allow
เพื่ออนุญาตการแก้ไข direnv
pip
pre-commit
สำหรับการเขียนโค้ดและการตรวจสอบโค้ดgit-flow
ทุกครั้งที่เป็นไปได้ขั้นตอนเหล่านี้ทำให้ผู้ใช้สามารถพัฒนาคุณสมบัติใหม่ภายใน Docker ซึ่งทำให้นักพัฒนามีชุดเครื่องมือชุดเดียวกันได้ง่ายขึ้น
โปรเจ็กต์นี้มาพร้อมกับโซลูชันที่พร้อมใช้งานทันทีสำหรับการเริ่มต้นและหยุดตำแหน่งข้อมูล API ผ่าน Docker
หากต้องการเริ่มต้นคอนเทนเนอร์ด้วยตำแหน่งข้อมูล 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
เพื่อช่วยอำนวยความสะดวกในการพัฒนาท้องถิ่น คุณสามารถติดตั้งส่วนขยาย Visual Studio Code Dev Containers สำหรับ VS Code ได้ สิ่งนี้จะช่วยให้คุณสามารถเชื่อมต่อกับคอนเทนเนอร์ Docker สำหรับการพัฒนาในเครื่องและพัฒนาคุณสมบัติต่างๆ ได้ง่ายขึ้น