This commit is contained in:
vastxie
2024-02-04 21:06:59 +08:00
parent 4aaa8d05f7
commit 435fc44522
180 changed files with 790 additions and 1476 deletions

View File

@@ -45,6 +45,10 @@ __decorate([
(0, swagger_1.ApiProperty)({ example: 1, description: 'key的权重' }),
__metadata("design:type", Number)
], SetModelDto.prototype, "keyWeight", void 0);
__decorate([
(0, swagger_1.ApiProperty)({ example: 1, description: '模型排序' }),
__metadata("design:type", Number)
], SetModelDto.prototype, "modelOrder", void 0);
__decorate([
(0, swagger_1.ApiProperty)({ example: 4096, description: '模型支持的最大TOken数量', required: true }),
__metadata("design:type", Number)

View File

@@ -42,6 +42,10 @@ __decorate([
(0, typeorm_1.Column)({ comment: '模型总计使用的token数量', default: 0 }),
__metadata("design:type", Number)
], ModelsTypeEntity.prototype, "useToken", void 0);
__decorate([
(0, typeorm_1.Column)({ comment: '模型排序', default: 1 }),
__metadata("design:type", Number)
], ModelsTypeEntity.prototype, "modelOrder", void 0);
__decorate([
(0, typeorm_1.Column)({ comment: '单词调用扣除的次数', default: 1 }),
__metadata("design:type", Number)

View File

@@ -50,6 +50,10 @@ __decorate([
(0, typeorm_1.Column)({ comment: 'key权重', default: 1 }),
__metadata("design:type", Number)
], ModelsEntity.prototype, "keyWeight", void 0);
__decorate([
(0, typeorm_1.Column)({ comment: 'key权重', default: 1 }),
__metadata("design:type", Number)
], ModelsEntity.prototype, "modelOrder", void 0);
__decorate([
(0, typeorm_1.Column)({ comment: 'key的使用次数', default: 0 }),
__metadata("design:type", Number)

View File

@@ -18,7 +18,6 @@ const typeorm_1 = require("@nestjs/typeorm");
const typeorm_2 = require("typeorm");
const models_entity_1 = require("./models.entity");
const status_constant_1 = require("../../common/constants/status.constant");
const baidu_1 = require("../chatgpt/baidu");
const utils_1 = require("../../common/utils");
const modelType_entity_1 = require("./modelType.entity");
let ModelsService = class ModelsService {
@@ -33,7 +32,6 @@ let ModelsService = class ModelsService {
}
async onModuleInit() {
await this.initCalcKey();
this.refreshBaiduAccesstoken();
}
async initCalcKey() {
this.keyPoolMap = {};
@@ -114,9 +112,6 @@ let ModelsService = class ModelsService {
if (Number(keyType !== 1)) {
const res = await this.modelsEntity.save(params);
await this.initCalcKey();
if (keyType === 2) {
this.refreshBaiduAccesstoken();
}
return res;
}
else {
@@ -162,6 +157,9 @@ let ModelsService = class ModelsService {
key && (where.key = (0, typeorm_2.Like)(`%${key}%`));
const [rows, count] = await this.modelsEntity.findAndCount({
where: where,
order: {
modelOrder: 'ASC'
},
skip: (page - 1) * size,
take: size,
});
@@ -176,10 +174,13 @@ let ModelsService = class ModelsService {
async modelsList() {
const cloneModelMaps = JSON.parse(JSON.stringify(this.modelMaps));
Object.keys(cloneModelMaps).forEach(key => {
cloneModelMaps[key] = Array.from(cloneModelMaps[key].map(t => {
cloneModelMaps[key] = cloneModelMaps[key].sort((a, b) => a.modelOrder - b.modelOrder);
cloneModelMaps[key] = Array.from(cloneModelMaps[key]
.map(t => {
const { modelName, model, deduct, deductType, maxRounds } = t;
return { modelName, model, deduct, deductType, maxRounds };
}).reduce((map, obj) => map.set(obj.modelName, obj), new Map()).values());
})
.reduce((map, obj) => map.set(obj.modelName, obj), new Map()).values());
});
return {
modelTypeList: this.modelTypes,
@@ -194,27 +195,6 @@ let ModelsService = class ModelsService {
.where('id = :id', { id })
.execute();
}
async refreshBaiduAccesstoken() {
const allKeys = await this.modelsEntity.find({ where: { keyType: 2 } });
const keysMap = {};
allKeys.forEach(keyInfo => {
const { key, secret } = keyInfo;
if (!keysMap.key) {
keysMap[key] = [{ keyInfo }];
}
else {
keysMap[key].push(keyInfo);
}
});
Object.keys(keysMap).forEach(async (key) => {
const { secret, id } = keysMap[key][0]['keyInfo'];
const accessToken = await (0, baidu_1.getAccessToken)(key, secret);
await this.modelsEntity.update({ key }, { accessToken });
});
setTimeout(() => {
this.initCalcKey();
}, 1000);
}
async getRandomDrawKey() {
const drawkeys = await this.modelsEntity.find({ where: { isDraw: true, status: true } });
if (!drawkeys.length) {