VEDAGI1's picture
Update settings.py
c84a11b verified
import os
from typing import Dict, Any, List
# Residency (informational; enforce via your infra)
CANADA_RESIDENCY_REQUIRED = True
CLOUD_REGION = os.getenv("CLOUD_REGION", "ca")
# ---- Cohere API ----
COHERE_API_KEY = os.getenv("COHERE_API_KEY", "")
COHERE_API_URL = os.getenv("COHERE_API_URL", "") # optional private base
COHERE_TIMEOUT_S = float(os.getenv("COHERE_TIMEOUT_S", "180")) # Increased from 60 to 180 seconds
COHERE_MODEL_PRIMARY = os.getenv("COHERE_MODEL_PRIMARY", "command-a-03-2025")
COHERE_EMBED_MODEL = os.getenv("COHERE_EMBED_MODEL", "embed-english-v3.0")
# ---- Open-model fallback (opt-in) ----
USE_OPEN_FALLBACKS = os.getenv("USE_OPEN_FALLBACKS", "0") in ("1", "true", "True")
OPEN_LLM_CANDIDATES: List[str] = [
"Qwen/Qwen2.5-72B-Instruct",
"meta-llama/Meta-Llama-3.1-70B-Instruct",
"mistralai/Mixtral-8x22B-Instruct-v0.1",
"NousResearch/Meta-Llama-3.1-8B-Instruct",
"mistralai/Mistral-7B-Instruct-v0.3",
]
LOCAL_MAX_NEW_TOKENS = int(os.getenv("LOCAL_MAX_NEW_TOKENS", "1200"))
# ---- App knobs ----
MODEL_SETTINGS: Dict[str, Any] = {
"temperature": float(os.getenv("TEMP", "0.3")),
"top_p": float(os.getenv("TOP_P", "0.9")),
"repetition_penalty": float(os.getenv("REP_PEN", "1.12")),
"max_new_tokens": int(os.getenv("MAX_NEW_TOKENS", "1500")),
"timeout_s": COHERE_TIMEOUT_S,
}
HEALTHCARE_SETTINGS = {
"supported_file_types": [".csv", ".txt", ".md", ".pdf"],
"healthcare_keywords": [
"hospital", "clinic", "surgery", "surgical", "wait time", "consult", "triage",
"beds", "occupancy", "icu", "ambulatory", "perioperative", "zone", "health authority",
"province", "nova scotia", "iwk"
]
}
GENERAL_CONVERSATION_PROMPT = "You are a helpful, concise assistant."
HEALTHCARE_SYSTEM_PROMPT = (
"You are a Canadian healthcare operations copilot. "
"Follow the scenario tasks exactly. Calculations are done deterministically in code; "
"do not invent numbers."
)
USE_SCENARIO_ENGINE = os.getenv("USE_SCENARIO_ENGINE", "1") not in ("0", "false", "False")
# Debug flags
DEBUG_PLAN = os.getenv("DEBUG_PLAN", "1") in ("1", "true", "True")
# Storage/local
DATA_DIR = os.getenv("DATA_DIR", "./data")
RAG_INDEX_DIR = os.getenv("RAG_INDEX_DIR", "./rag_index")
PERSIST_CONTENT = False
SNAPSHOT_PATH = os.getenv("SNAPSHOT_PATH", "./snapshots")
# Existing settings you already have:
# GENERAL_CONVERSATION_PROMPT = os.getenv("GENERAL_CONVERSATION_PROMPT", "You are a helpful data analyst.")
# COHERE_MODEL_PRIMARY = os.getenv("COHERE_MODEL_PRIMARY", "command-r-plus")
# COHERE_TIMEOUT_S = int(os.getenv("COHERE_TIMEOUT_S", "60"))
#USE_OPEN_FALLBACKS = os.getenv("USE_OPEN_FALLBACKS", "false").lower() == "true"
# --- HIPAA flags ---
# Master switch for PHI-aware behavior
PHI_MODE = os.getenv("PHI_MODE", "true").lower() == "true"
# Persist history? Default OFF under PHI mode (in-memory only if True).
PERSIST_HISTORY = os.getenv("PERSIST_HISTORY", "false").lower() == "true"
# For persistent stores, set a non-zero TTL policy (days). 0 = no persistence.
HISTORY_TTL_DAYS = int(os.getenv("HISTORY_TTL_DAYS", "0"))
# Redact obvious identifiers before external LLM calls
REDACT_BEFORE_LLM = os.getenv("REDACT_BEFORE_LLM", "true").lower() == "true"
# Allow sending PHI to external LLM vendors (requires BAA!). Default: False
ALLOW_EXTERNAL_PHI = os.getenv("ALLOW_EXTERNAL_PHI", "false").lower() == "true"