RNAQwen / scripts /_scratch /_ds_usage.py
RomanCohort's picture
add scripts/_scratch/_ds_usage.py
edb0d8c verified
Raw History Blame Contribute Delete
1.83 kB
"""DeepSeek 账户探针:列出可用模型 / 查余额。**只打印掩码,不打印密钥。**
python scripts/_ds_usage.py --list-models
python scripts/_ds_usage.py --balance
python scripts/_ds_usage.py --both
"""
from __future__ import annotations
import argparse
import json
import sys
import urllib.request
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
sys.path.insert(0, str(ROOT / "src"))
from rnaqwen import secrets # noqa: E402
API = "https://api.deepseek.com"
def _get(path: str) -> dict:
key = secrets.resolve_api_key(provider="deepseek")
req = urllib.request.Request(API + path, headers={"Authorization": f"Bearer {key}"})
with urllib.request.urlopen(req, timeout=30) as resp:
return json.loads(resp.read().decode())
def main() -> int:
ap = argparse.ArgumentParser()
ap.add_argument("--list-models", action="store_true")
ap.add_argument("--balance", action="store_true")
ap.add_argument("--both", action="store_true")
args = ap.parse_args()
if not (args.list_models or args.balance or args.both):
args.both = True
print("key:", secrets.mask(secrets.resolve_api_key(provider="deepseek")))
if args.list_models or args.both:
try:
m = _get("/models")
print("models:", [d.get("id") for d in m.get("data", [])])
except Exception as exc: # noqa: BLE001
print("models: 查询失败", type(exc).__name__, str(exc)[:160])
if args.balance or args.both:
try:
b = _get("/user/balance")
print("balance:", json.dumps(b, ensure_ascii=False))
except Exception as exc: # noqa: BLE001
print("balance: 查询失败", type(exc).__name__, str(exc)[:160])
return 0
if __name__ == "__main__":
sys.exit(main())