Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 76 additions & 0 deletions ui/src/api/admin/workspace/model/model.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
import { del, get, post, put } from '../../core/request'
import type {
DynamicFormField,
ModelListQuery,
ModelPayload,
SelectableModelResponse,
WorkspaceModel,
} from '@/api/types'

const getPrefix = (workspaceId: string) => `/workspace/${workspaceId}/model`

/** 获取工作空间模型列表。 */
const getModelList = (workspaceId: string, query?: ModelListQuery) => {
return get<WorkspaceModel[]>(getPrefix(workspaceId), query)
}

/** 获取工作空间可选模型,并区分工作空间模型与共享模型。 */
const getSelectableModelList = (workspaceId: string, query?: ModelListQuery) => {
return get<SelectableModelResponse>(`/workspace/${workspaceId}/model_list`, query)
}

/** 获取模型参数表单。 */
const getModelParamsForm = (workspaceId: string, modelId: string) => {
return get<DynamicFormField[]>(`${getPrefix(workspaceId)}/${modelId}/model_params_form`)
}

/** 创建工作空间模型。 */
const postModel = (workspaceId: string, payload: ModelPayload) => {
return post<ModelPayload, WorkspaceModel>(getPrefix(workspaceId), payload)
}

/** 更新工作空间模型。 */
const putModel = (workspaceId: string, modelId: string, payload: Partial<ModelPayload>) => {
return put<Partial<ModelPayload>, WorkspaceModel>(`${getPrefix(workspaceId)}/${modelId}`, payload)
}

/** 保存模型参数配置。 */
const putModelParamsForm = (workspaceId: string, modelId: string, payload: DynamicFormField[]) => {
return put<DynamicFormField[], WorkspaceModel>(
`${getPrefix(workspaceId)}/${modelId}/model_params_form`,
payload,
)
}

/** 获取包含认证信息的模型详情。 */
const getModelDetail = (workspaceId: string, modelId: string) => {
return get<WorkspaceModel>(`${getPrefix(workspaceId)}/${modelId}`)
}

/** 获取不包含认证信息的模型元数据。 */
const getModelMeta = (workspaceId: string, modelId: string) => {
return get<WorkspaceModel>(`${getPrefix(workspaceId)}/${modelId}/meta`)
}

/** 暂停本地模型下载。 */
const putPauseModelDownload = (workspaceId: string, modelId: string) => {
return put<undefined, boolean>(`${getPrefix(workspaceId)}/${modelId}/pause_download`)
}

/** 删除工作空间模型。 */
const deleteModel = (workspaceId: string, modelId: string) => {
return del<undefined, boolean>(`${getPrefix(workspaceId)}/${modelId}`)
}

export default {
deleteModel,
getModelDetail,
getModelList,
getModelMeta,
getModelParamsForm,
getSelectableModelList,
postModel,
putModel,
putModelParamsForm,
putPauseModelDownload,
}
54 changes: 54 additions & 0 deletions ui/src/api/admin/workspace/model/provider.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
import { get } from '../../core/request'
import type { BaseModelOption, DynamicFormField, ModelProvider, ModelTypeOption } from '@/api/types'

const prefix = '/provider'

/** 获取全部模型供应商。 */
const getProviderList = () => {
return get<ModelProvider[]>(prefix)
}

/** 获取支持指定模型类型的供应商。 */
const getProviderListByModelType = (modelType: string) => {
return get<ModelProvider[]>(prefix, { model_type: modelType })
}

/** 获取创建模型所需的动态表单。 */
const getModelCreateForm = (provider: string, modelType: string, modelName: string) => {
return get<DynamicFormField[]>(`${prefix}/model_form`, {
model_name: modelName,
model_type: modelType,
provider,
})
}

/** 获取供应商支持的模型类型。 */
const getModelTypeList = (provider: string) => {
return get<ModelTypeOption[]>(`${prefix}/model_type_list`, { provider })
}

/** 获取供应商指定类型下的基础模型。 */
const getBaseModelList = (provider: string, modelType: string) => {
return get<BaseModelOption[]>(`${prefix}/model_list`, {
model_type: modelType,
provider,
})
}

/** 获取基础模型的参数表单。 */
const getBaseModelParamsForm = (provider: string, modelType: string, modelName: string) => {
return get<DynamicFormField[]>(`${prefix}/model_params_form`, {
model_name: modelName,
model_type: modelType,
provider,
})
}

export default {
getBaseModelList,
getBaseModelParamsForm,
getModelCreateForm,
getModelTypeList,
getProviderList,
getProviderListByModelType,
}
54 changes: 54 additions & 0 deletions ui/src/api/admin/workspace/tool/store.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
import { get, post } from '../../core/request'
import type { AddStoreToolPayload, WorkspaceTool } from '@/api/types'
import type { RequestParams } from '@/api/types'

/** 获取系统内置工具。 */
const getInternalToolList = (query?: RequestParams) => {
return get<WorkspaceTool[]>('/workspace/internal/tool', query)
}

/** 获取工具商店列表。 */
const getStoreToolList = (query?: RequestParams) => {
return get<unknown>('/workspace/store/tool', query)
}

/** 获取知识库模板商店列表。 */
const getStoreKnowledgeList = (query?: RequestParams) => {
return get<unknown>('/workspace/store/knowledge_template', query)
}

/** 获取工作流工具模板商店列表。 */
const getStoreToolWorkflowList = (query?: RequestParams) => {
return get<unknown>('/workspace/store/tool_workflow_template', query)
}

/** 获取应用模板商店列表。 */
const getStoreApplicationList = (query?: RequestParams) => {
return get<unknown>('/workspace/store/application_template', query)
}

/** 将系统内置工具添加到工作空间。 */
const postInternalTool = (workspaceId: string, toolId: string, payload: AddStoreToolPayload) => {
return post<AddStoreToolPayload, WorkspaceTool>(
`/workspace/${workspaceId}/tool/${toolId}/add_internal_tool`,
payload,
)
}

/** 将商店工具添加到工作空间。 */
const postStoreTool = (workspaceId: string, toolId: string, payload: AddStoreToolPayload) => {
return post<AddStoreToolPayload, WorkspaceTool>(
`/workspace/${workspaceId}/tool/${toolId}/add_store_tool`,
payload,
)
}

export default {
getInternalToolList,
getStoreApplicationList,
getStoreKnowledgeList,
getStoreToolList,
getStoreToolWorkflowList,
postInternalTool,
postStoreTool,
}
109 changes: 109 additions & 0 deletions ui/src/api/admin/workspace/tool/tool.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
import { del, get, post, put } from '../../core/request'
import type { ParamsPage, ResponsePage } from '../../core/types'
import type {
ToolCatalogResponse,
ToolFolder,
ToolFolderPayload,
ToolListQuery,
ToolPayload,
ToolTreeResponse,
WorkspaceTool,
} from '@/api/types'

const getPrefix = (workspaceId: string) => `/workspace/${workspaceId}/tool`
const getFolderPrefix = (workspaceId: string) => `/workspace/${workspaceId}/TOOL/folder`

/** 获取当前目录下的工具和子文件夹。 */
const getToolTree = (workspaceId: string, query?: ToolListQuery) => {
return get<ToolTreeResponse>(getPrefix(workspaceId), query)
}

/** 获取工作空间全部工具以及已授权的共享工具。 */
const getToolCatalog = (workspaceId: string, query?: ToolListQuery) => {
return get<ToolCatalogResponse>(`${getPrefix(workspaceId)}/tool_list`, query)
}

/** 获取工具分页列表。 */
const getToolPage = (workspaceId: string, page: ParamsPage, query?: ToolListQuery) => {
return get<ResponsePage<WorkspaceTool>>(
`${getPrefix(workspaceId)}/${page.currentPage}/${page.pageSize}`,
query,
)
}

/** 获取工具文件夹树。 */
const getToolFolderTree = (workspaceId: string) => {
return get<ToolFolder[]>(getFolderPrefix(workspaceId))
}

/** 创建工具文件夹。 */
const postToolFolder = (workspaceId: string, payload: ToolFolderPayload) => {
return post<ToolFolderPayload, ToolFolder>(getFolderPrefix(workspaceId), payload)
}

/** 更新工具文件夹。 */
const putToolFolder = (workspaceId: string, folderId: string, payload: ToolFolderPayload) => {
return put<ToolFolderPayload, ToolFolder>(`${getFolderPrefix(workspaceId)}/${folderId}`, payload)
}

/** 删除工具文件夹及其内容。 */
const deleteToolFolder = (workspaceId: string, folderId: string) => {
return del<undefined, boolean>(`${getFolderPrefix(workspaceId)}/${folderId}`)
}

/** 创建工作空间工具。 */
const postTool = (workspaceId: string, payload: ToolPayload) => {
return post<ToolPayload, WorkspaceTool>(getPrefix(workspaceId), payload)
}

/** 更新工作空间工具。 */
const putTool = (workspaceId: string, toolId: string, payload: ToolPayload) => {
return put<ToolPayload, WorkspaceTool>(`${getPrefix(workspaceId)}/${toolId}`, payload)
}

/** 获取工具详情。 */
const getToolDetail = (workspaceId: string, toolId: string) => {
return get<WorkspaceTool>(`${getPrefix(workspaceId)}/${toolId}`)
}

/** 删除工作空间工具。 */
const deleteTool = (workspaceId: string, toolId: string) => {
return del<undefined, boolean>(`${getPrefix(workspaceId)}/${toolId}`)
}

/** 测试工具配置是否可连接。 */
const postToolTestConnection = (workspaceId: string, payload: ToolPayload) => {
return post<ToolPayload, boolean>(`${getPrefix(workspaceId)}/test_connection`, payload)
}

/** 批量删除工作空间工具。 */
const putBatchDeleteTools = (workspaceId: string, toolIds: string[]) => {
return put<{ id_list: string[] }, boolean>(`${getPrefix(workspaceId)}/batch_delete`, {
id_list: toolIds,
})
}

/** 批量移动工作空间工具。 */
const putBatchMoveTools = (workspaceId: string, toolIds: string[], folderId: string) => {
return put<{ folder_id: string; id_list: string[] }, boolean>(
`${getPrefix(workspaceId)}/batch_move`,
{ folder_id: folderId, id_list: toolIds },
)
}

export default {
deleteTool,
deleteToolFolder,
getToolCatalog,
getToolDetail,
getToolFolderTree,
getToolPage,
getToolTree,
postTool,
postToolFolder,
postToolTestConnection,
putBatchDeleteTools,
putBatchMoveTools,
putTool,
putToolFolder,
}
1 change: 1 addition & 0 deletions ui/src/api/types/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,4 @@ export type * from './system-authentication'
export type * from './system-operate-log'
export * from './system-role'
export type * from './system-email'
export * from './workspace-resources'
Loading
Loading