Spaces:
Sleeping
Sleeping
| 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) | |