5. Fermerga mos AI chat
Chat moduli fermerning kundalik savollariga kontekstli javob beradi. Javoblar dala holati, ob-havo, bozor va oldingi suhbatlardan oziqlanadi.
🌱 FERMERGA MOS AI CHAT — TO‘LIQ ARXITEKTURA
MAQSAD (1 jumlada)
Fermer nima so‘rasa ham, AI uning dalasi, bugungi ob-havosi, mavsum rejasi, bozordagi vaziyat va oldingi suhbatlarini bilgan holda javob bersin.
1️⃣ CHAT MODULINING UMUMIY STRUKTURASI
Chat — bu oddiy LLM chaqirish emas. Bu 5 qatlamli tizim:
User Message
↓
Intent + Category Detection
↓
Context Builder (dala, ob-havo, reja, bozor)
↓
Model / Strategy Selection
↓
Gemini (yoki boshqa AI)
↓
Post-processing + Safety + Memory
2️⃣ USER TOMONI (FERMER NIMA QILADI)
Fermer chatda tabiiy gapiradi, masalan:
- “Bugun sug‘orsam bo‘ladimi?”
- “Loviyam sarg‘ayib qolyapti”
- “Keyingi hafta hosilni yig‘sam bo‘ladimi?”
- “Piyoz narxi qanaqa bo‘ladi?”
👉 Fermer kategoriya tanlamaydi 👉 Bu ishni server + AI qiladi
3️⃣ SERVERGA KELADIGAN USER MA’LUMOTI
Frontend serverga faqat shuni yuboradi:
{
"user_id": "USER-77",
"field_id": "FIELD-101",
"message": "Bugun sug‘orsam bo‘ladimi?"
}
✅ Juda sodda ✅ Xavfsiz ✅ Qolganini server biladi
4️⃣ SERVER ICHIDA 1-QADAM: INTENT & CATEGORY ANIQLASH
Bu chatning ENG MUHIM joyi.
4.1. Avtomatik CHAT KATEGORIYALARI
Server har bir xabarni quyidagi kategoriyalardan biriga ajratadi:
| Kategoriya | Misol |
|---|---|
| 🌱 Crop Health | “Barglar sarg‘ayib qolyapti” |
| 💧 Sug‘orish | “Bugun suv beraymi?” |
| ☀️ Ob-havo | “Ertaga sovuq bo‘ladimi?” |
| 📅 Reja / Scheduler | “Bugun nima qilishim kerak?” |
| 📈 Bozor | “Narx ko‘tariladimi?” |
| 🧪 Tuproq | “O‘g‘it kerakmi?” |
| ❓ Umumiy maslahat | “Qaysi ekin yaxshi?” |
4.2. QANDAY ANIQLANADI?
Variantlar:
- Rule-based (oddiy MVP)
- Gemini mini prompt
- Keyinchalik NLP classifier
Misol (ichki logic):
if (message includes "sug'or") category = "irrigation"
if (message includes "narx") category = "market"
5️⃣ SERVER ICHIDA 2-QADAM: KONTEKST YIG‘ISH
Chat hech qachon yalang‘och ishlamaydi.
Server category ga qarab kontekst yig‘adi.
5.1. KONTEKST SOURCELARI
Doimiy kontekst:
- Dala (field)
- Tanlangan ekin
- Sezon reja fazasi
Dinamik:
- Bugungi ob-havo
- Oxirgi 7 kunlik ishlar
- Sensor / NDVI (bo‘lsa)
Tarix:
- Oldingi chatlar (oxirgi 5–10 ta)
- Bajarilgan ishlar
5.2. MISOL: “Bugun sug‘orsam bo‘ladimi?”
Server konteksti shunaqa bo‘ladi:
{
"crop": "loviya",
"growth_phase": "o‘sish",
"today_weather": {
"rain": false,
"temperature": "issiq"
},
"next_2_days_weather": {
"rain": true
},
"soil": {
"moisture": "o‘rtacha"
},
"recent_tasks": ["Kecha sug'orildi"]
}
6️⃣ SERVER ICHIDA 3-QADAM: MODEL / STRATEGIYA TANLASH
⚠️ BU JOY SEN SO‘RAGAN “AI MODELLARI yoki KATEGORIYALAR” masalasi.
6.1. NIMA UCHUN BIR MODEL EMAS?
Chunki:
- Har savol bir xil emas
- Ba’zida tez / arzon model yetadi
- Ba’zida chuqur agronom tahlil kerak
6.2. MODEL STRATEGIYA MISOLLARI
| Kategoriya | Strategiya |
|---|---|
| Sug‘orish | Rule + ob-havo + Gemini |
| Tuproq | Gemini (agronom prompt) |
| Bozor | LLM + market data |
| Reja | Sezon plan + AI prioritization |
| Kasallik | AI + ehtiyot disclaimer |
👉 Bu AI Orchestration deyiladi.
7️⃣ GEMINI GA YUBORILADIGAN PROMPT (MISOL)
✅ SYSTEM PROMPT (Sug‘orish kategoriyasi)
Siz fermer uchun sug‘orish bo‘yicha maslahatchisiz.
Sizga:
- ekin turi
- o‘sish bosqichi
- bugungi va yaqin kunlardagi ob-havo
- tuproq namligi
beriladi.
Sizning vazifangiz:
- Bugun sug‘orish kerakmi yoki yo‘qligini aytish
- Sababini oddiy tilda tushuntirish
- Xavfli tavsiya bermaslik
Javob o‘zbek tilida, qisqa va aniq bo‘lsin.
✅ USER CONTENT
{
"question": "Bugun sug‘orsam bo‘ladimi?",
"context": {
"crop": "loviya",
"growth_phase": "o‘sish",
"weather_today": "issiq, yomg‘ir yo‘q",
"weather_next_days": "2 kundan keyin yomg‘ir",
"soil_moisture": "o‘rtacha"
}
}
8️⃣ GEMINI JAVOBI (EXPECTED)
{
"answer_uz": "Bugun yengil sug‘orish mumkin, chunki havo issiq va hozircha yomg‘ir yo‘q. Ammo ko‘p suv bermang, chunki 2 kundan keyin yog‘ingarchilik kutilmoqda.",
"confidence": 0.9
}
9️⃣ SERVER POST-PROCESSING
Server: ✅ Javobni tekshiradi ✅ Xavfli so‘zlar yo‘qligini ko‘radi ✅ Chat xotirasiga yozadi ✅ Frontendga soddalashtirib yuboradi
Shu bilan birga:
- Agar javob reja bilan bog‘liq bo‘lsa → Daily task update
- Agar muammo aniqlansa → alert
🔥 10️⃣ CHAT MEMORY VA O‘RGANISH
Chat tarixidan:
- fermer odati
- ko‘p so‘raydigan muammolar
- qaysi maslahat amalga oshirilgan
aniqlanadi.
Bu kelajakda: ✅ yaxshiroq javob ✅ kamroq savol ✅ ko‘proq ishonch
Quyida:
✅ har bir kategoriya uchun
- 1 ta fermer savoli
- Gemini’ga yuboriladigan SYSTEM PROMPT
- USER CONTEXT
- KUTILAYOTGAN JAVOB
✅ kategoriya aniqlanmasa (unknown / fallback) holati ham bor
🌱 FERMR AI CHAT — KATEGORIYA BO‘YICHA TO‘LIQ MISOLLAR
🟢 1️⃣ SUG‘ORISH (Irrigation)
👨🌾 Savol:
“Bugun sug‘orsam bo‘ladimi?”
✅ SYSTEM PROMPT
Siz sug‘orish bo‘yicha agronom yordamchisiz.
Sizga ekin turi, o‘sish bosqichi va ob-havo beriladi.
Vazifa:
- Bugun sug‘orish kerakmi yoki yo‘q, aniqlash
- Qisqa va xavfsiz tavsiya berish
- Sababini sodda tilda tushuntirish
Javobni o‘zbek tilida, qisqa va aniq qilib yozing.
✅ USER CONTEXT
{
"crop": "loviya",
"growth_phase": "o‘sish",
"weather_today": "issiq, yomg‘ir yo‘q",
"weather_next_2_days": "yomg‘ir kutilmoqda",
"soil_moisture": "o‘rtacha"
}
✅ KUTILAYOTGAN JAVOB
{
"answer_uz": "Bugun yengil sug‘orish mumkin, chunki havo issiq. Ammo suvni ko‘p bermang, 2 kundan keyin yomg‘ir kutilmoqda.",
"confidence": 0.9
}
🟢 2️⃣ TUPROQ / O‘G‘IT (Soil & Fertilizer)
👨🌾 Savol:
“Yerga o‘g‘it berishim kerakmi?”
✅ SYSTEM PROMPT
Siz tuproq va o‘g‘itlash bo‘yicha agronom mutaxassissiz.
Vazifa:
- Tuproq holatiga qarab o‘g‘it kerakmi aniqlash
- Juda agressiv tavsiya bermaslik
- Laboratoriya yo‘qligini eslatish
Javob sodda, o‘zbek tilida bo‘lsin.
✅ USER CONTEXT
{
"soil_nitrogen": "past",
"crop": "loviya",
"growth_phase": "boshlang‘ich",
"soil_confidence": 0.6
}
✅ JAVOB
{
"answer_uz": "Tuproqda azot past bo‘lishi mumkin. Loviya azot yig‘uvchi ekin bo‘lgani uchun hozir ko‘p o‘g‘it berish shart emas, faqat kuzatuv olib boring.",
"confidence": 0.75
}
🟢 3️⃣ EKIN SOG‘LIGI / KASALLIK
👨🌾 Savol:
“Loviyamning barglari sarg‘ayib qolyapti”
✅ SYSTEM PROMPT
Siz o‘simlik sog‘ligi bo‘yicha agronom yordamsiz.
Vazifa:
- Belgilarga qarab ehtimoliy sabablarni aytish
- Aniq dori yoki brend aytmaslik
- Kuzatuv va ehtiyot choralarini tavsiya qilish
✅ USER CONTEXT
{
"crop": "loviya",
"symptoms": "barglar sarg‘aymoqda",
"recent_weather": "issiq",
"soil_nitrogen": "past"
}
✅ JAVOB
{
"answer_uz": "Barglarning sarg‘ayishi azot yetishmasligi yoki issiq stressi bilan bog‘liq bo‘lishi mumkin. Sug‘orish rejimini tekshiring va o‘simlikni 2–3 kun kuzating.",
"confidence": 0.7
}
🟡 4️⃣ OB-HAVO RISK
👨🌾 Savol:
“Ertaga sovuq bo‘ladimi?”
✅ SYSTEM PROMPT
Siz ob-havo xavflari haqida ogohlantiruvchi agronom yordamsiz.
Vazifa:
- Yaqqol risk bo‘lsa aytish
- Keraksiz vahima qo‘zg‘amaslik
✅ USER CONTEXT
{
"location": "Farg‘ona viloyati",
"forecast": "kechasi +3°C",
"crop": "loviya"
}
✅ JAVOB
{
"answer_uz": "Ertaga kechasi havo biroz soviydi, ammo hozircha kuchli sovuq xavfi yo‘q. Yosh o‘simliklar bo‘lsa, kechasi yoping.",
"confidence": 0.85
}
🟡 5️⃣ BOZOR / NARX
👨🌾 Savol:
“Piyoz narxi oshadimi?”
✅ SYSTEM PROMPT
Siz qishloq xo‘jalik bozori bo‘yicha tahlilchisiz.
Vazifa:
- Bozor trendiga asoslanib taxmin qilish
- Aniq narx bermaslik
✅ USER CONTEXT
{
"product": "piyoz",
"market_trend": "oxirgi 2 haftada o‘sish",
"season": "bahor"
}
✅ JAVOB
{
"answer_uz": "Hozirgi ma’lumotlarga ko‘ra piyoz narxi bahor oylarida biroz oshishi mumkin. Agar saqlash imkoni bo‘lsa, shoshilmasdan sotish foydaliroq bo‘lishi mumkin.",
"confidence": 0.65
}
🟦 6️⃣ REJA / KUNLIK ISH
👨🌾 Savol:
“Bugun nima qilishim kerak?”
✅ SYSTEM PROMPT
Siz kundalik agro-reja yordamchisiz.
Vazifa:
- Bugungi eng muhim ishlarni aytish
- Sezon rejasidan chiqmaslik
✅ USER CONTEXT
{
"crop": "loviya",
"phase": "o‘sish",
"delayed_tasks": ["begona o'tlarni yo‘qotish"],
"weather_today": "qulay"
}
✅ JAVOB
{
"answer_uz": "Bugun eng muhim ish — begona o'tlarni tozalash. Ob-havo qulay, ishni kechiktirmaslik tavsiya etiladi.",
"confidence": 0.9
}
🔴 7️⃣ KATEGORІYAGA TUSHMAYDIGAN SAVOL (UNKNOWN / FALLBACK)
👨🌾 Savol:
“Shu ishlarimdan foyda chiqadimi o‘zi?”
✅ SYSTEM PROMPT
Siz fermerni qo‘llab-quvvatlovchi va tushuntiruvchi yordamchisiz.
Vazifa:
- Savol noaniq bo‘lsa ham, foydali va motivatsion javob berish
- Texnik yoki sun’iy gaplardan qochish
✅ USER CONTEXT
{
"active_crop": "loviya",
"season_progress": "o‘rtalar"
}
✅ JAVOB
{
"answer_uz": "Siz hozir to‘g‘ri yo‘ldasiz. Reja asosida ishlayapsiz va dalaning holati yomon emas. Mavsum davomida natija asta-sekin ko‘rinadi, sabr qiling va tavsiyalarga amal qiling.",
"confidence": 0.8
}
✅ YAKUNIY ARXITEKTURA QOIDASI (MUHIM)
✅ Har savol → kategoriya ✅ Har kategoriya → alohida prompt ✅ Har prompt → alohida strategiya ✅ Kategoriya topilmasa → fallback AI
Shunda:
- AI “hamma joyga bir xil” javob bermaydi
- Har javob aniq va foydali bo‘ladi
- Fermer AI’ga ishonadi
