feat: model

This commit is contained in:
wangdan-fit2cloud 2025-05-06 10:13:52 +08:00
parent 4cb513dd3f
commit b219c72c4a
8 changed files with 135 additions and 70 deletions

View File

@ -1,15 +1,13 @@
import { request } from '../../request/index'
import { Result } from '@/request/Result' import { Result } from '@/request/Result'
import { get, post, del, put } from '@/request/index' import { get, post, del, put } from '@/request/index'
import { type Ref } from 'vue' import { type Ref } from 'vue'
import type { import type {
modelRequest,
Provider,
ListModelRequest, ListModelRequest,
Model, Model,
BaseModel, BaseModel,
CreateModelRequest, CreateModelRequest,
EditModelRequest EditModelRequest,
} from '@/api/type/model' } from '@/api/type/model'
import type { FormField } from '@/components/dynamics-form/type' import type { FormField } from '@/components/dynamics-form/type'
import type { KeyValue } from '../type/common' import type { KeyValue } from '../type/common'
@ -22,42 +20,11 @@ const prefix_provider = '/provider'
*/ */
const getModel: ( const getModel: (
request?: ListModelRequest, request?: ListModelRequest,
loading?: Ref<boolean> loading?: Ref<boolean>,
) => Promise<Result<Array<Model>>> = (data, loading) => { ) => Promise<Result<Array<Model>>> = (data, loading) => {
return get(`${prefix}`, data, loading) return get(`${prefix}`, data, loading)
} }
/**
*
*/
const getProvider: (loading?: Ref<boolean>) => Promise<Result<Array<Provider>>> = (loading) => {
return get(`${prefix_provider}`, {}, loading)
}
/**
*
*/
const getProviderByModelType: (model_type: string, loading?: Ref<boolean>) => Promise<Result<Array<Provider>>> = (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<boolean>
) => Promise<Result<Array<FormField>>> = (provider, model_type, model_name, loading) => {
return get(`${prefix_provider}/model_form`, { provider, model_type, model_name }, loading)
}
/** /**
* *
* @param model_id id * @param model_id id
@ -66,7 +33,7 @@ const getModelCreateForm: (
*/ */
const getModelParamsForm: ( const getModelParamsForm: (
model_id: string, model_id: string,
loading?: Ref<boolean> loading?: Ref<boolean>,
) => Promise<Result<Array<FormField>>> = (model_id, loading) => { ) => Promise<Result<Array<FormField>>> = (model_id, loading) => {
return get(`model/${model_id}/model_params_form`, {}, loading) return get(`model/${model_id}/model_params_form`, {}, loading)
} }
@ -78,7 +45,7 @@ const getModelParamsForm: (
*/ */
const listModelType: ( const listModelType: (
provider: string, provider: string,
loading?: Ref<boolean> loading?: Ref<boolean>,
) => Promise<Result<Array<KeyValue<string, string>>>> = (provider, loading?: Ref<boolean>) => { ) => Promise<Result<Array<KeyValue<string, string>>>> = (provider, loading?: Ref<boolean>) => {
return get(`${prefix_provider}/model_type_list`, { provider }, loading) return get(`${prefix_provider}/model_type_list`, { provider }, loading)
} }
@ -93,7 +60,7 @@ const listModelType: (
const listBaseModel: ( const listBaseModel: (
provider: string, provider: string,
model_type: string, model_type: string,
loading?: Ref<boolean> loading?: Ref<boolean>,
) => Promise<Result<Array<BaseModel>>> = (provider, model_type, loading) => { ) => Promise<Result<Array<BaseModel>>> = (provider, model_type, loading) => {
return get(`${prefix_provider}/model_list`, { provider, model_type }, loading) return get(`${prefix_provider}/model_list`, { provider, model_type }, loading)
} }
@ -102,9 +69,9 @@ const listBaseModelParamsForm: (
provider: string, provider: string,
model_type: string, model_type: string,
model_name: string, model_name: string,
loading?: Ref<boolean> loading?: Ref<boolean>,
) => Promise<Result<Array<BaseModel>>> = (provider, model_type, model_name, loading) => { ) => Promise<Result<Array<BaseModel>>> = (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: ( const createModel: (
request: CreateModelRequest, request: CreateModelRequest,
loading?: Ref<boolean> loading?: Ref<boolean>,
) => Promise<Result<Model>> = (request, loading) => { ) => Promise<Result<Model>> = (request, loading) => {
return post(`${prefix}`, request, {}, loading) return post(`${prefix}`, request, {}, loading)
} }
@ -129,7 +96,7 @@ const createModel: (
const updateModel: ( const updateModel: (
model_id: string, model_id: string,
request: EditModelRequest, request: EditModelRequest,
loading?: Ref<boolean> loading?: Ref<boolean>,
) => Promise<Result<Model>> = (model_id, request, loading) => { ) => Promise<Result<Model>> = (model_id, request, loading) => {
return put(`${prefix}/${model_id}`, request, {}, loading) return put(`${prefix}/${model_id}`, request, {}, loading)
} }
@ -143,7 +110,7 @@ const updateModel: (
const updateModelParamsForm: ( const updateModelParamsForm: (
model_id: string, model_id: string,
request: any[], request: any[],
loading?: Ref<boolean> loading?: Ref<boolean>,
) => Promise<Result<Model>> = (model_id, request, loading) => { ) => Promise<Result<Model>> = (model_id, request, loading) => {
return put(`${prefix}/${model_id}/model_params_form`, 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<boolean>) => Promise<Result<Model>> = ( const getModelById: (model_id: string, loading?: Ref<boolean>) => Promise<Result<Model>> = (
model_id, model_id,
loading loading,
) => { ) => {
return get(`${prefix}/${model_id}`, {}, loading) return get(`${prefix}/${model_id}`, {}, loading)
} }
@ -168,7 +135,7 @@ const getModelById: (model_id: string, loading?: Ref<boolean>) => Promise<Result
*/ */
const getModelMetaById: (model_id: string, loading?: Ref<boolean>) => Promise<Result<Model>> = ( const getModelMetaById: (model_id: string, loading?: Ref<boolean>) => Promise<Result<Model>> = (
model_id, model_id,
loading loading,
) => { ) => {
return get(`${prefix}/${model_id}/meta`, {}, loading) return get(`${prefix}/${model_id}/meta`, {}, loading)
} }
@ -180,20 +147,18 @@ const getModelMetaById: (model_id: string, loading?: Ref<boolean>) => Promise<Re
*/ */
const pauseDownload: (model_id: string, loading?: Ref<boolean>) => Promise<Result<boolean>> = ( const pauseDownload: (model_id: string, loading?: Ref<boolean>) => Promise<Result<boolean>> = (
model_id, model_id,
loading loading,
) => { ) => {
return put(`${prefix}/${model_id}/pause_download`, undefined, {}, loading) return put(`${prefix}/${model_id}/pause_download`, undefined, {}, loading)
} }
const deleteModel: (model_id: string, loading?: Ref<boolean>) => Promise<Result<boolean>> = ( const deleteModel: (model_id: string, loading?: Ref<boolean>) => Promise<Result<boolean>> = (
model_id, model_id,
loading loading,
) => { ) => {
return del(`${prefix}/${model_id}`, undefined, {}, loading) return del(`${prefix}/${model_id}`, undefined, {}, loading)
} }
export default { export default {
getModel, getModel,
getProvider,
getModelCreateForm,
listModelType, listModelType,
listBaseModel, listBaseModel,
listBaseModelParamsForm, listBaseModelParamsForm,
@ -205,5 +170,4 @@ export default {
pauseDownload, pauseDownload,
getModelParamsForm, getModelParamsForm,
updateModelParamsForm, updateModelParamsForm,
getProviderByModelType
} }

View File

@ -1,12 +1,44 @@
import { Result } from '@/request/Result' import { Result } from '@/request/Result'
import { get, post } from '@/request/index' import { get, post } from '@/request/index'
import type { Ref } from 'vue' import type { Ref } from 'vue'
const trigger: ( import type { Provider } from '@/api/type/model'
provider: string, import type { FormField } from '@/components/dynamics-form/type'
method: string, const prefix_provider = '/provider'
request_body: any, /**
loading?: Ref<boolean> *
) => Promise<Result<Array<any> | string>> = (provider, method, request_body, loading) => { */
return post(`provider/${provider}/${method}`, {}, request_body, loading) const getProvider: (loading?: Ref<boolean>) => Promise<Result<Array<Provider>>> = (loading) => {
return get(`${prefix_provider}`, {}, loading)
}
/**
*
*/
const getProviderByModelType: (
model_type: string,
loading?: Ref<boolean>,
) => Promise<Result<Array<Provider>>> = (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<boolean>,
) => Promise<Result<Array<FormField>>> = (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 }

View File

@ -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: '重命名'
}

View File

@ -4,7 +4,7 @@ import views from './views'
import theme from './theme' import theme from './theme'
import layout from './layout' import layout from './layout'
import dynamicsForm from './dynamics-form' import dynamicsForm from './dynamics-form'
// import common from './common' import common from './common'
// import chat from './ai-chat' // import chat from './ai-chat'
export default { export default {
lang: '简体中文', lang: '简体中文',
@ -13,4 +13,5 @@ export default {
theme, theme,
layout, layout,
dynamicsForm, dynamicsForm,
common
} }

View File

@ -43,14 +43,14 @@ instance.interceptors.response.use(
if (response.data) { if (response.data) {
if (response.data.code !== 200 && !(response.data instanceof Blob)) { if (response.data.code !== 200 && !(response.data instanceof Blob)) {
if (response.config.url.includes('/application/authentication')) { if (response.config.url.includes('/application/authentication')) {
return Promise.reject(response.data.data) return Promise.reject(response.data)
} }
if ( if (
!response.config.url.includes('/valid') && !response.config.url.includes('/valid') &&
!response.config.url.includes('/function_lib/debug') !response.config.url.includes('/function_lib/debug')
) { ) {
MsgError(response.data.message) MsgError(response.data.message)
return Promise.reject(response.data.data) return Promise.reject(response.data)
} }
} }
} }
@ -101,9 +101,9 @@ const promise: (
.then((response) => { .then((response) => {
// blob类型的返回状态是response.status // blob类型的返回状态是response.status
if (response.status === 200) { if (response.status === 200) {
resolve(response?.data?.data || response) resolve(response?.data || response)
} else { } else {
reject(response?.data?.data || response) reject(response?.data || response)
} }
}) })
.catch((error) => { .catch((error) => {

View File

@ -30,9 +30,9 @@ const useLoginStore = defineStore('login', {
}, },
async asyncLogin(data: LoginRequest, loading?: Ref<boolean>) { async asyncLogin(data: LoginRequest, loading?: Ref<boolean>) {
return loginApi.login(data).then((ok: any) => { return loginApi.login(data).then((ok) => {
this.token = ok.token this.token = ok?.data?.token
localStorage.setItem('token', ok.token) localStorage.setItem('token', ok?.data?.token)
const user = useUserStore() const user = useUserStore()
return user.profile(loading) return user.profile(loading)
}) })

View File

@ -37,8 +37,9 @@ const useLoginStore = defineStore('user', {
}, },
async profile(loading?: Ref<boolean>) { async profile(loading?: Ref<boolean>) {
return UserApi.getUserProfile(loading).then((ok) => { return UserApi.getUserProfile(loading).then((ok) => {
this.userInfo = ok this.userInfo = ok.data
useLocalStorage<string>(localeConfigKey, 'en-US').value = ok?.language || this.getLanguage() useLocalStorage<string>(localeConfigKey, 'en-US').value =
ok?.data?.language || this.getLanguage()
// return this.asyncGetProfile() // return this.asyncGetProfile()
}) })
}, },

View File

@ -73,7 +73,7 @@ const checkModelType = (model_type: string) => {
selectModelType.value = model_type selectModelType.value = model_type
currentModelType.value = modelTypeOptions.filter((item) => item.value === model_type)[0].text currentModelType.value = modelTypeOptions.filter((item) => item.value === model_type)[0].text
ModelApi.getProviderByModelType(model_type, loading).then((ok) => { 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)) list_provider.value.sort((a, b) => a.provider.localeCompare(b.provider))
}) })
} }