Skip to content

Commit 1f8907e

Browse files
committed
feat: add GetModelAPI for retrieving model information in knowledge base
1 parent 1e80a61 commit 1f8907e

File tree

3 files changed

+44
-1
lines changed

3 files changed

+44
-1
lines changed

apps/knowledge/api/knowledge.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,3 +248,21 @@ def get_request():
248248

249249
class EmbeddingAPI(SyncWebAPI):
250250
pass
251+
252+
253+
class GetModelAPI(SyncWebAPI):
254+
@staticmethod
255+
def get_parameters():
256+
return [
257+
OpenApiParameter(
258+
name="workspace_id",
259+
description="工作空间id",
260+
type=OpenApiTypes.STR,
261+
location='path',
262+
required=True,
263+
),
264+
]
265+
266+
@staticmethod
267+
def get_response():
268+
return DefaultResultSerializer

apps/knowledge/urls.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
path('workspace/<str:workspace_id>/knowledge', views.KnowledgeView.as_view()),
88
path('workspace/<str:workspace_id>/knowledge/base', views.KnowledgeBaseView.as_view()),
99
path('workspace/<str:workspace_id>/knowledge/web', views.KnowledgeWebView.as_view()),
10+
path('workspace/<str:workspace_id>/knowledge/model', views.KnowledgeView.Model.as_view()),
1011
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>', views.KnowledgeView.Operate.as_view()),
1112
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/sync', views.KnowledgeView.SyncWeb.as_view()),
1213
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/generate_related', views.KnowledgeView.GenerateRelated.as_view()),

apps/knowledge/views/knowledge.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,10 @@
88
from common.constants.permission_constants import PermissionConstants
99
from common.result import result
1010
from knowledge.api.knowledge import KnowledgeBaseCreateAPI, KnowledgeWebCreateAPI, KnowledgeTreeReadAPI, \
11-
KnowledgeEditAPI, KnowledgeReadAPI, KnowledgePageAPI, SyncWebAPI, GenerateRelatedAPI, HitTestAPI, EmbeddingAPI
11+
KnowledgeEditAPI, KnowledgeReadAPI, KnowledgePageAPI, SyncWebAPI, GenerateRelatedAPI, HitTestAPI, EmbeddingAPI, \
12+
GetModelAPI
1213
from knowledge.serializers.knowledge import KnowledgeSerializer
14+
from models_provider.serializers.model_serializer import ModelSerializer
1315

1416

1517
class KnowledgeView(APIView):
@@ -193,11 +195,33 @@ class GenerateRelated(APIView):
193195
responses=GenerateRelatedAPI.get_response(),
194196
tags=[_('Knowledge Base')] # type: ignore
195197
)
198+
@has_permissions(PermissionConstants.KNOWLEDGE_EDIT.get_workspace_permission())
196199
def put(self, request: Request, workspace_id: str, knowledge_id: str):
197200
return result.success(KnowledgeSerializer.Operate(
198201
data={'knowledge_id': knowledge_id, 'workspace_id': workspace_id, 'user_id': request.user.id}
199202
).generate_related(request.data))
200203

204+
class Model(APIView):
205+
authentication_classes = [TokenAuth]
206+
207+
@extend_schema(
208+
methods=['GET'],
209+
summary=_('Get model for knowledge base'),
210+
description=_('Get model for knowledge base'),
211+
operation_id=_('Get model for knowledge base'), # type: ignore
212+
parameters=GetModelAPI.get_parameters(),
213+
responses=GetModelAPI.get_response(),
214+
tags=[_('Knowledge Base')] # type: ignore
215+
)
216+
@has_permissions(PermissionConstants.KNOWLEDGE_EDIT.get_workspace_permission())
217+
def get(self, request: Request, workspace_id: str):
218+
return result.success(ModelSerializer.Query(
219+
data={
220+
'workspace_id': workspace_id,
221+
'model_type': 'LLM'
222+
}
223+
).list(workspace_id, True))
224+
201225

202226
class KnowledgeBaseView(APIView):
203227
authentication_classes = [TokenAuth]

0 commit comments

Comments
 (0)