> 自媒体 > (AI)人工智能 > OpenAI 计费信息查询
OpenAI 计费信息查询
来源:科技逗趣
2023-07-21 16:20:54
322
管理
引言

本文介绍了一个用于查询 OpenAI 计费信息的应用程序。通过输入 OpenAI API Key,用户可以查询订阅信息、计费使用情况以及最近几天的消费详情。该应用帮助用户了解其使用 OpenAI 服务的费用情况,以便进行成本控制和预算规划。

技术概述

本应用使用了以下主要技术和框架:

python:应用的开发语言。Streamlit:用于构建用户界面和交互的开源库。Requests:用于发送 HTTP 请求并处理响应的库。架构设计

该应用采用简单的前后端分离架构:

前端:使用 Streamlit 框架构建用户界面,包括输入 OpenAI API Key 和显示查询结果。后端:通过使用 Requests 库发送 HTTP 请求,与 OpenAI API 进行通信并获取计费信息。开发环境搭建

要搭建该应用的开发环境,按照以下步骤进行操作:

安装 Python:确保已经安装了 Python。安装依赖库:在命令行中运行以下命令安装所需的依赖库:

pip install streamlitpip install requests核心功能实现

以下是应用的核心功能及相应的代码示例:

import streamlit as stimport requestsimport datetimest.title("OpenAI 计费信息查询")# 输入API Keyapikey = st.text_input("请输入您的OpenAI API Key:")# 点击查询按钮if st.button("查询"): # 设置请求头 headers = {"Authorization": "Bearer " apikey, "Content-Type": "application/json"} # 请求订阅信息 subscription_url = "https://api.openai.com/v1/dashboard/billing/subscription" subscription_response = requests.get(subscription_url, headers=headers) # 判断请求是否成功 if subscription_response.status_code == 200: data = subscription_response.json() total = data.get("hard_limit_usd") else: st.error(subscription_response.text) st.stop() # 设置查询日期范围 start_date = (datetime.datetime.now() - datetime.timedelta(days=99)).strftime( "%Y-%m-%d" ) end_date = (datetime.datetime.now() datetime.timedelta(days=1)).strftime( "%Y-%m-%d" ) # 请求计费信息 billing_url = f"https://api.openai.com/v1/dashboard/billing/usage?start_date={start_date}&end_date={end_date}" billing_response = requests.get(billing_url, headers=headers) # 判断请求是否成功 if billing_response.status_code == 200: data = billing_response.json() total_usage = data.get("total_usage") / 100 daily_costs = data.get("daily_costs") days = min(5, len(daily_costs)) recent = f"最近{days}天使用情况 n" for i in range(days): cur = daily_costs[-i - 1] date = datetime.datetime.fromtimestamp(cur.get("timestamp")).strftime( "%Y-%m-%d" ) line_items = cur.get("line_items") cost = 0 for item in line_items: cost = item.get("cost") recent = f"t{date}t{cost / 100} n" else: st.error(billing_response.text) st.stop()

# 显示查询结果st.write( f"n总额:t{total:.4f} n" f"已用:t{total_usage:.4f} n" f"剩余:t{total-total_usage:.4f} n" f"n" recent)

## 代码解析以下是关键代码的解析和说明:```pythonimport streamlit as stimport requestsimport datetime

导入所需的库。

st.title("OpenAI 计费信息查询")

使用 Streamlit 库设置应用的标题。

apikey = st.text_input("请输入您的OpenAI API Key:")

通过 Streamlit 库获取用户输入的 OpenAI API Key。

if st.button("查询"): # 设置请求头 headers = {"Authorization": "Bearer " apikey, "Content-Type": "application/json"} # 请求订阅信息 subscription_url = "https://api.openai.com/v1/dashboard/billing/subscription" subscription_response = requests.get(subscription_url, headers=headers) # 判断请求是否成功 if subscription_response.status_code == 200: data = subscription_response.json() total = data.get("hard_limit_usd") else: st.error(subscription_response.text) st.stop()

当用户点击查询按钮时,发送 HTTP 请求获取订阅信息,并根据响应状态码判断请求是否成功。

start_date = (datetime.datetime.now() - datetime.timedelta(days=99)).strftime( "%Y-%m-%d" ) end_date = (datetime.datetime.now() datetime.timedelta(days=1)).strftime( "%Y-%m-%d" )

设置查询日期范围,包括起始日期和结束日期。

billing_url = f"https://api.openai.com/v1/dashboard/billing/usage?start_date={start_date}&end_date={end_date}" billing_response = requests.get(billing_url, headers=headers) # 判断请求是否成功 if billing_response.status_code == 200: data = billing_response.json() total_usage = data.get("total_usage") / 100 daily_costs = data.get("daily_costs") days = min(5, len(daily_costs)) recent = f"最近{days}天使用情况 n" for i in range(days): cur = daily_costs[-i - 1] date = datetime.datetime.fromtimestamp(cur.get("timestamp")).strftime( "%Y-%m-%d" ) line_items = cur.get("line_items") cost = 0 for item in line_items: cost = item.get("cost") recent = f"t{date}t{cost / 100} n" else: st.error(billing_response.text) st.stop()

复制代码发送 HTTP 请求获取计费信息,并根据响应状态码判断请求是否成功。如果成功,从响应数据中提取总使用量、每日费用等信息,并生成最近几天的使用情况的字符串。```pythonst.write( f"n总额:t{total:.4f} n" f"已用:t{total_usage:.4f} n" f"剩余:t{total-total_usage:.4f} n" f"n" recent )

使用 Streamlit 库将查询结果显示在应用界面上。

测试和部署

要进行应用的测试和部署,可以按照以下步骤进行操作:

在开发环境中运行应用代码,确保应用能够正常运行并查询到正确的计费信息。部署应用到目标环境,例如服务器或云平台。配置环境变量,包括 OpenAI API Key 和其他必要的配置信息。启动应用服务,并确保服务正常运行。使用浏览器或其他 HTTP 客户端工具访问部署的应用,验证查询功能和结果的准确性。总结和展望

本文介绍了一个用于查询 OpenAI 计费信息的应用。通过该应用,用户可以方便地获取其使用 OpenAI 服务的费用情况。应用使用了 Python、Streamlit 和 Requests 等技术和框架,实现了前后端分离的架构。

未来,可以进一步改进和扩展该应用,例如添加用户身份验证、生成费用报表、设置费用预警等功能,以满足更多用户的需求。同时,可以考虑优化代码结构和性能,提升应用的稳定性和响应速度。

0
点赞
赏礼
赏钱
0
收藏
免责声明:本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本网证实,对本文以及其中全部或者 部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 凡本网注明 “来源:XXX(非本站)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对 其真实性负责。 如因作品内容、版权和其它问题需要同本网联系的,请在一周内进行,以便我们及时处理。 QQ:617470285 邮箱:617470285@qq.com
相关文章
梅赛德斯将推“小号”G级越野车,或2027年亮相
【网通社快报】梅赛德斯-奔驰计划推出一款更紧凑的“Baby”G-Class,作为..
定位华为乾崑阿维塔首款全场景运动轿车,阿维塔06T外观公布..
IT之家 2 月 5 日消息,今天上午,阿维塔通过官微公布了“华为乾崑阿维塔..
一汽全新中级轿车将上市,定名为悦意08,车长4920mm,两种动力..
近日,一汽奔腾发布最新消息,旗下的“奔腾悦意”新能源序列升级为独立的..
20-30万闭眼入!5款中大型轿车实测大公开
想买20-30万的中大型轿车,空间大、科技感足,又怕踩坑?今天给大家唠唠5..
2025轿车销量TOP10,自主逆袭合资,大众仍保住3车席位
漫哥又来扒销量榜了,2025年的国内轿车市场势头还是不错滴,全年轿车零售..
新车 | 1.5T插混动力/掀背式轿车,smart精灵#6 EHD官方测试谍照..
文:懂车帝原创 李烁[懂车帝原创 产品] 日前,smart精灵#6 EHD官方测试谍..
超50%部件更新!奔驰新一代S级轿车正式亮相!黄仁勋宣布将与奔驰在L4级自动..
每经记者:董天意 每经编辑:余婷婷1月30日,梅赛德斯-奔驰(以下简称奔..
10万左右新车燃油版轿车,家用这五款最值得买
有粉丝说推荐一下10万左右的新车轿车,不选SUV,不选新能源电车混合动力..
年轻人买轿车不用买太贵,2026有“真香价”的3款轿车,高价低配..
买燃油轿车,不想买太贵的,大多人都想买低价高配的,而且低价位的车还是..
关于作者
卿嫣(普通会员)
文章
1938
关注
0
粉丝
0
点击领取今天的签到奖励!
签到排行

成员 网址收录40418 企业收录2986 印章生成263660 电子证书1157 电子名片68 自媒体106672

0
0
分享
请选择要切换的马甲:

个人中心

每日签到

我的消息

内容搜索