Spaces:
Runtime error
Runtime error
| 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() | |