web-backend/backendUtils/prompts.py (29 lines of code) (raw):

import os import json from backendUtils.blob_functions import get_blob_content import yaml from configuration import Configuration config = Configuration() def load_prompts_from_cosmos(): """Fetch prompts from Cosmos DB and return as a dictionary.""" # Placeholder for Cosmos DB fetching logic # Replace with actual implementation return { "system_prompt": "Default system prompt from Cosmos", "user_prompt": "Default user prompt from Cosmos" } def load_prompts(): """Fetch prompts JSON from blob storage and return as a dictionary.""" prompt_file = config.get_value("PROMPT_FILE") if not prompt_file: raise ValueError("Environment variable PROMPT_FILE is not set.") if prompt_file=="COSMOS": return load_prompts_from_cosmos() try: prompt_yaml = get_blob_content("prompts", prompt_file).decode('utf-8') prompts = yaml.safe_load(prompt_yaml) prompts_json = json.dumps(prompts, indent=4) prompts = json.loads(prompts_json) # Ensure it's valid JSON except Exception as e: raise RuntimeError(f"Failed to load prompts from blob storage: {e}") # Validate required fields required_keys = ["system_prompt", "user_prompt"] for key in required_keys: if key not in prompts: raise KeyError(f"Missing required prompt key: {key}") return prompts