| """ |
| 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) |