OpenAI API 使用情况查询 - 订阅额度、使用情况和剩余额度
import\u0020datetime\nimport\u0020requests\n\ndef\u0020get_subscription_usage(apikey):\n\u0020try:\n\u0020\u0020session\u0020=\u0020requests.Session()\n\u0020\u0020subscription_url\u0020=\u0020"https://api.openai.com/v1/dashboard/billing/subscription"\n\u0020\u0020headers\u0020=\u0020{\n\u0020\u0020\u0020"Authorization":\u0020f"Bearer\u0020{apikey}",\n\u0020\u0020\u0020"Content-Type":\u0020"application/json"\n\u0020\u0020}\n\u0020\u0020subscription_response\u0020=\u0020session.get(subscription_url, headers=headers)\n\u0020\u0020subscription_response.raise_for_status()\n\u0020\u0020data\u0020=\u0020subscription_response.json()\n\u0020\u0020total\u0020=\u0020data.get("hard_limit_usd")\n\n\u0020\u0020start_date\u0020=\u0020(datetime.datetime.now()\u0020-\u0020datetime.timedelta(days=99)).strftime("%Y-%m-%d")\n\u0020\u0020end_date\u0020=\u0020(datetime.datetime.now()\u0020+\u0020datetime.timedelta(days=1)).strftime("%Y-%m-%d")\n\u0020\u0020billing_url\u0020=\u0020f"https://api.openai.com/v1/dashboard/billing/usage?start_date={start_date}&end_date={end_date}"\n\u0020\u0020billing_response\u0020=\u0020session.get(billing_url, headers=headers)\n\u0020\u0020billing_response.raise_for_status()\n\u0020\u0020data\u0020=\u0020billing_response.json()\n\u0020\u0020total_usage\u0020=\u0020data.get("total_usage")\u0020/\u0020100\n\u0020\u0020daily_costs\u0020=\u0020data.get("daily_costs")\n\u0020\u0020days\u0020=\u0020min(5, len(daily_costs))\n\u0020\u0020recent\u0020=\u0020f"最近{days}天使用情况\n"\n\u0020\u0020for\u0020i\u0020in\u0020range(days):\n\u0020\u0020\u0020cur\u0020=\u0020daily_costs[-i-1]\n\u0020\u0020\u0020date\u0020=\u0020datetime.datetime.fromtimestamp(cur.get("timestamp")).strftime("%Y-%m-%d")\n\u0020\u0020\u0020line_items\u0020=\u0020cur.get("line_items")\n\u0020\u0020\u0020cost\u0020=\u0020sum(item.get("cost")\u0020for\u0020item\u0020in\u0020line_items)\n\u0020\u0020\u0020recent\u0020+=\u0020f"\t{date}\t{cost\u0020/\u0020100}\n"\n\n\u0020\u0020return\u0020f"\n总额:\t{total:.4f}\n已用:\t{total_usage:.4f}\n剩余:\t{total-total_usage:.4f}\n\n{recent}"\n\u0020except\u0020requests.exceptions.RequestException\u0020as\u0020e:\n\u0020\u0020return\u0020str(e)\n\n#\u0020使用示例:\n#\u0020apikey\u0020=\u0020"your_api_key"\n#\u0020result\u0020=\u0020get_subscription_usage(apikey)\n#\u0020print(result)
原文地址: https://www.cveoy.top/t/topic/pDTl 著作权归作者所有。请勿转载和采集!