UnisKB/ui/src/api/model/model.ts

187 lines
4.7 KiB
TypeScript
Raw Normal View History

import { Result } from '@/request/Result'
import { get, post, del, put } from '@/request/index'
import { type Ref } from 'vue'
2025-04-28 10:14:16 +00:00
import type {
ListModelRequest,
Model,
CreateModelRequest,
2025-05-06 02:13:52 +00:00
EditModelRequest,
2025-04-28 10:14:16 +00:00
} from '@/api/type/model'
import type { FormField } from '@/components/dynamics-form/type'
2025-05-07 07:58:42 +00:00
2025-06-06 01:39:01 +00:00
const prefix = '/workspace/' + localStorage.getItem('workspace_id')
2025-04-28 10:14:16 +00:00
/**
*
* @params name, model_type, model_name
*/
const getModel: (
request?: ListModelRequest,
2025-05-06 02:13:52 +00:00
loading?: Ref<boolean>,
2025-06-06 01:39:01 +00:00
) => Promise<Result<Array<Model>>> = (data, loading) => {
return get(`${prefix}/model`, data, loading)
2025-04-28 10:14:16 +00:00
}
/**
*
* @param loading
* @returns
*/
const getRerankerModel: (loading?: Ref<boolean>) => Promise<Result<Array<any>>> = (loading) => {
return get(`${prefix}/model`, { model_type: 'RERANKER' }, loading)
}
2025-04-28 10:14:16 +00:00
/**
*
* @param loading
* @returns
*/
const getSTTModel: (loading?: Ref<boolean>) => Promise<Result<Array<any>>> = (loading) => {
return get(`${prefix}/model`, { model_type: 'STT' }, loading)
}
/**
*
* @param loading
* @returns
*/
const getTTSModel: (loading?: Ref<boolean>) => Promise<Result<Array<any>>> = (loading) => {
return get(`${prefix}/model`, { model_type: 'TTS' }, loading)
}
/**
*
* @param loading
* @returns
*/
const getImageModel: (loading?: Ref<boolean>) => Promise<Result<Array<any>>> = (loading) => {
return get(`${prefix}/model`, { model_type: 'IMAGE' }, loading)
}
/**
*
* @param loading
* @returns
*/
const getTTIModel: (loading?: Ref<boolean>) => Promise<Result<Array<any>>> = (loading) => {
return get(`${prefix}/model`, { model_type: 'TTI' }, loading)
}
/**
*
* @param loading
* @returns
*/
const getLLMModel: (loading?: Ref<boolean>) => Promise<Result<Array<any>>> = (loading) => {
return get(`${prefix}/model`, { model_type: 'LLM' }, loading)
}
2025-04-28 10:14:16 +00:00
/**
*
* @param model_id id
* @param loading
* @returns
*/
const getModelParamsForm: (
model_id: string,
2025-05-06 02:13:52 +00:00
loading?: Ref<boolean>,
2025-06-06 01:39:01 +00:00
) => Promise<Result<Array<FormField>>> = (model_id, loading) => {
return get(`${prefix}/model/${model_id}/model_params_form`, {}, loading)
2025-04-28 10:14:16 +00:00
}
/**
*
* @param request
* @param loading
* @returns
*/
const createModel: (
request: CreateModelRequest,
2025-05-06 02:13:52 +00:00
loading?: Ref<boolean>,
2025-06-06 01:39:01 +00:00
) => Promise<Result<Model>> = (request, loading) => {
return post(`${prefix}/model`, request, {}, loading)
2025-04-28 10:14:16 +00:00
}
/**
*
* @param request
* @param loading
* @returns
*/
const updateModel: (
model_id: string,
request: EditModelRequest,
2025-05-06 02:13:52 +00:00
loading?: Ref<boolean>,
2025-06-06 01:39:01 +00:00
) => Promise<Result<Model>> = (model_id, request, loading) => {
return put(`${prefix}/model/${model_id}`, request, {}, loading)
2025-04-28 10:14:16 +00:00
}
/**
*
* @param request
* @param loading
* @returns
*/
const updateModelParamsForm: (
model_id: string,
request: any[],
2025-05-06 02:13:52 +00:00
loading?: Ref<boolean>,
2025-06-06 01:39:01 +00:00
) => Promise<Result<Model>> = (model_id, request, loading) => {
return put(`${prefix}/model/${model_id}/model_params_form`, request, {}, loading)
2025-04-28 10:14:16 +00:00
}
/**
* id
* @param model_id id
* @param loading
* @returns
*/
const getModelById: (model_id: string, loading?: Ref<boolean>) => Promise<Result<Model>> = (
model_id,
loading,
) => {
2025-06-06 01:39:01 +00:00
return get(`${prefix}/model/${model_id}`, {}, loading)
2025-04-28 10:14:16 +00:00
}
/**
* id
* @param model_id id
* @param loading
* @returns
*/
const getModelMetaById: (model_id: string, loading?: Ref<boolean>) => Promise<Result<Model>> = (
model_id,
loading,
) => {
2025-06-06 01:39:01 +00:00
return get(`${prefix}/model/${model_id}/meta`, {}, loading)
2025-04-28 10:14:16 +00:00
}
/**
*
* @param model_id id
* @param loading
* @returns
*/
const pauseDownload: (model_id: string, loading?: Ref<boolean>) => Promise<Result<boolean>> = (
model_id,
loading,
) => {
2025-06-06 01:39:01 +00:00
return put(`${prefix}/model/${model_id}/pause_download`, undefined, {}, loading)
2025-04-28 10:14:16 +00:00
}
const deleteModel: (model_id: string, loading?: Ref<boolean>) => Promise<Result<boolean>> = (
model_id,
loading,
) => {
2025-06-06 01:39:01 +00:00
return del(`${prefix}/model/${model_id}`, undefined, {}, loading)
2025-04-28 10:14:16 +00:00
}
export default {
getModel,
createModel,
updateModel,
deleteModel,
getModelById,
getModelMetaById,
pauseDownload,
getModelParamsForm,
updateModelParamsForm,
getRerankerModel,
getSTTModel,
getTTSModel,
getImageModel,
getTTIModel,
getLLMModel,
2025-04-28 10:14:16 +00:00
}