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

本文介绍了一个用于查询 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
关于作者
卿嫣(普通会员)
文章
581
关注
0
粉丝
0
点击领取今天的签到奖励!
签到排行

成员 网址收录40369 企业收录2981 印章生成216707 电子证书945 电子名片57 自媒体34015

@2022 All Rights Reserved 浙ICP备19035174号-7
0
0
分享
请选择要切换的马甲:

个人中心

每日签到

我的消息

内容搜索