AUXteam's picture
Upload folder using huggingface_hub
88e4347 verified
from python.helpers.api import ApiHandler, Request, Response
from python.helpers import settings, dotenv
import os
class Set(ApiHandler):
@classmethod
def requires_auth(cls) -> bool:
return True
@classmethod
def requires_csrf(cls) -> bool:
return False
@classmethod
def requires_api_key(cls) -> bool:
return True
async def process(self, input: dict, request: Request) -> dict:
# Separate API keys from other settings
api_keys = {}
other_settings = {}
for k, v in input.items():
if k.startswith("api_key_"):
provider = k.replace("api_key_", "").upper()
api_keys[provider] = v
elif k.endswith("_API_KEY") or k.endswith("_API_TOKEN"):
api_keys[k.upper()] = v
else:
other_settings[k] = v
if other_settings:
settings.set_settings_delta(other_settings)
if api_keys:
current_settings = settings.get_settings()
for key, val in api_keys.items():
# Save to settings
current_settings["api_keys"][key.lower()] = val
# Save to dotenv and os.environ
dotenv.save_dotenv_value(f"API_KEY_{key.upper()}", val)
dotenv.save_dotenv_value(f"{key.upper()}_API_KEY", val)
# Special case for 'other' provider remapping to 'openai'
if key.upper() == "OTHER":
dotenv.save_dotenv_value("OPENAI_API_KEY", val)
dotenv.save_dotenv_value("API_KEY_OPENAI", val)
settings.set_settings(current_settings)
return {"status": "success", "message": "Settings updated"}