mirror of
https://github.com/karpathy/nanochat.git
synced 2026-05-08 16:59:59 +00:00
61 lines
1.8 KiB
Python
61 lines
1.8 KiB
Python
"""
|
|
Verify external service access from environment variables.
|
|
|
|
Expected env vars:
|
|
- HF_TOKEN
|
|
- CLOUDFLARE_API_TOKEN
|
|
- CLOUDFLARE_ACCOUNT_ID
|
|
"""
|
|
|
|
import argparse
|
|
import os
|
|
|
|
import requests
|
|
from huggingface_hub import HfApi
|
|
|
|
|
|
def verify_hf(repo_id, token_env):
|
|
token = os.environ.get(token_env)
|
|
if not token:
|
|
return False, f"Missing {token_env}"
|
|
api = HfApi(token=token)
|
|
info = api.model_info(repo_id)
|
|
return True, f"HF access OK: {info.id}"
|
|
|
|
|
|
def verify_cloudflare(token_env):
|
|
token = os.environ.get(token_env)
|
|
if not token:
|
|
return False, f"Missing {token_env}"
|
|
response = requests.get(
|
|
"https://api.cloudflare.com/client/v4/user/tokens/verify",
|
|
headers={"Authorization": f"Bearer {token}"},
|
|
timeout=20,
|
|
)
|
|
response.raise_for_status()
|
|
payload = response.json()
|
|
if not payload.get("success", False):
|
|
return False, f"Cloudflare verify failed: {payload.get('errors')}"
|
|
status = payload.get("result", {}).get("status")
|
|
return True, f"Cloudflare token OK: status={status}"
|
|
|
|
|
|
def main():
|
|
parser = argparse.ArgumentParser(description="Verify Hugging Face and Cloudflare access from env vars")
|
|
parser.add_argument("--hf-repo-id", default="ManmohanSharma/nanochat-d24", help="HF repo id to verify")
|
|
parser.add_argument("--hf-token-env", default="HF_TOKEN", help="HF token env var")
|
|
parser.add_argument("--cloudflare-token-env", default="CLOUDFLARE_API_TOKEN", help="Cloudflare token env var")
|
|
args = parser.parse_args()
|
|
|
|
hf_ok, hf_message = verify_hf(args.hf_repo_id, args.hf_token_env)
|
|
cf_ok, cf_message = verify_cloudflare(args.cloudflare_token_env)
|
|
|
|
print(hf_message)
|
|
print(cf_message)
|
|
if not (hf_ok and cf_ok):
|
|
raise SystemExit(1)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|