anystat / utils /save_secrets.py
ElvisWang111's picture
Upload folder using huggingface_hub
d235bdf verified
import toml
from pathlib import Path
# 我们把 secrets 放在项目根目录下的 .streamlit 文件夹
BASE = Path(__file__).parent
SECRETS_DIR = BASE / ".streamlit"
SECRETS_FILE = SECRETS_DIR / "secrets.toml"
def load_local_api_keys() -> dict[str, str]:
"""
从项目目录的 .streamlit/secrets.toml 中读取 [api_keys] 部分。
如果文件或该节不存在,返回空字典。
"""
if not SECRETS_FILE.exists():
return {}
data = toml.load(SECRETS_FILE)
return data.get("api_keys", {})
def update_local_api_key(model_name: str, api_key: str) -> None:
"""
将一对 model_name: api_key 写入 .streamlit/secrets.toml 的 [api_keys]。
如果文件或该节不存在,会自动创建;保留其它已有设置。
"""
SECRETS_DIR.mkdir(exist_ok=True)
if SECRETS_FILE.exists():
data = toml.load(SECRETS_FILE)
else:
data = {}
data.setdefault("api_keys", {})[model_name] = api_key
with SECRETS_FILE.open("w", encoding="utf-8") as f:
toml.dump(data, f)