163 lines
7.2 KiB
Markdown
163 lines
7.2 KiB
Markdown
|
|
## 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** طراحی شده است که مزایای زیر را فراهم میکند:
|
|||
|
|
|
|||
|
|
- مقیاسپذیری مستقل هر سرویس
|
|||
|
|
- افزایش پایداری سیستم
|
|||
|
|
- جداسازی مسئولیتها
|
|||
|
|
- مدیریت بهتر بار پردازشی
|
|||
|
|
- امنیت بیشتر برای دادههای حساس
|
|||
|
|
|
|||
|
|
این معماری باعث میشود پلتفرم بتواند در مقیاسهای بزرگ مزرعه و تعداد زیاد سنسورها نیز عملکرد پایدار و قابل اعتمادی داشته باشد.
|
|||
|
|
:::
|