feat: add GetModelAPI for retrieving model information in knowledge base
This commit is contained in:
parent
1e80a6136a
commit
1f8907e1cb
@ -248,3 +248,21 @@ class HitTestAPI(SyncWebAPI):
|
|||||||
|
|
||||||
class EmbeddingAPI(SyncWebAPI):
|
class EmbeddingAPI(SyncWebAPI):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class GetModelAPI(SyncWebAPI):
|
||||||
|
@staticmethod
|
||||||
|
def get_parameters():
|
||||||
|
return [
|
||||||
|
OpenApiParameter(
|
||||||
|
name="workspace_id",
|
||||||
|
description="工作空间id",
|
||||||
|
type=OpenApiTypes.STR,
|
||||||
|
location='path',
|
||||||
|
required=True,
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def get_response():
|
||||||
|
return DefaultResultSerializer
|
||||||
|
|||||||
@ -7,6 +7,7 @@ urlpatterns = [
|
|||||||
path('workspace/<str:workspace_id>/knowledge', views.KnowledgeView.as_view()),
|
path('workspace/<str:workspace_id>/knowledge', views.KnowledgeView.as_view()),
|
||||||
path('workspace/<str:workspace_id>/knowledge/base', views.KnowledgeBaseView.as_view()),
|
path('workspace/<str:workspace_id>/knowledge/base', views.KnowledgeBaseView.as_view()),
|
||||||
path('workspace/<str:workspace_id>/knowledge/web', views.KnowledgeWebView.as_view()),
|
path('workspace/<str:workspace_id>/knowledge/web', views.KnowledgeWebView.as_view()),
|
||||||
|
path('workspace/<str:workspace_id>/knowledge/model', views.KnowledgeView.Model.as_view()),
|
||||||
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>', views.KnowledgeView.Operate.as_view()),
|
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>', views.KnowledgeView.Operate.as_view()),
|
||||||
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/sync', views.KnowledgeView.SyncWeb.as_view()),
|
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/sync', views.KnowledgeView.SyncWeb.as_view()),
|
||||||
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/generate_related', views.KnowledgeView.GenerateRelated.as_view()),
|
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/generate_related', views.KnowledgeView.GenerateRelated.as_view()),
|
||||||
|
|||||||
@ -8,8 +8,10 @@ from common.auth.authentication import has_permissions
|
|||||||
from common.constants.permission_constants import PermissionConstants
|
from common.constants.permission_constants import PermissionConstants
|
||||||
from common.result import result
|
from common.result import result
|
||||||
from knowledge.api.knowledge import KnowledgeBaseCreateAPI, KnowledgeWebCreateAPI, KnowledgeTreeReadAPI, \
|
from knowledge.api.knowledge import KnowledgeBaseCreateAPI, KnowledgeWebCreateAPI, KnowledgeTreeReadAPI, \
|
||||||
KnowledgeEditAPI, KnowledgeReadAPI, KnowledgePageAPI, SyncWebAPI, GenerateRelatedAPI, HitTestAPI, EmbeddingAPI
|
KnowledgeEditAPI, KnowledgeReadAPI, KnowledgePageAPI, SyncWebAPI, GenerateRelatedAPI, HitTestAPI, EmbeddingAPI, \
|
||||||
|
GetModelAPI
|
||||||
from knowledge.serializers.knowledge import KnowledgeSerializer
|
from knowledge.serializers.knowledge import KnowledgeSerializer
|
||||||
|
from models_provider.serializers.model_serializer import ModelSerializer
|
||||||
|
|
||||||
|
|
||||||
class KnowledgeView(APIView):
|
class KnowledgeView(APIView):
|
||||||
@ -193,11 +195,33 @@ class KnowledgeView(APIView):
|
|||||||
responses=GenerateRelatedAPI.get_response(),
|
responses=GenerateRelatedAPI.get_response(),
|
||||||
tags=[_('Knowledge Base')] # type: ignore
|
tags=[_('Knowledge Base')] # type: ignore
|
||||||
)
|
)
|
||||||
|
@has_permissions(PermissionConstants.KNOWLEDGE_EDIT.get_workspace_permission())
|
||||||
def put(self, request: Request, workspace_id: str, knowledge_id: str):
|
def put(self, request: Request, workspace_id: str, knowledge_id: str):
|
||||||
return result.success(KnowledgeSerializer.Operate(
|
return result.success(KnowledgeSerializer.Operate(
|
||||||
data={'knowledge_id': knowledge_id, 'workspace_id': workspace_id, 'user_id': request.user.id}
|
data={'knowledge_id': knowledge_id, 'workspace_id': workspace_id, 'user_id': request.user.id}
|
||||||
).generate_related(request.data))
|
).generate_related(request.data))
|
||||||
|
|
||||||
|
class Model(APIView):
|
||||||
|
authentication_classes = [TokenAuth]
|
||||||
|
|
||||||
|
@extend_schema(
|
||||||
|
methods=['GET'],
|
||||||
|
summary=_('Get model for knowledge base'),
|
||||||
|
description=_('Get model for knowledge base'),
|
||||||
|
operation_id=_('Get model for knowledge base'), # type: ignore
|
||||||
|
parameters=GetModelAPI.get_parameters(),
|
||||||
|
responses=GetModelAPI.get_response(),
|
||||||
|
tags=[_('Knowledge Base')] # type: ignore
|
||||||
|
)
|
||||||
|
@has_permissions(PermissionConstants.KNOWLEDGE_EDIT.get_workspace_permission())
|
||||||
|
def get(self, request: Request, workspace_id: str):
|
||||||
|
return result.success(ModelSerializer.Query(
|
||||||
|
data={
|
||||||
|
'workspace_id': workspace_id,
|
||||||
|
'model_type': 'LLM'
|
||||||
|
}
|
||||||
|
).list(workspace_id, True))
|
||||||
|
|
||||||
|
|
||||||
class KnowledgeBaseView(APIView):
|
class KnowledgeBaseView(APIView):
|
||||||
authentication_classes = [TokenAuth]
|
authentication_classes = [TokenAuth]
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user