payer-ai-prototypes / config.py
vin00d's picture
updates to app to display test options
d4f7ae0
Raw
History Blame Contribute Delete
2.3 kB
from __future__ import annotations
import os
from pathlib import Path
from typing import Optional
from dotenv import load_dotenv
from loguru import logger
load_dotenv()
BASE_DIR = Path(__file__).resolve().parent
CLAIMS_DATA_ROOT = Path(os.getenv("CLAIMS_DATA_ROOT", BASE_DIR / "data" / "claims"))
SCHEDULING_DATA_ROOT = Path(
os.getenv("SCHEDULING_DATA_ROOT", BASE_DIR / "data" / "scheduling")
)
CLAIM_PACKETS_ROOT = CLAIMS_DATA_ROOT / "mock_claim_packets"
CLAIMS_POLICY_RAG_JSONL = (
CLAIMS_DATA_ROOT / "rag" / "policy_benefit_rag" / "policy_benefit_chunks.jsonl"
)
CLAIMS_EXCEPTION_RAG_JSONL = (
CLAIMS_DATA_ROOT
/ "rag"
/ "exception_similarity_rag"
/ "resolved_exception_cases.jsonl"
)
SCHEDULING_MOCK_DATA_ROOT = SCHEDULING_DATA_ROOT / "mock_data"
SCHEDULING_PROVIDER_RAG_JSONL = (
SCHEDULING_DATA_ROOT
/ "rag"
/ "provider_specialty_matching"
/ "provider_specialty_profiles.jsonl"
)
OPENAI_CHAT_MODEL = os.getenv("OPENAI_CHAT_MODEL", "gpt-4o-mini")
OPENAI_EMBED_MODEL = os.getenv("OPENAI_EMBED_MODEL", "text-embedding-3-small")
HF_FT_EMBED_MODEL_URL = os.getenv("HF_FT_EMBED_MODEL_URL")
# Cost controls. Keep paid calls explicit for demos/HF Spaces.
USE_LLM = os.getenv("USE_LLM", "false").lower() == "true"
USE_PAID_EMBEDDINGS = os.getenv("USE_PAID_EMBEDDINGS", "false").lower() == "true"
LOG_LEVEL = os.getenv("LOG_LEVEL", "INFO")
logger.remove()
logger.add(lambda msg: print(msg, end=""), level=LOG_LEVEL)
logger.info("Config loaded")
logger.info(f"USE_LLM={USE_LLM}; USE_PAID_EMBEDDINGS={USE_PAID_EMBEDDINGS}")
logger.debug(f"CLAIMS_DATA_ROOT={CLAIMS_DATA_ROOT}")
logger.debug(f"SCHEDULING_DATA_ROOT={SCHEDULING_DATA_ROOT}")
def build_llm() -> Optional[object]:
"""Create the shared chat LLM only when explicitly enabled."""
if not USE_LLM:
logger.info("LLM disabled. Set USE_LLM=true to enable chat-completion calls.")
return None
try:
from langchain_openai import ChatOpenAI
logger.info(f"Creating ChatOpenAI model={OPENAI_CHAT_MODEL}")
return ChatOpenAI(model=OPENAI_CHAT_MODEL, temperature=0)
except Exception as exc:
logger.warning(
f"Could not create LLM. Falling back to deterministic logic. Error: {exc}"
)
return None
LLM = build_llm()