|
8 | 8 | from common.constants.permission_constants import PermissionConstants |
9 | 9 | from common.result import result |
10 | 10 | 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 |
12 | 13 | from knowledge.serializers.knowledge import KnowledgeSerializer |
| 14 | +from models_provider.serializers.model_serializer import ModelSerializer |
13 | 15 |
|
14 | 16 |
|
15 | 17 | class KnowledgeView(APIView): |
@@ -193,11 +195,33 @@ class GenerateRelated(APIView): |
193 | 195 | responses=GenerateRelatedAPI.get_response(), |
194 | 196 | tags=[_('Knowledge Base')] # type: ignore |
195 | 197 | ) |
| 198 | + @has_permissions(PermissionConstants.KNOWLEDGE_EDIT.get_workspace_permission()) |
196 | 199 | def put(self, request: Request, workspace_id: str, knowledge_id: str): |
197 | 200 | return result.success(KnowledgeSerializer.Operate( |
198 | 201 | data={'knowledge_id': knowledge_id, 'workspace_id': workspace_id, 'user_id': request.user.id} |
199 | 202 | ).generate_related(request.data)) |
200 | 203 |
|
| 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 | + |
201 | 225 |
|
202 | 226 | class KnowledgeBaseView(APIView): |
203 | 227 | authentication_classes = [TokenAuth] |
|
0 commit comments