kisan-sathi / src /contacts.py
sxandie's picture
docs: Update README with enhancements; implement GGUF latency fallback, KV cache thread-safety lock, mock structured parser, start-from-scratch reset, mobile CSS responsiveness, and nudge parser fixes
ee1aa00
Raw
History Blame Contribute Delete
5.28 kB
import os
import json
import re
# Storage location for contacts
CONTACTS_DIR = os.path.dirname(os.path.abspath(__file__)) + "/data"
CONTACTS_FILE = CONTACTS_DIR + "/contacts.json"
# Local seed contacts fallback
SEED_CONTACTS = [
{
"name": "District Agriculture Officer (जिला कृषि अधिकारी)",
"role": "General Agriculture Support & Schemes (Kanpur Dehat, UP)",
"phone": "+91 7839882512",
"email": "dao-kanpurdehat@up.gov.in",
"category": "Local (Kanpur Dehat) / स्थानीय संपर्क"
},
{
"name": "Deputy Agriculture Director (उप कृषि निदेशक)",
"role": "Administrative & High-level Approvals (Kanpur Dehat, UP)",
"phone": "+91 7839882510",
"email": "ddag-kanpurdehat@up.gov.in",
"category": "Local (Kanpur Dehat) / स्थानीय संपर्क"
},
{
"name": "Krishi Vigyan Kendra (केवीके दिलीप नगर)",
"role": "Scientific Crop Research, Advisory & Training (Kanpur Dehat, UP)",
"phone": "+91 9935796178",
"email": "kvk.kanpurdehat@icar.gov.in",
"category": "Local (Kanpur Dehat) / स्थानीय संपर्क"
},
{
"name": "Kisan Call Centre (KCC) / किसान कॉल सेंटर",
"role": "Primary Agriculture Helpline (मुख्य कृषि हेल्पलाइन) - 6:00 AM to 10:00 PM, 7 days/week",
"phone": "18001801551",
"email": "kcc-dac@gov.in",
"category": "National (राष्ट्रीय)"
},
{
"name": "National Suicide Prevention Helpline / राष्ट्रीय आत्महत्या रोकथाम हेल्पलाइन",
"role": "Mental health crisis, suicide prevention, emotional support - 24/7",
"phone": "18005990019",
"email": "N/A",
"category": "National (राष्ट्रीय)"
}
]
# Emergency safety keywords (Hindi, Hinglish, and English)
SAFETY_KEYWORDS = [
r"zahar", r"zehar", r"jeher", r"poison", r"जहर", r"कीटनाशक",
r"suicid", r"aatmahatya", r"आत्महत्या", r"फांसी", r"phansi", r"phansy", r"khudkushi",
r"debt", r"distress", r"depress", r"depression", r"stress", r"anxiety",
r"accident", r"दुर्घटना", r"crop failure", r"shock", r"हताश", r"निराश",
r"जान देने", r"मरने", r"तनाव", r"परेशान", r"परेशानी", r"कर्जा", r"कर्ज", r"उधार", r"उधारी",
r"kill myself", r"end my life", r"marna", r"marne"
]
def load_contacts():
"""Load contacts from local JSON file. If file doesn't exist, return seed contacts."""
if not os.path.exists(CONTACTS_FILE):
print(f"[contacts.py] Contacts file {CONTACTS_FILE} not found. Loading seed fallback.")
return SEED_CONTACTS
try:
with open(CONTACTS_FILE, "r", encoding="utf-8") as f:
return json.load(f)
except Exception as e:
print(f"[contacts.py] Error loading contacts: {e}")
return SEED_CONTACTS
def check_emergency_query(query_text):
"""
Checks if a query contains safety/distress keywords.
Returns (is_emergency, message)
"""
query_text_lower = query_text.lower()
for pattern in SAFETY_KEYWORDS:
if re.search(pattern, query_text_lower):
warning_msg = (
"⚠️ **सुरक्षा चेतावनी / SAFETY WARNING:**\n\n"
"यह एक अत्यंत संवेदनशील या आपातकालीन स्थिति प्रतीत होती है। कृपया किसी भी गंभीर या तत्काल समस्या के लिए "
"नीचे दिए गए सरकारी हेल्पलाइन और स्थानीय अधिकारियों के नंबरों पर सीधे संपर्क करें: \n\n"
"📞 **कृषि संकट हेल्पलाइन (KCC):** [1800-180-1551](tel:18001801551) (सुबह 6 से रात 10 बजे)\n"
"📞 **राष्ट्रीय मानसिक स्वास्थ्य हेल्पलाइन:** [1800-599-0019](tel:18005990019) (24/7)\n"
"📞 **आसरा संकट हेल्पलाइन:** [022-2754-6669](tel:02227546669) (24/7)\n"
"📞 **जिला कृषि अधिकारी (UP):** [+91 7839882512](tel:+917839882512)\n"
"📞 **केवीके वैज्ञानिक (KVK):** [+91 9935796178](tel:+919935796178)\n\n"
"घबराएं नहीं, मदद उपलब्ध है। स्थानीय विशेषज्ञ और राष्ट्रीय हेल्पलाइन आपकी त्वरित व निःशुल्क सहायता करेंगे।"
)
return True, warning_msg
return False, None