Spaces:
Sleeping
Sleeping
| 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" |