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 { 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<boolean>
loading?: Ref<boolean>,
) => Promise<Result<Array<Model>>> = (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
@ -66,7 +33,7 @@ const getModelCreateForm: (
*/
const getModelParamsForm: (
model_id: string,
loading?: Ref<boolean>
loading?: Ref<boolean>,
) => Promise<Result<Array<FormField>>> = (model_id, loading) => {
return get(`model/${model_id}/model_params_form`, {}, loading)
}
@ -78,7 +45,7 @@ const getModelParamsForm: (
*/
const listModelType: (
provider: string,
loading?: Ref<boolean>
loading?: Ref<boolean>,
) => Promise<Result<Array<KeyValue<string, string>>>> = (provider, loading?: Ref<boolean>) => {
return get(`${prefix_provider}/model_type_list`, { provider }, loading)
}
@ -93,7 +60,7 @@ const listModelType: (
const listBaseModel: (
provider: string,
model_type: string,
loading?: Ref<boolean>
loading?: Ref<boolean>,
) => Promise<Result<Array<BaseModel>>> = (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<boolean>
loading?: Ref<boolean>,
) => 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: (
request: CreateModelRequest,
loading?: Ref<boolean>
loading?: Ref<boolean>,
) => Promise<Result<Model>> = (request, loading) => {
return post(`${prefix}`, request, {}, loading)
}
@ -129,7 +96,7 @@ const createModel: (
const updateModel: (
model_id: string,
request: EditModelRequest,
loading?: Ref<boolean>
loading?: Ref<boolean>,
) => Promise<Result<Model>> = (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<boolean>
loading?: Ref<boolean>,
) => Promise<Result<Model>> = (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<boolean>) => Promise<Result<Model>> = (
model_id,
loading
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>> = (
model_id,
loading
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>> = (
model_id,
loading
loading,
) => {
return put(`${prefix}/${model_id}/pause_download`, undefined, {}, loading)
}
const deleteModel: (model_id: string, loading?: Ref<boolean>) => Promise<Result<boolean>> = (
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
}

View File

@ -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<boolean>
) => Promise<Result<Array<any> | 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<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 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
}

View File

@ -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) => {

View File

@ -30,9 +30,9 @@ const useLoginStore = defineStore('login', {
},
async asyncLogin(data: LoginRequest, loading?: Ref<boolean>) {
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)
})

View File

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

View File

@ -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))
})
}