CI/CD
This commit is contained in:
+162
@@ -0,0 +1,162 @@
|
||||
## Backend Architecture – CropLogic Platform
|
||||
|
||||
پلتفرم **CropLogic** از سه سرویس کاملاً مستقل تشکیل شده است تا مقیاسپذیری، پایداری و امنیت دادهها در سطح بالایی حفظ شود. این سرویسها عبارتاند از:
|
||||
|
||||
- Backend Service
|
||||
- AI Service
|
||||
- SensorHub Service
|
||||
|
||||
جدا بودن این سرویسها باعث میشود هر بخش بتواند بهصورت مستقل توسعه داده شود، در صورت افزایش بار بهصورت جداگانه مقیاسپذیر باشد و در صورت بروز مشکل در یک سرویس، سایر سرویسها دچار اختلال نشوند.
|
||||
|
||||
---
|
||||
|
||||
## 1. Backend Service
|
||||
|
||||
سرویس **Backend** هستهی اصلی منطق سیستم محسوب میشود و نقش **Gateway** بین کلاینت و سایر سرویسهای داخلی را ایفا میکند.
|
||||
|
||||
### وظایف اصلی
|
||||
- دریافت درخواستها از سمت کلاینت
|
||||
- ارتباط با سرویسهای **AI** و **SensorHub**
|
||||
- پردازش و مدیریت خروجی سرویسها
|
||||
- آمادهسازی و ارسال پاسخ نهایی به کلاینت
|
||||
|
||||
به عبارت دیگر، Backend لایهی هماهنگکننده بین بخشهای مختلف سیستم است و تمام ارتباطات خارجی از طریق این سرویس انجام میشود.
|
||||
|
||||
### تکنولوژیها
|
||||
- **Framework:** Django
|
||||
- **Database:** MySQL
|
||||
|
||||
پروژه با استفاده از **Clean Architecture** طراحی شده است؛ بنابراین لایهی دیتابیس از منطق اصلی جدا بوده و در صورت نیاز امکان تغییر دیتابیس در آینده بهسادگی وجود دارد.
|
||||
|
||||
---
|
||||
|
||||
## 2. AI Service
|
||||
|
||||
سرویس **AI** به دلیل حجم بالای محاسبات و احتمال ایجاد بار سنگین روی سیستم، بهصورت کاملاً جدا از Backend پیادهسازی شده است. این سرویس مسئول انجام تمام پردازشهای مرتبط با **هوش مصنوعی و تحلیل دادهها** است.
|
||||
|
||||
### بخشهای اصلی این سرویس
|
||||
|
||||
#### 2.1 سیستم RAG (Retrieval-Augmented Generation)
|
||||
|
||||
این سیستم با استفاده از **Embedding مدلهای LLM** پیادهسازی شده و نقش ساخت **دستیار هوشمند مزرعه** را بر عهده دارد.
|
||||
|
||||
از این دستیار برای:
|
||||
- پاسخ به سوالات کشاورزان
|
||||
- ارائه راهنماییهای تخصصی کشاورزی
|
||||
- تحلیل شرایط مزرعه
|
||||
|
||||
استفاده میشود.
|
||||
|
||||
---
|
||||
|
||||
#### 2.2 دریافت اطلاعات خاک بر اساس مختصات جغرافیایی
|
||||
|
||||
برای دریافت دادههای علمی مربوط به خاک از API زیر استفاده میشود:
|
||||
|
||||
`https://rest.isric.org/soilgrids`
|
||||
|
||||
این سرویس اطلاعات خاک را بر اساس مختصات جغرافیایی ارائه میدهد.
|
||||
|
||||
پارامترهای اصلی دریافت شده شامل موارد زیر است:
|
||||
|
||||
- depth_label
|
||||
- bdod
|
||||
- cec
|
||||
- cfvo
|
||||
- clay
|
||||
- nitrogen
|
||||
- ocd
|
||||
- ocs
|
||||
- phh2o
|
||||
- sand
|
||||
- silt
|
||||
- soc
|
||||
- wv0010
|
||||
- wv0033
|
||||
- wv1500
|
||||
|
||||
علاوه بر این، اطلاعات خاک برای عمقهای مختلف نیز دریافت میشود، از جمله:
|
||||
|
||||
- 0–5 سانتیمتر
|
||||
- 5–10 سانتیمتر
|
||||
- 10–15 سانتیمتر
|
||||
|
||||
این تفکیک عمق خاک اهمیت زیادی دارد، زیرا برخی گیاهان نسبت به ویژگیهای خاک در عمقهای خاص حساستر هستند.
|
||||
|
||||
---
|
||||
|
||||
#### 2.3 ترکیب دادههای خاک با دادههای سنسور
|
||||
|
||||
اطلاعات دریافتی از SoilGrids با دادههای **سنسورهای مزرعه** ترکیب میشوند.
|
||||
|
||||
هدف از این مرحله:
|
||||
- تکمیل دادههای ناقص سنسورها
|
||||
- افزایش دقت مدلهای تحلیلی
|
||||
- ایجاد یک دیتاست کامل از شرایط واقعی مزرعه
|
||||
|
||||
---
|
||||
|
||||
#### 2.4 محاسبات تکمیلی ژئوفیزیک و خاک
|
||||
|
||||
در این مرحله، دادههایی که نه از طریق سنسورها و نه از طریق APIهای خارجی قابل دریافت نیستند، با استفاده از **فرمولهای علمی ژئوفیزیک و خاکشناسی کشاورزی** محاسبه میشوند.
|
||||
|
||||
این کار باعث میشود مدلهای تحلیلی تصویر کاملتری از شرایط مزرعه داشته باشند.
|
||||
|
||||
---
|
||||
|
||||
#### 2.5 تحلیل و مدلهای هوش مصنوعی
|
||||
|
||||
در مرحله نهایی، دادههای جمعآوریشده و پردازششده وارد سیستمهای تحلیلی میشوند که شامل موارد زیر است:
|
||||
|
||||
- استفاده از **سیستم RAG** برای تحلیل و تولید پاسخ
|
||||
- استفاده از **Machine Learning** در سناریوهای تخصصیتر
|
||||
- استفاده از **مدلهای از پیش آموزشدیده (Pretrained Models)**
|
||||
|
||||
خروجی این تحلیلها شامل مواردی مانند:
|
||||
|
||||
- توصیه زمان و میزان **آبیاری**
|
||||
- توصیه **کوددهی**
|
||||
- تحلیل وضعیت خاک و رشد گیاه
|
||||
- پیشنهاد اقدامات بهینه برای مدیریت مزرعه
|
||||
|
||||
### دیتابیس
|
||||
- **MySQL**
|
||||
|
||||
---
|
||||
|
||||
## 3. SensorHub Service
|
||||
|
||||
سرویس **SensorHub** مسئول دریافت، ذخیره و مدیریت دادههای سنسورهای مزرعه است.
|
||||
|
||||
به دلیل حساسیت بالای این دادهها و اهمیت **عدم از دست رفتن اطلاعات سنسورها**، این سرویس بهصورت مستقل از سایر بخشها پیادهسازی شده است.
|
||||
|
||||
### ویژگیهای این سرویس
|
||||
- دریافت دادههای سنسورها در زمان واقعی
|
||||
- ذخیرهسازی امن و پایدار دادهها
|
||||
- ارائه دادهها به سرویس Backend برای تحلیل
|
||||
|
||||
### دیتابیس
|
||||
|
||||
برای این سرویس از **Apache Cassandra** استفاده شده است.
|
||||
|
||||
دلایل انتخاب Cassandra:
|
||||
|
||||
- دیتابیس **Distributed** و مناسب برای دادههای حجیم
|
||||
- **Fault Tolerance بالا**
|
||||
- جلوگیری از از دست رفتن دادهها
|
||||
- مناسب برای **Time-Series Data** مانند دادههای سنسورها
|
||||
|
||||
---
|
||||
|
||||
## جمعبندی معماری
|
||||
|
||||
معماری CropLogic بر پایه **Microservice Architecture** طراحی شده است که مزایای زیر را فراهم میکند:
|
||||
|
||||
- مقیاسپذیری مستقل هر سرویس
|
||||
- افزایش پایداری سیستم
|
||||
- جداسازی مسئولیتها
|
||||
- مدیریت بهتر بار پردازشی
|
||||
- امنیت بیشتر برای دادههای حساس
|
||||
|
||||
این معماری باعث میشود پلتفرم بتواند در مقیاسهای بزرگ مزرعه و تعداد زیاد سنسورها نیز عملکرد پایدار و قابل اعتمادی داشته باشد.
|
||||
:::
|
||||
Reference in New Issue
Block a user