Skip to content

Commit 863e081

Browse files
committed
refactor: model
1 parent 8f3efea commit 863e081

File tree

4 files changed

+64
-8
lines changed

4 files changed

+64
-8
lines changed

apps/models_provider/serializers/model_serializer.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -386,3 +386,30 @@ def save_model_params_form(self, model_params_form, with_valid=True):
386386
model.model_params_form = model_params_form
387387
model.save()
388388
return True
389+
390+
391+
class SharedModelSerializer(serializers.Serializer):
392+
workspace_id = serializers.CharField(required=True, label=_('workspace id'))
393+
name = serializers.CharField(required=False, max_length=64, label=_('model name'))
394+
model_type = serializers.CharField(required=False, label=_('model type'))
395+
model_name = serializers.CharField(required=False, label=_('base model'))
396+
provider = serializers.CharField(required=False, label=_('provider'))
397+
create_user = serializers.CharField(required=False, label=_('create user'))
398+
399+
def get_share_model_list(self):
400+
self.is_valid(raise_exception=True)
401+
queryset = QuerySet(Model).filter(workspace_id='None')
402+
return [
403+
{
404+
'id': str(model.id),
405+
'provider': model.provider,
406+
'name': model.name,
407+
'model_type': model.model_type,
408+
'model_name': model.model_name,
409+
'status': model.status,
410+
'meta': model.meta,
411+
'user_id': model.user_id,
412+
'username': model.user.username
413+
}
414+
for model in queryset.order_by("-create_time")
415+
]

apps/models_provider/urls.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
path('workspace/<str:workspace_id>/model/<str:model_id>/pause_download',
1919
views.ModelSetting.PauseDownload.as_view()),
2020
path('workspace/<str:workspace_id>/model/<str:model_id>/meta', views.ModelSetting.ModelMeta.as_view()),
21+
path('workspace/<str:workspace_id>/shared/model', views.SharedModel.as_view()),
2122
]
2223

2324
if os.environ.get('SERVER_NAME', 'web') == 'local_model':

apps/models_provider/views/model.py

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
from models_provider.api.model import ModelCreateAPI, GetModelApi, ModelEditApi, ModelListResponse, DefaultModelResponse
2222
from models_provider.api.provide import ProvideApi
2323
from models_provider.models import Model
24-
from models_provider.serializers.model_serializer import ModelSerializer
24+
from models_provider.serializers.model_serializer import ModelSerializer, SharedModelSerializer
2525
from system_manage.views import encryption_str
2626

2727

@@ -212,3 +212,21 @@ class PauseDownload(APIView):
212212
def put(self, request: Request, workspace_id: str, model_id: str):
213213
return result.success(
214214
ModelSerializer.Operate(data={'id': model_id}).pause_download())
215+
216+
217+
class SharedModel(APIView):
218+
authentication_classes = [TokenAuth]
219+
220+
@extend_schema(
221+
methods=['Get'],
222+
summary=_('Get Share model'),
223+
description=_('Get Share model'),
224+
operation_id=_('Get Share model'), # type: ignore
225+
parameters=ModelCreateAPI.get_parameters(),
226+
responses=ModelListResponse.get_response(),
227+
tags=[_('Shared Model')]
228+
) # type: ignore
229+
@has_permissions(PermissionConstants.MODEL_READ)
230+
def get(self, request: Request, workspace_id: str):
231+
return result.success(
232+
SharedModelSerializer(data={'workspace_id': workspace_id}).get_share_model_list())

ui/src/api/shared/workspace.ts

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
1-
import { Result } from '@/request/Result'
2-
import { get, post, del, put, exportFile, exportExcel } from '@/request/index'
3-
import { type Ref } from 'vue'
4-
import type { pageRequest } from '@/api/type/common'
5-
import type { knowledgeData } from '@/api/type/knowledge'
1+
import {Result} from '@/request/Result'
2+
import {get, post, del, put, exportFile, exportExcel} from '@/request/index'
3+
import {type Ref} from 'vue'
4+
import type {pageRequest} from '@/api/type/common'
5+
import type {knowledgeData} from '@/api/type/knowledge'
66

77
import useStore from '@/stores'
8+
89
const prefix = '/system/shared'
9-
const prefix_workspace: any = { _value: '/workspace/' }
10+
const prefix_workspace: any = {_value: 'workspace/'}
1011
Object.defineProperty(prefix_workspace, 'value', {
1112
get: function () {
12-
const { user } = useStore()
13+
const {user} = useStore()
1314
return this._value + user.getWorkspaceId()
1415
},
1516
})
@@ -38,10 +39,18 @@ const getSharedWorkspaceModel: (loading?: Ref<boolean>) => Promise<Result<Array<
3839
return get(`${prefix}/${prefix_workspace.value}/model`, {}, loading)
3940
}
4041

42+
const getCESharedWorkspaceModel: (loading?: Ref<boolean>) => Promise<Result<Array<any>>> = (
43+
loading,
44+
) => {
45+
return get(`/${prefix_workspace.value}/model`, {}, loading)
46+
47+
}
48+
4149
const getSharedWorkspaceModelPage: (
4250
param: any,
4351
loading?: Ref<boolean>,
4452
) => Promise<Result<Array<any>>> = (param: any, loading) => {
53+
console.log(`${prefix}/${prefix_workspace.value}/model`)
4554
return get(`${prefix}/${prefix_workspace.value}/model`, param, loading)
4655
}
4756

@@ -65,4 +74,5 @@ export default {
6574
getSharedWorkspaceModelPage,
6675
getSharedWorkspaceTool,
6776
getSharedWorkspaceToolPage,
77+
getCESharedWorkspaceModel
6878
}

0 commit comments

Comments
 (0)