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

本文介绍了一个用于查询 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
相关文章
宋宁峰二手平台账号曝光,原来不是真穷,而是不舍得给Q女士花钱..
“半年回血18万,他把旧爱也挂上了货架。”昨晚刷到这条热搜,我第一反应..
微信出现这条杠,你已经不是对方好友了
微信现在成了大家日常沟通最常用的工具。通讯录里躺着几百上千个好友。..
两年零融资做到1000万美金ARR,Chatbase的AI原生创业故事..
在当下这个AI浪潮中,绝大多数宣称“被AI赋能”的初创公司,其实都走在一..
微信这个锁定账号功能一定要知道,手机丢了也不怕坏人注销你账号..
手机早就成了随身携带的百宝箱,微信更是装着半生的人脉、攒下的零钱、绑..
相亲对象查我社交账号,我大方分享,他刷到一条特别动态..
第一章 相亲对象的质问雨滴在咖啡馆的落地窗上蜿蜒爬行,将窗外霓虹灯牌..
微信转账页面,一旦出现这几行字,立刻停手别转钱
#头条创作训练营#大家好,我是月光。每天给大家带来实用干货;不追噱头,..
别大意!微信这地方不删,别人随时登录你都发现不了..
一、开篇:账号安全无小事,这处设置务必及时自查 在日常使用场景中,多..
网警紧急预警!AI伪造骗局狂飙,换脸拟声防不胜防
五一假期刚过,一条重磅安全提醒刷屏全网:网警紧急预警,警惕AI伪造骗局..
抖音5个默认隐私开关,多数人常年都没关闭
现如今刷短视频早已成为全民日常消遣,无论是居家休闲、饭后放松,还是碎..
关于作者
卿嫣(普通会员)
文章
1948
关注
0
粉丝
0
点击领取今天的签到奖励!
签到排行

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

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

个人中心

每日签到

我的消息

内容搜索