feat: strictly enforce online vision model & add cucumber diseases
Browse files- backend/data_vegetables.py +137 -0
- backend/pipeline.py +6 -11
backend/data_vegetables.py
CHANGED
|
@@ -650,5 +650,142 @@ VEGETABLES_KNOWLEDGE_BASE: Dict[str, Dict[str, Any]] = {
|
|
| 650 |
},
|
| 651 |
"prevention": ["Scout leaf undersides weekly for early whitefly and jassid emergence"],
|
| 652 |
"expert_consultation_recommended": False
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 653 |
}
|
| 654 |
}
|
|
|
|
| 650 |
},
|
| 651 |
"prevention": ["Scout leaf undersides weekly for early whitefly and jassid emergence"],
|
| 652 |
"expert_consultation_recommended": False
|
| 653 |
+
},
|
| 654 |
+
|
| 655 |
+
# =========================================================================
|
| 656 |
+
# 7. CUCUMBER & CUCURBITS (खीरा व कद्दूवर्गीय: Cucumis sativus)
|
| 657 |
+
# =========================================================================
|
| 658 |
+
"Cucumber___Downy_mildew": {
|
| 659 |
+
"name": "Cucumber Downy Mildew",
|
| 660 |
+
"hindi_name": "खीरा का डाउनी मिल्ड्यू (मृदु रोमिल आसिता)",
|
| 661 |
+
"scientific_name": "Pseudoperonospora cubensis",
|
| 662 |
+
"crop": "Cucumber (खीरा)",
|
| 663 |
+
"category": "Fungal",
|
| 664 |
+
"severity": "Severe",
|
| 665 |
+
"is_healthy": False,
|
| 666 |
+
"season_and_weather": "Monsoon & post-monsoon (August-November) and humid spring; temp 18-24°C, RH > 85%, persistent dew on vine leaves",
|
| 667 |
+
"economic_injury_level": "Angular yellow patches bounded by leaf veins with purple-grey felt under leaves",
|
| 668 |
+
"symptoms": [
|
| 669 |
+
"पत्तियों की ऊपरी सतह पर नसों (veins) द्वारा सीमित कोणीय पीले धब्बे (angular chlorotic lesions)",
|
| 670 |
+
"पत्तियों की निचली सतह पर बैगनी-धूसर मखमली फफूंद (purplish-grey velvety downy spore growth)",
|
| 671 |
+
"संक्रमण बढ़ने पर पत्तियां तेजी से झुलसकर सूख जाती हैं और कागज की तरह मुड़ जाती हैं",
|
| 672 |
+
"पौधों की बढ़वार रुक जाती है और फल कड़वे व अविकसित रह जाते हैं"
|
| 673 |
+
],
|
| 674 |
+
"treatment": {
|
| 675 |
+
"immediate_action": [
|
| 676 |
+
"संक्रमित पुरानी पत्तियों को तोड़कर खेत से दूर नष्ट करें",
|
| 677 |
+
"फसल पर ऊपर से फव्वारा सिंचाई (overhead sprinkling) तुरंत बंद करें; केवल ड्रिप या थाला विधि अपनाएं"
|
| 678 |
+
],
|
| 679 |
+
"organic_control": [
|
| 680 |
+
"ट्राइकोडर्मा विरिडी (Trichoderma viride) 1% WP @ 5 ग्राम/लीटर पानी (80 ग्राम प्रति 16L पंप) का छिड़काव",
|
| 681 |
+
"नीम तेल (Neem Oil 10,000 PPM) @ 3 मिली/लीटर पानी में घोलकर 7 दिन के अंतराल पर स्प्रे करें"
|
| 682 |
+
],
|
| 683 |
+
"chemical_control": [
|
| 684 |
+
"साइमोक्सानिल 8% + मैंकोज़ेब 64% WP (Curzate) @ 2 ग्राम/लीटर पानी (32 ग्राम प्रति 16L पंप; 400g/एकड़)",
|
| 685 |
+
"अथवा मेटालैक्सिल 8% + मैंकोज़ेब 64% WP (Ridomil Gold) @ 2.5 ग्राम/लीटर पानी (40 ग्राम प्रति 16L पंप)",
|
| 686 |
+
"अथवा एज़ोक्सीस्ट्रोबिन 23% SC @ 1 मिली/लीटर पानी (16 मिली प्रति 16L पंप)"
|
| 687 |
+
]
|
| 688 |
+
},
|
| 689 |
+
"prevention": [
|
| 690 |
+
"खीरे की बेलों को ज़मीन पर फैलाने के बजाय मचान या तार-बांस (trellis) पर चढ़ाएं",
|
| 691 |
+
"रोगरोधी किस्मों (जैसे Malini, Pusa Sanyog, Kashi Shital) का चयन करें"
|
| 692 |
+
],
|
| 693 |
+
"expert_consultation_recommended": False
|
| 694 |
+
},
|
| 695 |
+
"Cucumber___Powdery_mildew": {
|
| 696 |
+
"name": "Cucumber Powdery Mildew",
|
| 697 |
+
"hindi_name": "खीरा का चूर्णिल आसिता (पाउडरी मिल्ड्यू)",
|
| 698 |
+
"scientific_name": "Podosphaera xanthii (syn. Sphaerotheca fuliginea)",
|
| 699 |
+
"crop": "Cucumber (खीरा)",
|
| 700 |
+
"category": "Fungal",
|
| 701 |
+
"severity": "Moderate",
|
| 702 |
+
"is_healthy": False,
|
| 703 |
+
"season_and_weather": "Warm dry days with humid nights (February-April and October-November); temp 25-32°C",
|
| 704 |
+
"economic_injury_level": "White talcum powder-like patches covering upper and lower foliage",
|
| 705 |
+
"symptoms": [
|
| 706 |
+
"पत्तियों, तनों और डंठलों पर सफेद पाउडर (टेलकम पाउडर) जैसे गोल चकत्ते",
|
| 707 |
+
"धब्बे आपस में मिलकर पूरी पत्ती को सफेद परत से ढक लेते हैं",
|
| 708 |
+
"संक्रमित पत्तियां पीली पड़कर भूरी हो जाती हैं और किनारों से ऊपर की ओर मुड़कर सूख जाती हैं",
|
| 709 |
+
"प्रकाश संश्लेषण रुकने से फल छोटे, फीके और समय से पहले पक जाते हैं"
|
| 710 |
+
],
|
| 711 |
+
"treatment": {
|
| 712 |
+
"immediate_action": [
|
| 713 |
+
"अत्यधिक प्रभावित पुरानी पत्तियों को काटकर हटा दें",
|
| 714 |
+
"खेत में हवा के संचरण के लिए बेलों की अनावश्यक शाखाओं की छंटाई करें"
|
| 715 |
+
],
|
| 716 |
+
"organic_control": [
|
| 717 |
+
"घुलनशील गंधक (Wettable Sulphur 80% WP) @ 2-3 ग्राम/लीटर पानी (40 ग्राम प्रति 16L पंप)",
|
| 718 |
+
"कच्चा दूध (10% घोल: 100ml दूध प्रति लीटर पानी) का पत्तियों पर छिड़काव"
|
| 719 |
+
],
|
| 720 |
+
"chemical_control": [
|
| 721 |
+
"डिफेनोकोनाज़ोल 25% EC (Score) @ 0.5 मिली/लीटर पानी (8 मिली प्रति 16L पंप)",
|
| 722 |
+
"अथवा हेक्साकोनाज़ोल 5% SC (Contaf) @ 1.5 मिली/लीटर पानी (24 मिली प्रति 16L पंप)",
|
| 723 |
+
"अथवा टेबुकोनाज़ोल 25.9% EC @ 1 मिली/लीटर पानी"
|
| 724 |
+
]
|
| 725 |
+
},
|
| 726 |
+
"prevention": [
|
| 727 |
+
"बेलों में पर्याप्त दूरी (1.5 - 2 मीटर पंक्ति से पंक्ति) बनाए रखें",
|
| 728 |
+
"अधिक नाइट्रोजन उर्वरक देने से बचें, पोटाश की संतुलित मात्रा दें"
|
| 729 |
+
],
|
| 730 |
+
"expert_consultation_recommended": False
|
| 731 |
+
},
|
| 732 |
+
"Cucumber___Mosaic_virus": {
|
| 733 |
+
"name": "Cucumber Mosaic Virus (CMV)",
|
| 734 |
+
"hindi_name": "खीरा मोज़ेक वायरस (विषाणु रोग)",
|
| 735 |
+
"scientific_name": "Cucumber Mosaic Cucumovirus (CMV)",
|
| 736 |
+
"crop": "Cucumber (खीरा)",
|
| 737 |
+
"category": "Viral",
|
| 738 |
+
"severity": "Severe",
|
| 739 |
+
"is_healthy": False,
|
| 740 |
+
"season_and_weather": "Summer and rainy season; actively transmitted by Aphids (माहू) and Whiteflies",
|
| 741 |
+
"economic_injury_level": "Vein clearing, leaf curling, dark and light green mosaic blisters",
|
| 742 |
+
"symptoms": [
|
| 743 |
+
"पत्तियों पर हल्के और गहरे हरे रंग के चितकबरे धब्बे (Mosaic pattern)",
|
| 744 |
+
"पत्तियों के किनारे नीचे की ओर मुड़ना (Downward leaf cupping) और तने की गांठें छोटी होना",
|
| 745 |
+
"पौधों का कद छोटा (stunted growth) रह जाना और नई पत्तियां विकृत होना",
|
| 746 |
+
"फलों पर खुरदुरे उभार (warts) बनना और फल का स्वाद कड़वा हो जाना"
|
| 747 |
+
],
|
| 748 |
+
"treatment": {
|
| 749 |
+
"immediate_action": [
|
| 750 |
+
"वायरस संक्रमित पौधों को जड़ सहित उखाड़कर गहरे गड्ढे में दबाएं या जला दें",
|
| 751 |
+
"हाथ व औजारों को साबुन के पानी से धोएं ताकि रस द्वारा वायरस न फैले"
|
| 752 |
+
],
|
| 753 |
+
"organic_control": [
|
| 754 |
+
"माहू व कीट वाहक नियंत्रण हेतु पीले चिपचिपे ट्रैप (Yellow Sticky Traps) प्रति एकड़ 15-20 लगाएं",
|
| 755 |
+
"नीम तेल (Neem Oil 10,000 PPM) @ 3-5 मिली/लीटर पानी का छिड़काव"
|
| 756 |
+
],
|
| 757 |
+
"chemical_control": [
|
| 758 |
+
"कीट वाहक (Aphid vector) नियंत्रण: थायमेथॉक्सम 25% WG @ 0.3 ग्राम/लीटर (5 ग्राम प्रति 16L पंप)",
|
| 759 |
+
"अथवा एसीटामिप्रिड 20% SP @ 0.5 ग्राम/लीटर पानी (8 ग्राम प्रति 16L पंप)",
|
| 760 |
+
"अथवा इमिडाक्लोप्रिड 17.8% SL @ 0.5 मिली/लीटर पानी"
|
| 761 |
+
]
|
| 762 |
+
},
|
| 763 |
+
"prevention": [
|
| 764 |
+
"ख��त और मेड़ों से खरपतवार (जैसे पार्थेनियम/गाजर घास) को पूरी तरह नष्ट करें",
|
| 765 |
+
"सिल्वर या ब्लैक प्लास्टिक मल्चिंग (Mulching) का उपयोग करें जो माहू कीट को दूर भगाती है"
|
| 766 |
+
],
|
| 767 |
+
"expert_consultation_recommended": True
|
| 768 |
+
},
|
| 769 |
+
"Cucumber___healthy": {
|
| 770 |
+
"name": "Healthy Cucumber (स्वस्थ खीरा फसल)",
|
| 771 |
+
"scientific_name": "Cucumis sativus (Vigorous Canopy & Fruit Set)",
|
| 772 |
+
"crop": "Cucumber (खीरा)",
|
| 773 |
+
"category": "Healthy",
|
| 774 |
+
"severity": "Healthy",
|
| 775 |
+
"is_healthy": True,
|
| 776 |
+
"season_and_weather": "All seasons; broad green angular leaves with prominent veins, bright yellow star flowers, straight tender green fruits",
|
| 777 |
+
"economic_injury_level": "None",
|
| 778 |
+
"symptoms": [
|
| 779 |
+
"स्वस्थ, चौड़ी, गहरे हरे रंग की पत्तियां किसी भी कोणीय पीले या चूर्णिल धब्बों से मुक्त",
|
| 780 |
+
"मजबूत बेलों पर भरपूर पीले फूल और स्वस्थ रोमिल तने",
|
| 781 |
+
"सीधे, कुरकुरे और चमकदार हरे रंग के खीरे के फल"
|
| 782 |
+
],
|
| 783 |
+
"treatment": {
|
| 784 |
+
"immediate_action": ["नियमित 3-4 दिन के अंतराल पर संतुलित हल्की सिंचाई बनाए रखें"],
|
| 785 |
+
"organic_control": ["प्रति 15 दिन में 19:19:19 NPK या वर्मीवॉश 10ml/L का पर्णीय स्प्रे करें"],
|
| 786 |
+
"chemical_control": ["किसी भी कीटनाशक की आवश्यकता नहीं है।"]
|
| 787 |
+
},
|
| 788 |
+
"prevention": ["पत्तियों की निचली सतह का नियमित निरीक्षण करते रहें"],
|
| 789 |
+
"expert_consultation_recommended": False
|
| 790 |
}
|
| 791 |
}
|
backend/pipeline.py
CHANGED
|
@@ -209,10 +209,10 @@ class PureGeminiInferenceEngine:
|
|
| 209 |
return cached_resp
|
| 210 |
|
| 211 |
if not self.is_configured():
|
| 212 |
-
|
| 213 |
-
|
| 214 |
-
|
| 215 |
-
|
| 216 |
|
| 217 |
payload = {
|
| 218 |
"contents": [
|
|
@@ -295,14 +295,9 @@ class PureGeminiInferenceEngine:
|
|
| 295 |
|
| 296 |
# 4. If all models failed or busy
|
| 297 |
if raw_text is None:
|
| 298 |
-
|
| 299 |
-
f"
|
| 300 |
-
)
|
| 301 |
-
fallback_res = self._fallback_botanical_diagnosis(
|
| 302 |
-
image_bytes, image_id, "Failover via Resilient Botanical Engine"
|
| 303 |
)
|
| 304 |
-
self._cache[img_hash] = (now, fallback_res)
|
| 305 |
-
return fallback_res
|
| 306 |
|
| 307 |
# 5. Robust Self-Healing JSON parsing
|
| 308 |
try:
|
|
|
|
| 209 |
return cached_resp
|
| 210 |
|
| 211 |
if not self.is_configured():
|
| 212 |
+
raise ValueError(
|
| 213 |
+
"Hugging Face Cloud Server par Google Gemini Vision AI Key कॉन्फ़िगर नहीं है। "
|
| 214 |
+
"कृपया Hugging Face Space Settings -> Secrets में GEMINI_API_KEY सेट करें ताकि ऑनलाइन AI Vision सक्रिय हो सके।"
|
| 215 |
+
)
|
| 216 |
|
| 217 |
payload = {
|
| 218 |
"contents": [
|
|
|
|
| 295 |
|
| 296 |
# 4. If all models failed or busy
|
| 297 |
if raw_text is None:
|
| 298 |
+
raise RuntimeError(
|
| 299 |
+
f"Google Gemini AI Vision सर्वर अभी अत्यधिक व्यस्त है ({last_error})। कृपया 10-15 सेकंड बाद पुनः प्रयास करें।"
|
|
|
|
|
|
|
|
|
|
| 300 |
)
|
|
|
|
|
|
|
| 301 |
|
| 302 |
# 5. Robust Self-Healing JSON parsing
|
| 303 |
try:
|