如何构建您自己的 OpenAI 成本计算器

我们现在拥有自己的域,可以在其中发布新帖子。在那里订阅我们。

太长了;博士

OPENAI_API_TOKENOPENAI_API_TOKEN

在这篇文章中,我们将了解如何构建自己的 OpenAI 成本计算器。

OpenAI 订阅详情

订阅

正在对订阅端点进行调用。这是一个卷曲。

卷曲 'https://api.openai.com/dashboard/billing/subscription' -H '权限:api.openai.com' -H '接受:*/*' -H '接受语言:en-GB,en -US;q=0.9,en;q=0.8' -H '授权:承载 sess-${SESSION_ID}' -H 'openai-organization: org-${ORG_ID}' -H '来源:https://platform .openai.com' -H '引用:https://platform.openai.com/' -H 'sec-fetch-dest:空' -H 'sec-fetch-mode:cors' -H 'sec-fetch- site: same-site' -H 'sec-gpc: 1' -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML,如 Gecko) Chrome/103.0.5060.53 Safari/ 537.36'——压缩

这是上面的curl的响应

{“object”:“billing_subscription”,“has_ payment_method”:true,“canceled”:false,“canceled_at”:null,“delinquent”:null,“access_until”:1685249945,“soft_limit”:1000000,“hard_limit”:2000000 , "system_hard_limit": 2000000, "soft_limit_usd": 100.0, "hard_limit_usd": 120.0, "system_hard_limit_usd": 120.0, "plan": { "title": "按需付费", "id": "payg " }, "account_name": null, "po_number": null, "billing_email": null, "tax_ids": null, "billing_address": { "city": "city_name", "line1": "地址行 1", "line2": "地址行 2", "state": "state", "country": "IN", "postal_code": "111111" }, "business_address": null }
sess-{session_id}
sess-{session_id}OPENAI_API_KEY
OPENAI_API_KEYsk-
卷曲 'https://api.openai.com/dashboard/billing/subscription' -H '权限:api.openai.com' -H '接受:*/*' -H '接受语言:en-GB,en -US;q=0.9,en;q=0.8' -H '授权:承载 ${OPENAI_API_KEY}' -H 'openai-组织:org-${ORG_ID}' -H '来源:https://platform.openai .com' -H '引用:https://platform.openai.com/' -H 'sec-fetch-dest:空' -H 'sec-fetch-mode:cors' -H 'sec-fetch-site: same-site' -H 'sec-gpc: 1' -H '用户代理:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML,如 Gecko) Chrome/103.0.5060.53 Safari/537.36' --压缩

此curl 调用的响应是相同的。

订阅调用对于获取计费限制(软和硬)、计划详细信息以及计费帐户详细信息和地址非常有用。

获取订阅详细信息的Python代码

OPENAI_API_TOKENORG_ID
import requests def get_openai_subscription_details(api_key, org_id=None): ''' 从 OpenAI 获取订阅详细信息 ''' headers = { 'authority': 'api.openai.com', 'accept': '*/*', 'accept -language': 'en-GB,en-US;q=0.9,en;q=0.8', '授权': f'Bearer {api_key}', 'origin': 'https://platform.openai.com ', 'referer': 'https://platform.openai.com/', 'sec-fetch-dest': '空', 'sec-fetch-mode': 'cors', 'sec-fetch-site' : 'same-site', 'sec-gpc': '1', 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, 如 Gecko) Chrome/103.0.5060.53 Safari/537.36', } if org_id: headers['openai-organization'] = f'org-{org_id}' response = requests.get('https://api.openai.com/dashboard/billing/subscription', headers=headers) return response.json() OPENAI_API_KEY = '' # 设置要计算成本的值 print(get_openai_subscription_details(OPENAI_API_KEY))

OpenAI 成本详情

但我如何获得到目前为止已花费的费用呢?

用法

这是卷曲调用:

卷曲 'https://api.openai.com/dashboard/billing/usage?end_date=2023-06-01&start_date=2023-05-01' -H '权限:api.openai.com' -H '接受:*/ *' -H '接受语言:en-GB,en-US;q=0.9,en;q=0.8' -H '授权:承载 ${OPENAI_API_KEY}' -H 'openai-组织:org-${ORG_ID }' -H '来源:https://platform.openai.com' -H '引用者:https://platform.openai.com/' -H 'sec-fetch-dest:空' -H 'sec-fetch -mode: cors' -H 'sec-fetch-site: same-site' -H 'sec-gpc: 1' -H '用户代理: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 ( KHTML,如 Gecko) Chrome/103.0.5060.53 Safari/537.36' --compressed

以及上述调用的响应

{ "object": "list", "daily_costs": [ { "timestamp": 1682899200.0, "line_items": [ { "name": "指导模型", "cost": 0.00144 }, { "name": "聊天models", "cost": 26.369 }, { "name": "GPT-4", "cost": 111.978 }, { "name": "微调模型", "cost": 0.0 }, { "name" ": "嵌入模型", "cost": 0.0002 }, { "name": "图像模型", "cost": 0.0 }, { "name": "音频模型", "cost": 0.0 } ] }, { "timestamp": 1685145600.0, "line_items": [ { "name": "指导模型", "cost": 0.0 }, { "name": "聊天模型", "cost": 0.0144 }, { "name" : "GPT-4", "cost": 0.0 }, { "name": "微调模型", "cost": 0.0 }, { "name": "嵌入模型", "cost": 0.0 }, { "name": "图像模型", "cost": 0.0 }, { "name": "音频模型", "cost": 0.0 } ] } ], "total_usage": 649.65 }
每日费用
  • 指导模型

  • 聊天模特

  • GPT-4

  • 微调模型

  • 嵌入模型

  • 图像模型

  • 音频模型。

开始日期2020-06-11

这里最好的部分是这个 API 调用在令牌级别工作,因此您可以使用它来计算令牌级别的成本。您可以为各种应用程序或客户端创建多个令牌,然后为每个令牌维护一个限制。这是 OpenAI 当前平台完全缺失的东西。

用于获取成本详细信息的 Python 代码

OPENAI_API_KEYstart_dateend_dateORG_ID
def get_openai_cost_details(api_key, start_date, end_date, org_id=None): ''' 从 OpenAI 获取成本详细信息。 start_date 和 end_date 格式:2023-05-28 ''' headers = { 'authority': 'api.openai.com', 'accept': '*/*', 'accept-language': 'en-GB,en -US;q=0.9,en;q=0.8', '授权': f'Bearer {api_key}', '来源': 'https://platform.openai.com', 'referer': 'https:// /platform.openai.com/', 'sec-fetch-dest': '空', 'sec-fetch-mode': 'cors', 'sec-fetch-site': '同一站点', 'sec- gpc': '1', 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.53 Safari/537.36', } if org_id: headers ['openai-organization'] = f'org-{org_id}' params = { 'end_date': end_date, 'start_date': start_date } response = requests.get( 'https://api.openai.com/dashboard/ billing/usage', params=params, headers=headers ) return response.json() OPENAI_API_KEY = '' # 设置要计算成本的值 print(get_openai_cost_details(OPENAI_API_KEY, '2023-05-01', '2023 -06-01'))

OpenAI 资助详情

信用赠款
卷曲 'https://api.openai.com/dashboard/billing/credit_grants>' -H '权限:api.openai.com' -H '接受:*/*' -H '接受语言:en-GB, en-US;q=0.9,en;q=0.8' -H '授权:承载 ${OPENAI_SESSION_KEY}' -H 'openai-组织:org-${ORG_ID}' -H '来源:https://platform. openai.com' -H '引用:https://platform.openai.com/' -H 'sec-fetch-dest:空' -H 'sec-fetch-mode:cors' -H 'sec-fetch-site : 同站点' -H 'sec-gpc: 1' -H '用户代理: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, 如 Gecko) Chrome/103.0.5060.53 Safari/537.36 '--压缩

这是回应

{“对象”:“credit_summary”,“total_granted”:100.0,“total_used”:100,“total_available”:0,“赠款”:{“对象”:“列表”,“数据”:[{“对象”: “credit_grant”,“id”:“”,“grant_amount”:100.0,“used_amount”:100.0,“ effective_at”:1685249945.0,“expires_at”:1685249945.0 } ] } }
session_keyOPENAI_API_KEY
{'error': {'message': '您的 GET /dashboard/billing/credit_grants 请求必须使用会话密钥进行(也就是说,只能从浏览器进行)。您使用以下密钥类型创建了它:secret。','type':'server_error','param':None,'code':None}}

如果您确实想获取信用详细信息,则必须首先使用登录调用获取会话密钥。

有几点需要注意
订阅计费OPENAI_API_KEYOPENAI_SESSION_KEY