[原创] 一行 Linux 指令显示 OpenAI KEY 的余额和有效期 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
yinmin
V2EX    程序员

[原创] 一行 Linux 指令显示 OpenAI KEY 的余额和有效期

  •  
  •   yinmin 2023-04-02 01:21:00 +08:00 4567 次点击
    这是一个创建于 922 天前的主题,其中的信息可能已经有所发展或是发生改变。

    查询 OpenAI KEY 余额一直不方便。花了些时间写了一行代码,可以直接输出余额和有效期。大家可以试试

    一行 Linux 指令直接显示 OpenAI KEY 的余额和有效期

    curl -s -H "Authorization: Bearer [OpenAI KEY]" https://api.openai.com/dashboard/billing/credit_grants | python3 -c "import sys, json, datetime; data = json.load(sys.stdin); print(data if 'total_granted' not in data else ('总 金 额:%s\n 已 使 用:%s\n 剩余金额:%s\n 截至日期:%s' % (data['total_granted'],data['total_used'],data['total_available'],datetime.datetime.fromtimestamp(data['grants']['data'][0]['expires_at']))));" 

    在 ubuntu/debian 上测试 OK 。输出结果的样式是

    总 金 额:18.0
    已 使 用:2.28
    剩余金额:15.72
    截至日期:2023-06-01 08:00:00

    运行前可以先 curl https://api.openai.com/cdn-cgi/trace 检查 IP 是否符合 OpenAI 要求

    需要通过 socks5 连接 OpenAI API ,使用以下指令

    先检查访问 openai api 的 IP 地址

    curl --socks5-hostname [socks5-ip]:[port] https://api.openai.com/cdn-cgi/trace 

    再运行查询命令:

    curl -s --socks5-hostname [socks5-ip]:[port] -H "Authorization: Bearer [OpenAI KEY]" https://api.openai.com/dashboard/billing/credit_grants | python3 -c "import sys, json, datetime; data = json.load(sys.stdin); print(data if 'total_granted' not in data else ('总 金 额:%s\n 已 使 用:%s\n 剩余金额:%s\n 截至日期:%s' % (data['total_granted'],data['total_used'],data['total_available'],datetime.datetime.fromtimestamp(data['grants']['data'][0]['expires_at']))));" 

    如果 windows 安装了 python3 ,这行命令也是适用的。

    9 条回复    2023-04-02 16:00:39 +08:00
    yinmin
        1
    yinmin  
    OP
       2023-04-02 01:35:39 +08:00
    写了一个 sh 文件,可以方便查询:

    sudo nano /usr/bin/openai_credit.sh
    =====

    curl -s -H "Authorization: Bearer $1" https://api.openai.com/dashboard/billing/credit_grants | python3 -c "import sys, json, datetime; data = json.load(sys.stdin); print(data if 'total_granted' not in data else ('总 金 额:%s\n 已 使 用:%s\n 剩余金额:%s\n 截至日期:%s' % (data['total_granted'],data['total_used'],data['total_available'],datetime.datetime.fromtimestamp(data['grants']['data'][0]['expires_at']))));"

    ======

    sudo chmod +x /usr/bin/openai_credit.sh

    查询时使用:openai_credit.sh [openai key]
    zictos
        2
    zictos  
       2023-04-02 06:41:34 +08:00
    是不是你也发现之前的方法不行了,凌晨 1 点半开始,我以前在 python 中使用的方法不行了。
    提示:
    {
    "error": {
    "message": "Your request to GET /dashboard/billing/credit_grants must be made with a session key (that is, it can only be made from the browser). You made it with the following key type: secret.",
    "type": "server_error",
    "param": null,
    "code": null
    }
    }
    zictos
        3
    zictos  
       2023-04-02 06:46:06 +08:00
    你真的还可以吗?我用 curl 试了,还是跟上面报错是一样的,怎么那么巧,你刚一写就不行了。
    curl -s -H "Authorization: Bearer sk-abcdefghijklmn" https://api.openai.com/dashboard/billing/credit_grants
    T3rryy
        4
    T3rryy  
       2023-04-02 08:45:20 +08:00
    难蚌.. 楼主刚发完贴 OPEN 改了 api ..
    yinmin
        5
    yinmin  
    OP
       2023-04-02 09:20:49 +08:00 via iPhone
    @zictos @T3rryy
    最近 openai 的查账 api 不稳定,多试几次
    chinaqq
        6
    chinaqq  
       2023-04-02 09:27:20 +08:00
    @zictos 同样,我的 WP 插件 [OpenAI Tools for WordPress & WooCommerce]( https://wordpress.org/plugins/openai-tools-for-wp-wc/)和 curl 都这样报错了。
    yinmin
        7
    yinmin  
    OP
       2023-04-02 09:36:19 +08:00 via iPhone
    @T3rryy 晕。openai 是改 api 了。大家从其他渠道查余额还正常吗
    miraku
        8
    miraku  
       2023-04-02 14:04:45 +08:00
    今天查余额, 接口解析失败了没返回结果给前端, 我还以为我账号被封了
    rootx
        9
    rootx  
       2023-04-02 16:00:39 +08:00 via iPhone
    有最新的方案吗?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3608 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 00:48 PVG 08:48 LAX 17:48 JFK 20:48
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86