|
|
|
|
|
|
|
|
from pathlib import Path |
|
|
import os |
|
|
import sys |
|
|
|
|
|
|
|
|
BASE_DIR = Path(__file__).resolve().parents[2] |
|
|
|
|
|
|
|
|
if str(BASE_DIR) not in sys.path: |
|
|
sys.path.insert(0, str(BASE_DIR)) |
|
|
|
|
|
EMBEDDING_MODEL = "sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2" |
|
|
STATIC_VS_PATH = BASE_DIR / "app" / "vectorstore" / "faiss_index" |
|
|
LIVE_VS_PATH = BASE_DIR / "app" / "vectorstore" / "live_rag_index" |
|
|
|
|
|
VECTORSTORE_PATH = LIVE_VS_PATH |
|
|
|
|
|
|
|
|
WEATHER_API_KEY = os.getenv("WEATHER_API_KEY", "1eefcad138134d62a1e220003252608") |
|
|
|
|
|
|
|
|
CLASSIFIER_PATH = BASE_DIR / "app" / "models" / "intent_classifier_v2.joblib" |
|
|
CLASSIFIER_CONFIDENCE_THRESHOLD = float(os.getenv("CLASSIFIER_CONFIDENCE_THRESHOLD", "0.6")) |
|
|
|
|
|
|
|
|
EXPERT_MODEL_NAME = os.getenv("EXPERT_MODEL_NAME", "Qwen/Qwen3-4B-Instruct-2507") |
|
|
|
|
|
|
|
|
LANG_ID_MODEL_REPO = os.getenv("LANG_ID_MODEL_REPO", "facebook/fasttext-language-identification") |
|
|
LANG_ID_MODEL_FILE = os.getenv("LANG_ID_MODEL_FILE", "model.bin") |
|
|
|
|
|
TRANSLATION_MODEL_NAME = os.getenv("TRANSLATION_MODEL_NAME", "drrobot9/nllb-ig-yo-ha-finetuned") |
|
|
|
|
|
DATA_SOURCES = { |
|
|
"harvestplus": "https://agronigeria.ng/category/news/", |
|
|
} |
|
|
|
|
|
STATES = [ |
|
|
"Abuja", "Lagos", "Kano", "Kaduna", "Rivers", "Enugu", "Anambra", "Ogun", |
|
|
"Oyo", "Delta", "Edo", "Katsina", "Borno", "Benue", "Niger", "Plateau", |
|
|
"Bauchi", "Adamawa", "Cross River", "Akwa Ibom", "Ekiti", "Osun", "Ondo", |
|
|
"Imo", "Abia", "Ebonyi", "Taraba", "Kebbi", "Zamfara", "Yobe", "Gombe", |
|
|
"Sokoto", "Kogi", "Bayelsa", "Nasarawa", "Jigawa" |
|
|
] |
|
|
|
|
|
|
|
|
hf_cache = "/models/huggingface" |
|
|
os.environ["HF_HOME"] = hf_cache |
|
|
os.environ["TRANSFORMERS_CACHE"] = hf_cache |
|
|
os.environ["HUGGINGFACE_HUB_CACHE"] = hf_cache |
|
|
os.makedirs(hf_cache, exist_ok=True) |
|
|
|