WellBePlusAssistant / config.py
natasha1704's picture
Update config.py
9ebf961 verified
"""
Centralised, cached access to runtime configuration.
"""
from functools import lru_cache
from importlib import resources
import json
import os
from pathlib import Path
import yaml
from dotenv import load_dotenv
@lru_cache(maxsize=None)
def _load_prompt_template() -> str:
with open("prompts/router_prompt.yml", "r") as fh:
return yaml.safe_load(fh)["template"]
@lru_cache(maxsize=None)
def _load_mcp_configs() -> dict:
cfg_path = Path(
os.getenv(
"MCP_CONFIG_PATH",
Path(__file__).resolve().parent / "settings" / "mcp_config.json",
)
)
with cfg_path.open() as fh:
return json.load(fh)["mcpServers"]
load_dotenv()
PROMPT_TEMPLATE: str = _load_prompt_template()
MCP_CONFIGS: dict = _load_mcp_configs()
MODEL_API_KEY: str = os.getenv("MODEL_API_KEY")
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
SMITHERY_API_KEY = os.getenv("SMITHERY_API_KEY")
MCP_CONFIGS["healthcare-mcp-public"]["args"].append(SMITHERY_API_KEY)
MCP_CONFIGS["healthcare-mcp-public"]["url"] = MCP_CONFIGS["healthcare-mcp-public"]["url"].format(api_key=SMITHERY_API_KEY)