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
4 changes: 2 additions & 2 deletions ui/src/api/admin/workspace/model/model-shared.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { get } from '../../core/request'
import type { RequestParams, WorkspaceModel } from '@/api/types'
import type { RequestParams, ModelItem } from '@/api/types'
import { getWorkspaceId } from '@/utils/workspace-context'

const getPrefix = () => {
Expand All @@ -9,7 +9,7 @@ const getPrefix = () => {

/** 获取工作空间共享的模型列表。 */
const getModelList = (query?: RequestParams) => {
return get<WorkspaceModel[]>(`${getPrefix()}/model`, query)
return get<ModelItem[]>(`${getPrefix()}/model`, query)
}

export default {
Expand Down
12 changes: 6 additions & 6 deletions ui/src/api/admin/workspace/model/model.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { del, get, post, put } from '../../core/request'
import type { RequestParams, ModelPayload, WorkspaceModel } from '@/api/types'
import type { RequestParams, ModelPayload, ModelItem } from '@/api/types'
import { getWorkspaceId } from '@/utils/workspace-context'

const getPrefix = () => {
Expand All @@ -9,27 +9,27 @@ const getPrefix = () => {

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

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

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

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

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

/** 删除工作空间模型。 */
Expand Down
36 changes: 18 additions & 18 deletions ui/src/api/admin/workspace/tool/store.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { get, post } from '../../core/request'
import type { AddStoreToolPayload, WorkspaceTool } from '@/api/types'
import type { ToolItem } from '@/api/types'
import type { RequestParams } from '@/api/types'

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

/** 获取工具商店列表。 */
Expand All @@ -27,28 +27,28 @@ 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 postInternalTool = (workspaceId: string, toolId: string, payload: AddStoreToolPayload) => {
// return post<AddStoreToolPayload, ToolItem>(
// `/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,
)
}
// /** 将商店工具添加到工作空间。 */
// const postStoreTool = (workspaceId: string, toolId: string, payload: AddStoreToolPayload) => {
// return post<AddStoreToolPayload, ToolItem>(
// `/workspace/${workspaceId}/tool/${toolId}/add_store_tool`,
// payload,
// )
// }

export default {
getInternalToolList,
getStoreApplicationList,
getStoreKnowledgeList,
getStoreToolList,
getStoreToolWorkflowList,
postInternalTool,
postStoreTool,
// postInternalTool,
// postStoreTool,
}
10 changes: 5 additions & 5 deletions ui/src/api/admin/workspace/tool/tool.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { del, get, post, put } from '../../core/request'
import type { ParamsPage, ResponsePage } from '../../core/types'
import type { RequestParams, ToolPayload, WorkspaceTool } from '@/api/types'
import type { RequestParams, ToolPayload, ToolItem } from '@/api/types'
import { getWorkspaceId } from '@/utils/workspace-context'

const getPrefix = () => {
Expand All @@ -10,25 +10,25 @@ const getPrefix = () => {

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

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

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

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

/** 删除工作空间工具。 */
Expand Down
4 changes: 2 additions & 2 deletions ui/src/api/types/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,6 @@ export type * from './system-authentication'
export type * from './system-operate-log'
export type * from './system-role'
export type * from './system-email'
export type * from './workspace-model'
export type * from './model'
export type * from './folder'
export type * from './workspace-tool'
export type * from './tool'
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ export interface ModelProviderItem {
provider: string
}

export interface WorkspaceModel {
export interface ModelItem {
create_time?: string
id: string
meta?: Record<string, unknown>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { TOOL_SCOPE, TOOL_TYPE } from '@/api/enums'
export type ToolScope = (typeof TOOL_SCOPE)[keyof typeof TOOL_SCOPE]
export type ToolType = (typeof TOOL_TYPE)[keyof typeof TOOL_TYPE]

export interface WorkspaceTool {
export interface ToolItem {
code?: string
create_time?: string
desc?: string | null
Expand Down
2 changes: 1 addition & 1 deletion ui/src/components/business/folder-tree/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { MsgSuccess } from '@/utils/message'
import MkListItem from '@/components/mk-search-list/mk-list-item.vue'
import VirtualizedTree from './VirtualizedTree.vue'
import { FOLDER_SORT, type FolderSort } from './types'
import { FOLDER_ENTRIES, FOLDER_ENTRY_ID } from '@/constants/folder'
import { FOLDER_ENTRIES, FOLDER_ENTRY_ID } from '@/constants'
import { useStore } from '@/stores'
import { getWorkspaceId } from '@/utils/workspace-context'

Expand Down
6 changes: 3 additions & 3 deletions ui/src/components/business/model-select/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,18 @@ import { computed, ref } from 'vue'
import { Check } from '@element-plus/icons-vue'
import ProviderApi from '@/api/admin/workspace/model/provider'
import { MODEL_STATUS } from '@/api/enums'
import type { ModelProviderItem, WorkspaceModel } from '@/api/types'
import type { ModelProviderItem, ModelItem } from '@/api/types'

defineOptions({
name: 'ModelSelect',
inheritAttrs: false,
})

type ModelOptions = Record<string, WorkspaceModel[]>
type ModelOptions = Record<string, ModelItem[]>

interface ModelOptionGroup {
icon: string
models: WorkspaceModel[]
models: ModelItem[]
name: string
provider: string
}
Expand Down
55 changes: 34 additions & 21 deletions ui/src/components/global/mk-icon/ToolIcon.vue
Original file line number Diff line number Diff line change
@@ -1,36 +1,49 @@
<script setup lang="ts">
import { resetUrl } from '@/utils/common'
import { TOOL_TYPE } from '@/api/enums'
import type { ToolType } from '@/api/types'
import { resetUrl } from '@/utils/common'

defineOptions({ name: 'ToolIcon' })
const props = defineProps({
type: {
type: [String, Number],
default: '',
},
size: {
type: [String, Number],
default: 24,

withDefaults(
defineProps<{
icon?: string
size?: number | string
type?: ToolType
}>(),
{
size: 24,
},
icon: String,
})
)
</script>

<template>
<el-avatar v-if="icon" shape="square" :size="size" style="background: none">
<el-avatar v-if="icon" class="bg-transparent!" shape="square" :size="size">
<img :src="resetUrl(icon)" alt="" />
</el-avatar>
<el-avatar v-else-if="type == TOOL_TYPE.MCP" shape="square" :size="size">
<img src="@/assets/tool/icon_mcp.svg" style="width: 73%" alt="" />
<el-avatar v-else-if="type === TOOL_TYPE.MCP" shape="square" :size="size">
<img class="w-[73%]" src="@/assets/tool/icon_mcp.svg" alt="" />
</el-avatar>
<el-avatar v-else-if="type == TOOL_TYPE.SKILL" shape="square" :size="size">
<img src="@/assets/tool/icon_skill.svg" style="width: 63%" alt="" />
<el-avatar v-else-if="type === TOOL_TYPE.SKILL" shape="square" :size="size">
<img class="w-[63%]" src="@/assets/tool/icon_skill.svg" alt="" />
</el-avatar>
<el-avatar v-else-if="type == TOOL_TYPE.DATA_SOURCE" class="bg-purple!" shape="square" :size="size">
<img src="@/assets/tool/icon_datasource.svg" style="width: 58%" alt="" />
<el-avatar
v-else-if="type === TOOL_TYPE.DATA_SOURCE"
class="bg-purple!"
shape="square"
:size="size"
>
<img class="w-[58%]" src="@/assets/tool/icon_datasource.svg" alt="" />
</el-avatar>
<el-avatar v-else-if="type == TOOL_TYPE.WORKFLOW" class="bg-success!" shape="square" :size="size">
<img src="@/assets/workflow/logo_workflow.svg" style="width: 62%" alt="" />
<el-avatar
v-else-if="type === TOOL_TYPE.WORKFLOW"
class="bg-success!"
shape="square"
:size="size"
>
<img class="w-[62%]" src="@/assets/workflow/logo_workflow.svg" alt="" />
</el-avatar>
<el-avatar v-else class="bg-success!" shape="square" :size="size">
<img src="@/assets/tool/icon_tool.svg" style="width: 63%" alt="" />
<img class="w-[63%]" src="@/assets/tool/icon_tool.svg" alt="" />
</el-avatar>
</template>
1 change: 1 addition & 0 deletions ui/src/constants/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@
export * from './auth'
export * from './model'
export * from './tool'
export * from './folder'
12 changes: 6 additions & 6 deletions ui/src/views/model/ModelView.vue
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<script setup lang="ts">
import { computed, onMounted, ref } from 'vue'
import type { ModelProviderItem, OptionItem, RequestParams, WorkspaceModel } from '@/api/types'
import type { ModelProviderItem, OptionItem, RequestParams, ModelItem } from '@/api/types'
import { MODEL_TYPE_LABELS } from '@/constants'
import CommonApi from '@/api/admin/workspace/common'
import ModelApi from '@/api/admin/workspace/model/model'
Expand All @@ -19,14 +19,14 @@ const DEFAULT_MODEL_PROVIDER: ModelProviderItem = {
const loading = ref(false)
const currentProvider = ref<ModelProviderItem>(DEFAULT_MODEL_PROVIDER)
const modelProviders = ref<ModelProviderItem[]>([])
const workspaceModels = ref<WorkspaceModel[]>([])
const ModelItems = ref<ModelItem[]>([])
const modelQuery = ref<RequestParams>()
const creatorOptions = ref<OptionItem<string>[]>([])

const isShared = computed(() => currentProvider.value.provider === 'shared')

const getModelIcon = computed(
() => (model: WorkspaceModel) =>
() => (model: ModelItem) =>
modelProviders.value.find(({ provider }) => provider === model.provider)?.icon ?? '',
)

Expand Down Expand Up @@ -77,7 +77,7 @@ function loadModels() {

return request
.then((models) => {
workspaceModels.value = models
ModelItems.value = models
})
.finally(() => {
loading.value = false
Expand Down Expand Up @@ -124,11 +124,11 @@ onMounted(() => {
</component>
<div v-loading="loading">
<div
v-if="workspaceModels.length"
v-if="ModelItems.length"
class="mk-resource-card-grid"
>
<ModelCard
v-for="model in workspaceModels"
v-for="model in ModelItems"
:key="model.id"
:model="model"
:icon="getModelIcon(model)"
Expand Down
4 changes: 2 additions & 2 deletions ui/src/views/model/components/ModelCard.vue
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<script setup lang="ts">
import type { WorkspaceModel } from '@/api/types'
import type { ModelItem } from '@/api/types'
import { MODEL_STATUS } from '@/api/enums'
import { MODEL_TYPE_LABELS } from '@/constants'
import MkSourceCard from '@/components/mk-source-card/index.vue'
Expand All @@ -8,7 +8,7 @@ defineOptions({ name: 'ModelCard' })

const props = defineProps<{
icon: string
model: WorkspaceModel
model: ModelItem
shared: boolean
}>()

Expand Down
Loading
Loading