جدا بودن این سرویسها باعث میشود هر بخش بتواند بهصورت مستقل توسعه داده شود، در صورت افزایش بار بهصورت جداگانه مقیاسپذیر باشد و در صورت بروز مشکل در یک سرویس، سایر سرویسها دچار اختلال نشوند.
---
## 1. Backend Service
سرویس **Backend** هستهی اصلی منطق سیستم محسوب میشود و نقش **Gateway** بین کلاینت و سایر سرویسهای داخلی را ایفا میکند.
به عبارت دیگر، 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)**