126 lines
2.6 KiB
TypeScript
126 lines
2.6 KiB
TypeScript
import type { ModelSchema } from '@/types/mongoSchema';
|
|
|
|
export const embeddingModel = 'text-embedding-ada-002';
|
|
|
|
export enum OpenAiChatEnum {
|
|
'GPT35' = 'gpt-3.5-turbo',
|
|
'GPT4' = 'gpt-4',
|
|
'GPT432k' = 'gpt-4-32k'
|
|
}
|
|
|
|
export type ChatModelType = `${OpenAiChatEnum}`;
|
|
|
|
export const ChatModelMap = {
|
|
[OpenAiChatEnum.GPT35]: {
|
|
name: 'ChatGpt',
|
|
contextMaxToken: 4096,
|
|
maxTemperature: 1.5,
|
|
price: 3
|
|
},
|
|
[OpenAiChatEnum.GPT4]: {
|
|
name: 'Gpt4',
|
|
contextMaxToken: 8000,
|
|
maxTemperature: 1.5,
|
|
price: 30
|
|
},
|
|
[OpenAiChatEnum.GPT432k]: {
|
|
name: 'Gpt4-32k',
|
|
contextMaxToken: 8000,
|
|
maxTemperature: 1.5,
|
|
price: 30
|
|
}
|
|
};
|
|
|
|
export enum ModelStatusEnum {
|
|
running = 'running',
|
|
training = 'training',
|
|
pending = 'pending',
|
|
closed = 'closed'
|
|
}
|
|
|
|
export const formatModelStatus = {
|
|
[ModelStatusEnum.running]: {
|
|
colorTheme: 'green',
|
|
text: '运行中'
|
|
},
|
|
[ModelStatusEnum.training]: {
|
|
colorTheme: 'blue',
|
|
text: '训练中'
|
|
},
|
|
[ModelStatusEnum.pending]: {
|
|
colorTheme: 'gray',
|
|
text: '加载中'
|
|
},
|
|
[ModelStatusEnum.closed]: {
|
|
colorTheme: 'red',
|
|
text: '已关闭'
|
|
}
|
|
};
|
|
|
|
export enum ModelDataStatusEnum {
|
|
ready = 'ready',
|
|
waiting = 'waiting'
|
|
}
|
|
|
|
export const ModelDataStatusMap: Record<`${ModelDataStatusEnum}`, string> = {
|
|
ready: '训练完成',
|
|
waiting: '训练中'
|
|
};
|
|
|
|
/* 知识库搜索时的配置 */
|
|
// 搜索方式
|
|
export enum ModelVectorSearchModeEnum {
|
|
hightSimilarity = 'hightSimilarity', // 高相似度+禁止回复
|
|
lowSimilarity = 'lowSimilarity', // 低相似度
|
|
noContext = 'noContex' // 高相似度+无上下文回复
|
|
}
|
|
export const ModelVectorSearchModeMap: Record<
|
|
`${ModelVectorSearchModeEnum}`,
|
|
{
|
|
text: string;
|
|
similarity: number;
|
|
}
|
|
> = {
|
|
[ModelVectorSearchModeEnum.hightSimilarity]: {
|
|
text: '高相似度, 无匹配时拒绝回复',
|
|
similarity: 0.2
|
|
},
|
|
[ModelVectorSearchModeEnum.noContext]: {
|
|
text: '高相似度,无匹配时直接回复',
|
|
similarity: 0.2
|
|
},
|
|
[ModelVectorSearchModeEnum.lowSimilarity]: {
|
|
text: '低相似度匹配',
|
|
similarity: 0.8
|
|
}
|
|
};
|
|
|
|
export const defaultModel: ModelSchema = {
|
|
_id: 'modelId',
|
|
userId: 'userId',
|
|
name: '模型名称',
|
|
avatar: '/icon/logo.png',
|
|
status: ModelStatusEnum.pending,
|
|
updateTime: Date.now(),
|
|
chat: {
|
|
useKb: false,
|
|
searchMode: ModelVectorSearchModeEnum.hightSimilarity,
|
|
systemPrompt: '',
|
|
temperature: 0,
|
|
chatModel: OpenAiChatEnum.GPT35
|
|
},
|
|
share: {
|
|
isShare: false,
|
|
isShareDetail: false,
|
|
intro: '',
|
|
collection: 0
|
|
},
|
|
security: {
|
|
domain: ['*'],
|
|
contextMaxLen: 1,
|
|
contentMaxLen: 1,
|
|
expiredTime: 9999,
|
|
maxLoadAmount: 1
|
|
}
|
|
};
|