You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

209 lines
5.2 KiB

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
} from '@/api/type/model'
import type { FormField } from '@/components/dynamics-form/type'
import type { KeyValue } from './type/common'
const prefix = '/model'
const prefix_provider = '/provider'
/**
* 获得模型列表
* @params 参数 name, model_type, model_name
*/
const getModel: (
request?: ListModelRequest,
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
* @param loading
* @returns
*/
const getModelParamsForm: (
model_id: string,
loading?: Ref<boolean>
) => Promise<Result<Array<FormField>>> = (model_id, loading) => {
return get(`model/${model_id}/model_params_form`, {}, loading)
}
/**
* 获取模型类型列表
* @param provider 供应商
* @param loading 加载器
* @returns 模型类型列表
*/
const listModelType: (
provider: string,
loading?: Ref<boolean>
) => Promise<Result<Array<KeyValue<string, string>>>> = (provider, loading?: Ref<boolean>) => {
return get(`${prefix_provider}/model_type_list`, { provider }, loading)
}
/**
* 获取基础模型列表
* @param provider
* @param model_type
* @param loading
* @returns
*/
const listBaseModel: (
provider: string,
model_type: string,
loading?: Ref<boolean>
) => Promise<Result<Array<BaseModel>>> = (provider, model_type, loading) => {
return get(`${prefix_provider}/model_list`, { provider, model_type }, loading)
}
const listBaseModelParamsForm: (
provider: string,
model_type: string,
model_name: string,
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)
}
/**
* 创建模型
* @param request 请求对象
* @param loading 加载器
* @returns
*/
const createModel: (
request: CreateModelRequest,
loading?: Ref<boolean>
) => Promise<Result<Model>> = (request, loading) => {
return post(`${prefix}`, request, {}, loading)
}
/**
* 修改模型
* @param request 請求對象
* @param loading 加載器
* @returns
*/
const updateModel: (
model_id: string,
request: EditModelRequest,
loading?: Ref<boolean>
) => Promise<Result<Model>> = (model_id, request, loading) => {
return put(`${prefix}/${model_id}`, request, {}, loading)
}
/**
* 修改模型参数配置
* @param request 請求對象
* @param loading 加載器
* @returns
*/
const updateModelParamsForm: (
model_id: string,
request: any[],
loading?: Ref<boolean>
) => Promise<Result<Model>> = (model_id, request, loading) => {
return put(`${prefix}/${model_id}/model_params_form`, request, {}, loading)
}
/**
* 获取模型详情根据模型id 包括认证信息
* @param model_id 模型id
* @param loading 加载器
* @returns
*/
const getModelById: (model_id: string, loading?: Ref<boolean>) => Promise<Result<Model>> = (
model_id,
loading
) => {
return get(`${prefix}/${model_id}`, {}, loading)
}
/**
* 获取模型信息不包括认证信息根据模型id
* @param model_id 模型id
* @param loading 加载器
* @returns
*/
const getModelMetaById: (model_id: string, loading?: Ref<boolean>) => Promise<Result<Model>> = (
model_id,
loading
) => {
return get(`${prefix}/${model_id}/meta`, {}, loading)
}
/**
* 暂停下载
* @param model_id 模型id
* @param loading 加载器
* @returns
*/
const pauseDownload: (model_id: string, loading?: Ref<boolean>) => Promise<Result<boolean>> = (
model_id,
loading
) => {
return put(`${prefix}/${model_id}/pause_download`, undefined, {}, loading)
}
const deleteModel: (model_id: string, loading?: Ref<boolean>) => Promise<Result<boolean>> = (
model_id,
loading
) => {
return del(`${prefix}/${model_id}`, undefined, {}, loading)
}
export default {
getModel,
getProvider,
getModelCreateForm,
listModelType,
listBaseModel,
listBaseModelParamsForm,
createModel,
updateModel,
deleteModel,
getModelById,
getModelMetaById,
pauseDownload,
getModelParamsForm,
updateModelParamsForm,
getProviderByModelType
}