mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-28 13:52:46 +00:00
refactor: model
This commit is contained in:
parent
8f3efea077
commit
863e08120a
|
|
@ -386,3 +386,30 @@ class ModelSerializer(serializers.Serializer):
|
|||
model.model_params_form = model_params_form
|
||||
model.save()
|
||||
return True
|
||||
|
||||
|
||||
class SharedModelSerializer(serializers.Serializer):
|
||||
workspace_id = serializers.CharField(required=True, label=_('workspace id'))
|
||||
name = serializers.CharField(required=False, max_length=64, label=_('model name'))
|
||||
model_type = serializers.CharField(required=False, label=_('model type'))
|
||||
model_name = serializers.CharField(required=False, label=_('base model'))
|
||||
provider = serializers.CharField(required=False, label=_('provider'))
|
||||
create_user = serializers.CharField(required=False, label=_('create user'))
|
||||
|
||||
def get_share_model_list(self):
|
||||
self.is_valid(raise_exception=True)
|
||||
queryset = QuerySet(Model).filter(workspace_id='None')
|
||||
return [
|
||||
{
|
||||
'id': str(model.id),
|
||||
'provider': model.provider,
|
||||
'name': model.name,
|
||||
'model_type': model.model_type,
|
||||
'model_name': model.model_name,
|
||||
'status': model.status,
|
||||
'meta': model.meta,
|
||||
'user_id': model.user_id,
|
||||
'username': model.user.username
|
||||
}
|
||||
for model in queryset.order_by("-create_time")
|
||||
]
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ urlpatterns = [
|
|||
path('workspace/<str:workspace_id>/model/<str:model_id>/pause_download',
|
||||
views.ModelSetting.PauseDownload.as_view()),
|
||||
path('workspace/<str:workspace_id>/model/<str:model_id>/meta', views.ModelSetting.ModelMeta.as_view()),
|
||||
path('workspace/<str:workspace_id>/shared/model', views.SharedModel.as_view()),
|
||||
]
|
||||
|
||||
if os.environ.get('SERVER_NAME', 'web') == 'local_model':
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ from common.utils.common import query_params_to_single_dict
|
|||
from models_provider.api.model import ModelCreateAPI, GetModelApi, ModelEditApi, ModelListResponse, DefaultModelResponse
|
||||
from models_provider.api.provide import ProvideApi
|
||||
from models_provider.models import Model
|
||||
from models_provider.serializers.model_serializer import ModelSerializer
|
||||
from models_provider.serializers.model_serializer import ModelSerializer, SharedModelSerializer
|
||||
from system_manage.views import encryption_str
|
||||
|
||||
|
||||
|
|
@ -212,3 +212,21 @@ class ModelSetting(APIView):
|
|||
def put(self, request: Request, workspace_id: str, model_id: str):
|
||||
return result.success(
|
||||
ModelSerializer.Operate(data={'id': model_id}).pause_download())
|
||||
|
||||
|
||||
class SharedModel(APIView):
|
||||
authentication_classes = [TokenAuth]
|
||||
|
||||
@extend_schema(
|
||||
methods=['Get'],
|
||||
summary=_('Get Share model'),
|
||||
description=_('Get Share model'),
|
||||
operation_id=_('Get Share model'), # type: ignore
|
||||
parameters=ModelCreateAPI.get_parameters(),
|
||||
responses=ModelListResponse.get_response(),
|
||||
tags=[_('Shared Model')]
|
||||
) # type: ignore
|
||||
@has_permissions(PermissionConstants.MODEL_READ)
|
||||
def get(self, request: Request, workspace_id: str):
|
||||
return result.success(
|
||||
SharedModelSerializer(data={'workspace_id': workspace_id}).get_share_model_list())
|
||||
|
|
@ -1,15 +1,16 @@
|
|||
import { Result } from '@/request/Result'
|
||||
import { get, post, del, put, exportFile, exportExcel } from '@/request/index'
|
||||
import { type Ref } from 'vue'
|
||||
import type { pageRequest } from '@/api/type/common'
|
||||
import type { knowledgeData } from '@/api/type/knowledge'
|
||||
import {Result} from '@/request/Result'
|
||||
import {get, post, del, put, exportFile, exportExcel} from '@/request/index'
|
||||
import {type Ref} from 'vue'
|
||||
import type {pageRequest} from '@/api/type/common'
|
||||
import type {knowledgeData} from '@/api/type/knowledge'
|
||||
|
||||
import useStore from '@/stores'
|
||||
|
||||
const prefix = '/system/shared'
|
||||
const prefix_workspace: any = { _value: '/workspace/' }
|
||||
const prefix_workspace: any = {_value: 'workspace/'}
|
||||
Object.defineProperty(prefix_workspace, 'value', {
|
||||
get: function () {
|
||||
const { user } = useStore()
|
||||
const {user} = useStore()
|
||||
return this._value + user.getWorkspaceId()
|
||||
},
|
||||
})
|
||||
|
|
@ -38,10 +39,18 @@ const getSharedWorkspaceModel: (loading?: Ref<boolean>) => Promise<Result<Array<
|
|||
return get(`${prefix}/${prefix_workspace.value}/model`, {}, loading)
|
||||
}
|
||||
|
||||
const getCESharedWorkspaceModel: (loading?: Ref<boolean>) => Promise<Result<Array<any>>> = (
|
||||
loading,
|
||||
) => {
|
||||
return get(`/${prefix_workspace.value}/model`, {}, loading)
|
||||
|
||||
}
|
||||
|
||||
const getSharedWorkspaceModelPage: (
|
||||
param: any,
|
||||
loading?: Ref<boolean>,
|
||||
) => Promise<Result<Array<any>>> = (param: any, loading) => {
|
||||
console.log(`${prefix}/${prefix_workspace.value}/model`)
|
||||
return get(`${prefix}/${prefix_workspace.value}/model`, param, loading)
|
||||
}
|
||||
|
||||
|
|
@ -65,4 +74,5 @@ export default {
|
|||
getSharedWorkspaceModelPage,
|
||||
getSharedWorkspaceTool,
|
||||
getSharedWorkspaceToolPage,
|
||||
getCESharedWorkspaceModel
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue