Files
robinhood/backend/app/services/settings.py

45 lines
1.1 KiB
Python

from __future__ import annotations
from typing import Any, Dict
from app.config import settings
_state: Dict[str, Any] = {
"models": {
"default_model": settings.OPENROUTER_MODEL,
"temperature": 0.3,
"max_tokens": 800,
},
"exchanges": {
"binance": {"enabled": True},
"alpha_vantage": {
"enabled": True,
"has_api_key": bool(settings.ALPHA_VANTAGE_API_KEY),
},
},
}
def get_models() -> Dict[str, Any]:
return dict(_state["models"]) # shallow copy
def update_models(patch: Dict[str, Any]) -> Dict[str, Any]:
allowed = {"default_model", "temperature", "max_tokens"}
for k, v in patch.items():
if k in allowed:
_state["models"][k] = v
return get_models()
def get_exchanges() -> Dict[str, Any]:
return dict(_state["exchanges"]) # shallow copy
def update_exchanges(patch: Dict[str, Any]) -> Dict[str, Any]:
# Shallow merge per top-level key
for k, v in patch.items():
if k in _state["exchanges"] and isinstance(v, dict):
_state["exchanges"][k].update(v)
return get_exchanges()