mirror of
https://github.com/woodchen-ink/openai-billing-query.git
synced 2025-07-19 14:32:00 +08:00
update
This commit is contained in:
parent
b6e65dc65a
commit
80619cb480
@ -9,6 +9,8 @@
|
|||||||
<link rel="stylesheet" href="./static/css-1.css" type="text/css" />
|
<link rel="stylesheet" href="./static/css-1.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="./static/mdui/mdui.css">
|
<link rel="stylesheet" href="./static/mdui/mdui.css">
|
||||||
<script src="./static/mdui/mdui.global.js"></script>
|
<script src="./static/mdui/mdui.global.js"></script>
|
||||||
|
|
||||||
|
<script>mdui.setColorScheme('#386a1f');</script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
@ -84,6 +86,7 @@
|
|||||||
查询
|
查询
|
||||||
</mdui-button>
|
</mdui-button>
|
||||||
|
|
||||||
|
|
||||||
<!-- 下半部分 -->
|
<!-- 下半部分 -->
|
||||||
<h4>页面列表</h4>
|
<h4>页面列表</h4>
|
||||||
<mdui-menu dense style="width:100%;margin-top:20px;">
|
<mdui-menu dense style="width:100%;margin-top:20px;">
|
||||||
|
41
static/js.js
41
static/js.js
@ -1,5 +1,4 @@
|
|||||||
|
|
||||||
mdui.setColorScheme('#006874');
|
|
||||||
function toggleProgressBar() {
|
function toggleProgressBar() {
|
||||||
let progressBarHeader = document.getElementById("progressbar-header");
|
let progressBarHeader = document.getElementById("progressbar-header");
|
||||||
let progressBarCells = document.querySelectorAll("td.progressbar");
|
let progressBarCells = document.querySelectorAll("td.progressbar");
|
||||||
@ -110,19 +109,19 @@ async function checkBilling(apiKey, apiUrl) {
|
|||||||
if (subscriptionData.plan.id.includes('payg')) {
|
if (subscriptionData.plan.id.includes('payg')) {
|
||||||
switch (subscriptionData.billing_mechanism) {
|
switch (subscriptionData.billing_mechanism) {
|
||||||
case 'advance':
|
case 'advance':
|
||||||
isSubscrible = '✅预付费';
|
isSubscrible = '<mdui-icon-check></mdui-icon-check>预付费';
|
||||||
break;
|
break;
|
||||||
case 'arrears':
|
case 'arrears':
|
||||||
isSubscrible = '✅已欠费';
|
isSubscrible = '<mdui-icon-check></mdui-icon-check>已欠费';
|
||||||
break;
|
break;
|
||||||
case null:
|
case null:
|
||||||
isSubscrible = '✅后付费';
|
isSubscrible = '<mdui-icon-check></mdui-icon-check>后付费';
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
isSubscrible = '✅';
|
isSubscrible = '<mdui-icon-check></mdui-icon-check>';
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
isSubscrible = '❌';
|
isSubscrible = '<mdui-icon-close></mdui-icon-close>';
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
@ -215,18 +214,18 @@ async function checkBilling(apiKey, apiUrl) {
|
|||||||
errors['rateLimits'] = error.message;
|
errors['rateLimits'] = error.message;
|
||||||
}
|
}
|
||||||
// 初始化模型查询结果
|
// 初始化模型查询结果
|
||||||
GPT35CheckResult = '❌';
|
GPT35CheckResult = '<mdui-icon-close></mdui-icon-close>';
|
||||||
GPT4CheckResult = '❌';
|
GPT4CheckResult = '<mdui-icon-close></mdui-icon-close>';
|
||||||
GPT432kCheckResult = '❌';
|
GPT432kCheckResult = '<mdui-icon-close></mdui-icon-close>';
|
||||||
//3.5模型查询
|
//3.5模型查询
|
||||||
let GPT35CheckSuccess = false; // 初始化为 false
|
let GPT35CheckSuccess = false; // 初始化为 false
|
||||||
try {
|
try {
|
||||||
const modelsCheckResponse = await fetch(modelsCheck, { headers });
|
const modelsCheckResponse = await fetch(modelsCheck, { headers });
|
||||||
const modelsCheckData = await modelsCheckResponse.json();
|
const modelsCheckData = await modelsCheckResponse.json();
|
||||||
|
|
||||||
GPT35CheckSuccess = GPT35CheckResult = Array.isArray(modelsCheckData.data) && modelsCheckData.data.some(item => item.id.includes('gpt-3.5-turbo')) ? '✅' : '❌';
|
GPT35CheckSuccess = GPT35CheckResult = Array.isArray(modelsCheckData.data) && modelsCheckData.data.some(item => item.id.includes('gpt-3.5-turbo')) ? '<mdui-icon-check></mdui-icon-check>' : '<mdui-icon-close></mdui-icon-close>';
|
||||||
GPT4CheckResult = Array.isArray(modelsCheckData.data) && modelsCheckData.data.some(item => item.id.includes('gpt-4')) ? '✅' : '❌';
|
GPT4CheckResult = Array.isArray(modelsCheckData.data) && modelsCheckData.data.some(item => item.id.includes('gpt-4')) ? '<mdui-icon-check></mdui-icon-check>' : '<mdui-icon-close></mdui-icon-close>';
|
||||||
GPT432kCheckResult = Array.isArray(modelsCheckData.data) && modelsCheckData.data.some(item => item.id.includes('gpt-4-32k')) ? '✅' : '❌';
|
GPT432kCheckResult = Array.isArray(modelsCheckData.data) && modelsCheckData.data.some(item => item.id.includes('gpt-4-32k')) ? '<mdui-icon-check></mdui-icon-check>' : '<mdui-icon-close></mdui-icon-close>';
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
}
|
}
|
||||||
@ -242,9 +241,9 @@ async function checkBilling(apiKey, apiUrl) {
|
|||||||
"model": "gpt-3.5-turbo",
|
"model": "gpt-3.5-turbo",
|
||||||
"messages": [{
|
"messages": [{
|
||||||
"role": "user",
|
"role": "user",
|
||||||
"content": "Hello"
|
"content": "hi"
|
||||||
}],
|
}],
|
||||||
"max_tokens": 5
|
"max_tokens": 1
|
||||||
});
|
});
|
||||||
|
|
||||||
let response = await fetch(urlCompletion, {
|
let response = await fetch(urlCompletion, {
|
||||||
@ -256,9 +255,9 @@ async function checkBilling(apiKey, apiUrl) {
|
|||||||
let data = await response.json();
|
let data = await response.json();
|
||||||
// 判断请求是否成功
|
// 判断请求是否成功
|
||||||
if (response.status === 200) {
|
if (response.status === 200) {
|
||||||
return ['✅', data.usage.total_tokens]; // 返回状态和 total_tokens
|
return ['<mdui-icon-check></mdui-icon-check>', data.usage.total_tokens]; // 返回状态和 total_tokens
|
||||||
} else {
|
} else {
|
||||||
return ['❌', null];
|
return ['<mdui-icon-close></mdui-icon-close>', null];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 调用 checkCompletion 函数并获取结果
|
// 调用 checkCompletion 函数并获取结果
|
||||||
@ -452,14 +451,14 @@ function sendRequest() {
|
|||||||
let GPT432kCheckResult = document.createElement("td");
|
let GPT432kCheckResult = document.createElement("td");
|
||||||
GPT432kCheckResult.textContent = data[6];
|
GPT432kCheckResult.textContent = data[6];
|
||||||
let highestModel = document.createElement("td");
|
let highestModel = document.createElement("td");
|
||||||
if (GPT35CheckResult.textContent === "✅" && GPT4CheckResult.textContent === "❌" && GPT432kCheckResult.textContent === "❌") {
|
if (GPT35CheckResult.textContent === "<mdui-icon-check></mdui-icon-check>" && GPT4CheckResult.textContent === "<mdui-icon-close></mdui-icon-close>" && GPT432kCheckResult.textContent === "<mdui-icon-close></mdui-icon-close>") {
|
||||||
highestModel.textContent = "gpt3.5";
|
highestModel.textContent = "gpt3.5";
|
||||||
} else if (GPT35CheckResult.textContent === "✅" && GPT4CheckResult.textContent === "✅" && GPT432kCheckResult.textContent === "❌") {
|
} else if (GPT35CheckResult.textContent === "<mdui-icon-check></mdui-icon-check>" && GPT4CheckResult.textContent === "<mdui-icon-check></mdui-icon-check>" && GPT432kCheckResult.textContent === "<mdui-icon-close></mdui-icon-close>") {
|
||||||
highestModel.textContent = "gpt4";
|
highestModel.textContent = "gpt4";
|
||||||
} else if (GPT35CheckResult.textContent === "✅" && GPT4CheckResult.textContent === "✅" && GPT432kCheckResult.textContent === "✅") {
|
} else if (GPT35CheckResult.textContent === "<mdui-icon-check></mdui-icon-check>" && GPT4CheckResult.textContent === "<mdui-icon-check></mdui-icon-check>" && GPT432kCheckResult.textContent === "<mdui-icon-check></mdui-icon-check>") {
|
||||||
highestModel.textContent = "gpt4-32K";
|
highestModel.textContent = "gpt4-32K";
|
||||||
} else {
|
} else {
|
||||||
highestModel.textContent = "❌";
|
highestModel.textContent = "<mdui-icon-close></mdui-icon-close>";
|
||||||
}
|
}
|
||||||
|
|
||||||
row.appendChild(highestModel);
|
row.appendChild(highestModel);
|
||||||
@ -517,7 +516,7 @@ function sendRequest() {
|
|||||||
}
|
}
|
||||||
rateLimitsText += `${modelName}: ${rateLimitsData[model].max_requests_per_1_minute}, ${rateLimitsData[model].max_tokens_per_1_minute}\n`;
|
rateLimitsText += `${modelName}: ${rateLimitsData[model].max_requests_per_1_minute}, ${rateLimitsData[model].max_tokens_per_1_minute}\n`;
|
||||||
} else {
|
} else {
|
||||||
rateLimitsText += model + ": ❌\n";
|
rateLimitsText += model + ": <mdui-icon-close></mdui-icon-close>\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rateLimitsDataContainer.textContent = rateLimitsText;
|
rateLimitsDataContainer.textContent = rateLimitsText;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user