perf: bill

This commit is contained in:
archer
2023-07-13 22:53:44 +08:00
parent 726de0396b
commit f3715731c4
67 changed files with 915 additions and 1254 deletions

View File

@@ -1,6 +1,5 @@
import { Schema, model, models, Model } from 'mongoose';
import { AppSchema as AppType } from '@/types/mongoSchema';
import { ChatModelMap, OpenAiChatEnum } from '@/constants/model';
const AppSchema = new Schema({
userId: {
@@ -24,50 +23,6 @@ const AppSchema = new Schema({
type: Date,
default: () => new Date()
},
chat: {
relatedKbs: {
type: [Schema.Types.ObjectId],
ref: 'kb',
default: []
},
searchSimilarity: {
type: Number,
default: 0.8
},
searchLimit: {
type: Number,
default: 5
},
searchEmptyText: {
type: String,
default: ''
},
systemPrompt: {
type: String,
default: ''
},
limitPrompt: {
type: String,
default: ''
},
maxToken: {
type: Number,
default: 4000,
min: 100
},
temperature: {
type: Number,
min: 0,
max: 10,
default: 0
},
chatModel: {
// 聊天时使用的模型
type: String,
enum: Object.keys(ChatModelMap),
default: OpenAiChatEnum.GPT3516k
}
},
share: {
topNum: {
type: Number,

View File

@@ -1,7 +1,6 @@
import { Schema, model, models, Model } from 'mongoose';
import { ChatModelMap, embeddingModel } from '@/constants/model';
import { BillSchema as BillType } from '@/types/mongoSchema';
import { BillTypeMap } from '@/constants/user';
import { BillSourceEnum, BillSourceMap } from '@/constants/user';
const BillSchema = new Schema({
userId: {
@@ -9,36 +8,48 @@ const BillSchema = new Schema({
ref: 'user',
required: true
},
type: {
appName: {
type: String,
enum: Object.keys(BillTypeMap),
required: true
},
modelName: {
type: String,
enum: [...Object.keys(ChatModelMap), embeddingModel]
default: ''
},
appId: {
type: Schema.Types.ObjectId,
ref: 'app'
ref: 'app',
required: false
},
time: {
type: Date,
default: () => new Date()
},
textLen: {
// 提示词+响应的总字数
total: {
type: Number,
required: true
},
tokenLen: {
// 折算成 token 的数量
type: Number,
required: true
source: {
type: String,
enum: Object.keys(BillSourceMap),
default: BillSourceEnum.fastgpt
},
price: {
type: Number,
required: true
list: {
type: [
{
moduleName: {
type: String,
required: true
},
amount: {
type: Number,
required: true
},
model: {
type: String
},
tokenLen: {
type: Number
}
}
],
default: []
}
});

View File

@@ -1,22 +0,0 @@
import { Schema, model, models } from 'mongoose';
const SystemSchema = new Schema({
vectorMaxProcess: {
type: Number,
default: 10
},
qaMaxProcess: {
type: Number,
default: 10
},
pgIvfflatProbe: {
type: Number,
default: 10
},
sensitiveCheck: {
type: Boolean,
default: false
}
});
export const System = models['system'] || model('system', SystemSchema);

View File

@@ -28,13 +28,16 @@ const TrainingDataSchema = new Schema({
enum: Object.keys(TrainingTypeMap),
required: true
},
model: {
type: String,
required: true
},
prompt: {
// 拆分时的提示词
// qa split prompt
type: String,
default: ''
},
q: {
// 如果是
type: String,
default: ''
},