From b219c72c4a14efef8f237ff620bf3f3a3affb2a3 Mon Sep 17 00:00:00 2001 From: wangdan-fit2cloud Date: Tue, 6 May 2025 10:13:52 +0800 Subject: [PATCH] feat: model --- ui/src/api/model/model.ts | 66 +++++------------- ui/src/api/model/provider.ts | 48 ++++++++++--- ui/src/locales/lang/zh-CN/common.ts | 67 +++++++++++++++++++ ui/src/locales/lang/zh-CN/index.ts | 3 +- ui/src/request/index.ts | 8 +-- ui/src/stores/modules/login.ts | 6 +- ui/src/stores/modules/user.ts | 5 +- .../model/component/SelectProviderDialog.vue | 2 +- 8 files changed, 135 insertions(+), 70 deletions(-) create mode 100644 ui/src/locales/lang/zh-CN/common.ts diff --git a/ui/src/api/model/model.ts b/ui/src/api/model/model.ts index 20b0a3dde..146a399d6 100644 --- a/ui/src/api/model/model.ts +++ b/ui/src/api/model/model.ts @@ -1,15 +1,13 @@ -import { request } from '../../request/index' + import { Result } from '@/request/Result' import { get, post, del, put } from '@/request/index' import { type Ref } from 'vue' import type { - modelRequest, - Provider, ListModelRequest, Model, BaseModel, CreateModelRequest, - EditModelRequest + EditModelRequest, } from '@/api/type/model' import type { FormField } from '@/components/dynamics-form/type' import type { KeyValue } from '../type/common' @@ -22,42 +20,11 @@ const prefix_provider = '/provider' */ const getModel: ( request?: ListModelRequest, - loading?: Ref + loading?: Ref, ) => Promise>> = (data, loading) => { return get(`${prefix}`, data, loading) } -/** - * 获得供应商列表 - */ -const getProvider: (loading?: Ref) => Promise>> = (loading) => { - return get(`${prefix_provider}`, {}, loading) -} - -/** - * 获得供应商列表 - */ -const getProviderByModelType: (model_type: string, loading?: Ref) => Promise>> = (model_type, loading) => { - return get(`${prefix_provider}`, {model_type}, loading) -} - -/** - * 获取模型创建表单 - * @param provider - * @param model_type - * @param model_name - * @param loading - * @returns - */ -const getModelCreateForm: ( - provider: string, - model_type: string, - model_name: string, - loading?: Ref -) => Promise>> = (provider, model_type, model_name, loading) => { - return get(`${prefix_provider}/model_form`, { provider, model_type, model_name }, loading) -} - /** * 获取模型参数表单 * @param model_id 模型id @@ -66,7 +33,7 @@ const getModelCreateForm: ( */ const getModelParamsForm: ( model_id: string, - loading?: Ref + loading?: Ref, ) => Promise>> = (model_id, loading) => { return get(`model/${model_id}/model_params_form`, {}, loading) } @@ -78,7 +45,7 @@ const getModelParamsForm: ( */ const listModelType: ( provider: string, - loading?: Ref + loading?: Ref, ) => Promise>>> = (provider, loading?: Ref) => { return get(`${prefix_provider}/model_type_list`, { provider }, loading) } @@ -93,7 +60,7 @@ const listModelType: ( const listBaseModel: ( provider: string, model_type: string, - loading?: Ref + loading?: Ref, ) => Promise>> = (provider, model_type, loading) => { return get(`${prefix_provider}/model_list`, { provider, model_type }, loading) } @@ -102,9 +69,9 @@ const listBaseModelParamsForm: ( provider: string, model_type: string, model_name: string, - loading?: Ref + loading?: Ref, ) => Promise>> = (provider, model_type, model_name, loading) => { - return get(`${prefix_provider}/model_params_form`, { provider, model_type, model_name}, loading) + return get(`${prefix_provider}/model_params_form`, { provider, model_type, model_name }, loading) } /** @@ -115,7 +82,7 @@ const listBaseModelParamsForm: ( */ const createModel: ( request: CreateModelRequest, - loading?: Ref + loading?: Ref, ) => Promise> = (request, loading) => { return post(`${prefix}`, request, {}, loading) } @@ -129,7 +96,7 @@ const createModel: ( const updateModel: ( model_id: string, request: EditModelRequest, - loading?: Ref + loading?: Ref, ) => Promise> = (model_id, request, loading) => { return put(`${prefix}/${model_id}`, request, {}, loading) } @@ -143,7 +110,7 @@ const updateModel: ( const updateModelParamsForm: ( model_id: string, request: any[], - loading?: Ref + loading?: Ref, ) => Promise> = (model_id, request, loading) => { return put(`${prefix}/${model_id}/model_params_form`, request, {}, loading) } @@ -156,7 +123,7 @@ const updateModelParamsForm: ( */ const getModelById: (model_id: string, loading?: Ref) => Promise> = ( model_id, - loading + loading, ) => { return get(`${prefix}/${model_id}`, {}, loading) } @@ -168,7 +135,7 @@ const getModelById: (model_id: string, loading?: Ref) => Promise) => Promise> = ( model_id, - loading + loading, ) => { return get(`${prefix}/${model_id}/meta`, {}, loading) } @@ -180,20 +147,18 @@ const getModelMetaById: (model_id: string, loading?: Ref) => Promise) => Promise> = ( model_id, - loading + loading, ) => { return put(`${prefix}/${model_id}/pause_download`, undefined, {}, loading) } const deleteModel: (model_id: string, loading?: Ref) => Promise> = ( model_id, - loading + loading, ) => { return del(`${prefix}/${model_id}`, undefined, {}, loading) } export default { getModel, - getProvider, - getModelCreateForm, listModelType, listBaseModel, listBaseModelParamsForm, @@ -205,5 +170,4 @@ export default { pauseDownload, getModelParamsForm, updateModelParamsForm, - getProviderByModelType } diff --git a/ui/src/api/model/provider.ts b/ui/src/api/model/provider.ts index 2099658c1..8467cf14d 100644 --- a/ui/src/api/model/provider.ts +++ b/ui/src/api/model/provider.ts @@ -1,12 +1,44 @@ import { Result } from '@/request/Result' import { get, post } from '@/request/index' import type { Ref } from 'vue' -const trigger: ( - provider: string, - method: string, - request_body: any, - loading?: Ref -) => Promise | string>> = (provider, method, request_body, loading) => { - return post(`provider/${provider}/${method}`, {}, request_body, loading) +import type { Provider } from '@/api/type/model' +import type { FormField } from '@/components/dynamics-form/type' +const prefix_provider = '/provider' +/** + * 获得供应商列表 + */ +const getProvider: (loading?: Ref) => Promise>> = (loading) => { + return get(`${prefix_provider}`, {}, loading) +} + +/** + * 获得供应商列表 + */ +const getProviderByModelType: ( + model_type: string, + loading?: Ref, +) => Promise>> = (model_type, loading) => { + return get(`${prefix_provider}`, { model_type }, loading) +} + +/** + * 获取模型创建表单 + * @param provider + * @param model_type + * @param model_name + * @param loading + * @returns + */ +const getModelCreateForm: ( + provider: string, + model_type: string, + model_name: string, + loading?: Ref, +) => Promise>> = (provider, model_type, model_name, loading) => { + return get(`${prefix_provider}/model_form`, { provider, model_type, model_name }, loading) +} +export default { + getProvider, + getModelCreateForm, + getProviderByModelType, } -export default { trigger, get } diff --git a/ui/src/locales/lang/zh-CN/common.ts b/ui/src/locales/lang/zh-CN/common.ts new file mode 100644 index 000000000..db1e7e731 --- /dev/null +++ b/ui/src/locales/lang/zh-CN/common.ts @@ -0,0 +1,67 @@ +export default { + create: '创建', + createSuccess: '创建成功', + copy: '复制', + copySuccess: '复制成功', + copyError: '复制失败', + save: '保存', + saveSuccess: '保存成功', + delete: '删除', + deleteSuccess: '删除成功', + setting: '设置', + settingSuccess: '设置成功', + submit: '提交', + submitSuccess: '提交成功', + edit: '编辑', + editSuccess: '编辑成功', + modify: '修改', + modifySuccess: '修改成功', + add: '添加', + addSuccess: '添加成功', + cancel: '取消', + confirm: '确定', + tip: '提示', + refresh: '刷新', + search: '搜索', + clear: '清空', + professional: '购买专业版', + createDate: '创建日期', + createTime: '创建时间', + operation: '操作', + character: '字符', + export: '导出', + exportSuccess: '导出成功', + unavailable: '(不可用)', + public: '公有', + private: '私有', + paramSetting: '参数设置', + creator: '创建者', + author: '作者', + debug: '调试', + required: '必填', + noData: '暂无数据', + result: '结果', + fileUpload: { + document: '文档', + image: '图片', + audio: '音频', + video: '视频', + other: '其他文件', + addExtensions: '添加后缀名', + existingExtensionsTip: '文件后缀已存在', + }, + status: { + label: '状态', + enableSuccess: '启用成功', + disableSuccess: '禁用成功' + }, + inputPlaceholder: '请输入', + title: '标题', + content: '内容', + param: { + outputParam: '输出参数', + inputParam: '输入参数', + initParam: '启动参数' + }, + rename: '重命名' +} diff --git a/ui/src/locales/lang/zh-CN/index.ts b/ui/src/locales/lang/zh-CN/index.ts index af4dd8605..086e70d75 100644 --- a/ui/src/locales/lang/zh-CN/index.ts +++ b/ui/src/locales/lang/zh-CN/index.ts @@ -4,7 +4,7 @@ import views from './views' import theme from './theme' import layout from './layout' import dynamicsForm from './dynamics-form' -// import common from './common' +import common from './common' // import chat from './ai-chat' export default { lang: '简体中文', @@ -13,4 +13,5 @@ export default { theme, layout, dynamicsForm, + common } diff --git a/ui/src/request/index.ts b/ui/src/request/index.ts index e67aa05ec..4f35ee077 100644 --- a/ui/src/request/index.ts +++ b/ui/src/request/index.ts @@ -43,14 +43,14 @@ instance.interceptors.response.use( if (response.data) { if (response.data.code !== 200 && !(response.data instanceof Blob)) { if (response.config.url.includes('/application/authentication')) { - return Promise.reject(response.data.data) + return Promise.reject(response.data) } if ( !response.config.url.includes('/valid') && !response.config.url.includes('/function_lib/debug') ) { MsgError(response.data.message) - return Promise.reject(response.data.data) + return Promise.reject(response.data) } } } @@ -101,9 +101,9 @@ const promise: ( .then((response) => { // blob类型的返回状态是response.status if (response.status === 200) { - resolve(response?.data?.data || response) + resolve(response?.data || response) } else { - reject(response?.data?.data || response) + reject(response?.data || response) } }) .catch((error) => { diff --git a/ui/src/stores/modules/login.ts b/ui/src/stores/modules/login.ts index 024c8c601..7bc487f2b 100644 --- a/ui/src/stores/modules/login.ts +++ b/ui/src/stores/modules/login.ts @@ -30,9 +30,9 @@ const useLoginStore = defineStore('login', { }, async asyncLogin(data: LoginRequest, loading?: Ref) { - return loginApi.login(data).then((ok: any) => { - this.token = ok.token - localStorage.setItem('token', ok.token) + return loginApi.login(data).then((ok) => { + this.token = ok?.data?.token + localStorage.setItem('token', ok?.data?.token) const user = useUserStore() return user.profile(loading) }) diff --git a/ui/src/stores/modules/user.ts b/ui/src/stores/modules/user.ts index 8ff41f4a8..9513582c5 100644 --- a/ui/src/stores/modules/user.ts +++ b/ui/src/stores/modules/user.ts @@ -37,8 +37,9 @@ const useLoginStore = defineStore('user', { }, async profile(loading?: Ref) { return UserApi.getUserProfile(loading).then((ok) => { - this.userInfo = ok - useLocalStorage(localeConfigKey, 'en-US').value = ok?.language || this.getLanguage() + this.userInfo = ok.data + useLocalStorage(localeConfigKey, 'en-US').value = + ok?.data?.language || this.getLanguage() // return this.asyncGetProfile() }) }, diff --git a/ui/src/views/model/component/SelectProviderDialog.vue b/ui/src/views/model/component/SelectProviderDialog.vue index 4108f75eb..39ad3da12 100644 --- a/ui/src/views/model/component/SelectProviderDialog.vue +++ b/ui/src/views/model/component/SelectProviderDialog.vue @@ -73,7 +73,7 @@ const checkModelType = (model_type: string) => { selectModelType.value = model_type currentModelType.value = modelTypeOptions.filter((item) => item.value === model_type)[0].text ModelApi.getProviderByModelType(model_type, loading).then((ok) => { - list_provider.value = ok.data + list_provider.value = ok list_provider.value.sort((a, b) => a.provider.localeCompare(b.provider)) }) }