* model config

* feat: model config ui

* perf: rename variable

* feat: custom request url

* perf: model buffer

* perf: init model

* feat: json model config

* auto login

* fix: ts

* update packages

* package

* fix: dockerfile
This commit is contained in:
Archer
2025-01-22 22:59:28 +08:00
committed by GitHub
parent 16629e32a7
commit e009be51e7
93 changed files with 2361 additions and 564 deletions

View File

@@ -4,16 +4,16 @@ import { immer } from 'zustand/middleware/immer';
import axios from 'axios';
import { OAuthEnum } from '@fastgpt/global/support/user/constant';
import type {
AudioSpeechModelType,
TTSModelType,
LLMModelItemType,
ReRankModelItemType,
VectorModelItemType,
EmbeddingModelItemType,
STTModelType
} from '@fastgpt/global/core/ai/model.d';
import { InitDateResponse } from '@/global/common/api/systemRes';
import { FastGPTFeConfigsType } from '@fastgpt/global/common/system/types';
import { SubPlanType } from '@fastgpt/global/support/wallet/sub/type';
import { defaultWhisperModel } from '@fastgpt/global/core/ai/model';
import { ModelTypeEnum } from '@fastgpt/global/core/ai/model';
import { TeamErrEnum } from '@fastgpt/global/common/error/code/team';
type LoginStoreType = { provider: `${OAuthEnum}`; lastRoute: string; state: string };
@@ -51,10 +51,10 @@ type State = {
systemVersion: string;
llmModelList: LLMModelItemType[];
datasetModelList: LLMModelItemType[];
vectorModelList: VectorModelItemType[];
audioSpeechModelList: AudioSpeechModelType[];
embeddingModelList: EmbeddingModelItemType[];
ttsModelList: TTSModelType[];
reRankModelList: ReRankModelItemType[];
whisperModel: STTModelType;
sttModelList: STTModelType[];
initStaticData: (e: InitDateResponse) => void;
appType?: string;
setAppType: (e?: string) => void;
@@ -127,10 +127,10 @@ export const useSystemStore = create<State>()(
systemVersion: '0.0.0',
llmModelList: [],
datasetModelList: [],
vectorModelList: [],
audioSpeechModelList: [],
embeddingModelList: [],
ttsModelList: [],
reRankModelList: [],
whisperModel: defaultWhisperModel,
sttModelList: [],
initStaticData(res) {
set((state) => {
state.initDataBufferId = res.bufferId;
@@ -139,12 +139,22 @@ export const useSystemStore = create<State>()(
state.subPlans = res.subPlans ?? state.subPlans;
state.systemVersion = res.systemVersion ?? state.systemVersion;
state.llmModelList = res.llmModels ?? state.llmModelList;
state.llmModelList =
res.activeModelList?.filter((item) => item.type === ModelTypeEnum.llm) ??
state.llmModelList;
state.datasetModelList = state.llmModelList.filter((item) => item.datasetProcess);
state.vectorModelList = res.vectorModels ?? state.vectorModelList;
state.audioSpeechModelList = res.audioSpeechModels ?? state.audioSpeechModelList;
state.reRankModelList = res.reRankModels ?? state.reRankModelList;
state.whisperModel = res.whisperModel ?? state.whisperModel;
state.embeddingModelList =
res.activeModelList?.filter((item) => item.type === ModelTypeEnum.embedding) ??
state.embeddingModelList;
state.ttsModelList =
res.activeModelList?.filter((item) => item.type === ModelTypeEnum.tts) ??
state.ttsModelList;
state.reRankModelList =
res.activeModelList?.filter((item) => item.type === ModelTypeEnum.rerank) ??
state.reRankModelList;
state.sttModelList =
res.activeModelList?.filter((item) => item.type === ModelTypeEnum.stt) ??
state.sttModelList;
});
}
})),
@@ -158,10 +168,10 @@ export const useSystemStore = create<State>()(
systemVersion: state.systemVersion,
llmModelList: state.llmModelList,
datasetModelList: state.datasetModelList,
vectorModelList: state.vectorModelList,
audioSpeechModelList: state.audioSpeechModelList,
embeddingModelList: state.embeddingModelList,
ttsModelList: state.ttsModelList,
reRankModelList: state.reRankModelList,
whisperModel: state.whisperModel
sttModelList: state.sttModelList
})
}
)

View File

@@ -0,0 +1,18 @@
import { GET, PUT, DELETE } from '@/web/common/api/request';
import type { listResponse } from '@/pages/api/core/ai/model/list';
import type { updateBody } from '@/pages/api/core/ai/model/update';
import type { deleteQuery } from '@/pages/api/core/ai/model/delete';
import type { SystemModelItemType } from '@fastgpt/service/core/ai/type';
import type { updateWithJsonBody } from '@/pages/api/core/ai/model/updateWithJson';
export const getSystemModelList = () => GET<listResponse>('/core/ai/model/list');
export const getSystemModelDetail = (model: string) =>
GET<SystemModelItemType>('/core/ai/model/detail', { model });
export const putSystemModel = (data: updateBody) => PUT('/core/ai/model/update', data);
export const deleteSystemModel = (data: deleteQuery) => DELETE('/core/ai/model/delete', data);
export const getModelConfigJson = () => GET<string>('/core/ai/model/getConfigJson');
export const putUpdateWithJson = (data: updateWithJsonBody) =>
PUT('/core/ai/model/updateWithJson', data);