نموذج تطبيق لحساب العناصر المستهدفة داخل صورة أو فيديو.
تأكد من تثبيت 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
لعرض وثائق واجهة برمجة التطبيقات التفاعلية.
هناك بعض الخطوات التي يجب القيام بها قبل أن تتمكن من تشغيل التعليمات البرمجية وتطويرها بشكل صحيح في هذا المستودع.
فيما يلي قائمة بالخطوات التي يجب القيام بها قبل البدء في العمل/اختبار مسارات هذا المستودع:
يأتي المشروع مزودًا بملف 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، مما يسهل على المطورين الحصول على نفس مجموعة الأدوات المتاحة.
يأتي المشروع مزودًا بحل جاهز لبدء وإيقاف نقطة نهاية واجهة برمجة التطبيقات عبر 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 من الأعلى.
كما هو الحال مع الأقسام المذكورة أعلاه، يمكن للمرء تدوير جميع الخدمات لأعلى أو لأسفل مرة واحدة بمساعدة أمرين، أي 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 للتطوير المحلي وتطوير الميزات بسهولة أكبر.