先提交一手

This commit is contained in:
aixianling
2023-05-15 17:05:36 +08:00
parent b99f837c72
commit b773d87ff3
9 changed files with 263 additions and 40 deletions

View File

@@ -1,3 +1,4 @@
import {dayjs} from "element-plus";
import axios from "./axios";
import {AI_AVATAR, OPEN_AI_KEY} from "./env";
@@ -17,10 +18,16 @@ export class ChatGPT extends BaseModel {
avatar: AI_AVATAR, name: 'ChatGPT', id: "gpt-3.5-turbo", desc: "ChatGPT-3.5所基于的模型",
});
this.apiKey = OPEN_AI_KEY
this.headers = {
"Content-Type": "application/json",
Accept: "application/json",
Authorization: `Bearer ${this.apiKey}`
}
}
setApiKey(key) {
this.apiKey = key
this.headers["Authorization"] = `Bearer ${this.apiKey}`
}
async chat(history) {
@@ -41,6 +48,25 @@ export class ChatGPT extends BaseModel {
}).then(res => res?.body?.getReader());
}
async getAccount() {
const {headers} = this
const usages = await axios.get(ChatGPT.base + "/v1/dashboard/billing/subscription", {headers}).then(res => res.json());
const endDate = usages.access_until
if (endDate) {
const startDate = new Date(endDate - 90 * 24 * 60 * 60);
const formattedDate = time => dayjs(time).format("YYYY-MM-DD")
return axios.get(`${ChatGPT.base}/v1/dashboard/billing/usage?start_date=${formattedDate(startDate * 1000)}&end_date=${formattedDate(endDate * 1000)}`,
{headers}).then(res => res.json()).then(res => {
usages.total_usage = res.total_usage
const names = usages.account_name.split(" ")
return {
...usages, username: names.at(-1) + names[0],
usage: (usages.total_usage / 100)?.toFixed(2),
total: usages.hard_limit_usd?.toFixed(2)
}
});
} else return Promise.reject("没有权限或者网络异常,请重新尝试!")
}
}
export class ChatGLM extends BaseModel {
@@ -48,7 +74,7 @@ export class ChatGLM extends BaseModel {
constructor() {
super({
avatar: AI_AVATAR, name: 'ChatGLM', id: "chatglm-6b", desc: "ChatGLM-6B所基于的模型"
avatar: "https://cdn.cunwuyun.cn/chat/chatglm.svg", name: 'ChatGLM', id: "chatglm-6b", desc: "ChatGLM-6B所基于的模型"
});
}