|
23 | 23 | from common.utils.fork import Fork, ChildLink |
24 | 24 | from common.utils.split_model import get_split_model |
25 | 25 | from knowledge.models import Knowledge, KnowledgeScope, KnowledgeType, Document, Paragraph, Problem, \ |
26 | | - ProblemParagraphMapping, ApplicationKnowledgeMapping, TaskType, State, SearchMode |
| 26 | + ProblemParagraphMapping, ApplicationKnowledgeMapping, TaskType, State, SearchMode, KnowledgeFolder |
27 | 27 | from knowledge.serializers.common import ProblemParagraphManage, get_embedding_model_id_by_knowledge_id, MetaSerializer, \ |
28 | 28 | GenerateRelatedSerializer, get_embedding_model_by_knowledge_id, list_paragraph |
29 | 29 | from knowledge.serializers.document import DocumentSerializers |
| 30 | +from knowledge.serializers.knowledge_folder import KnowledgeFolderFlatSerializer |
30 | 31 | from knowledge.task.embedding import embedding_by_knowledge, delete_embedding_by_knowledge |
31 | 32 | from knowledge.task.generate import generate_related_by_knowledge_id |
32 | 33 | from knowledge.task.sync import sync_web_knowledge, sync_replace_web_knowledge |
@@ -136,15 +137,27 @@ def get_query_set(self): |
136 | 137 |
|
137 | 138 | def page(self, current_page: int, page_size: int): |
138 | 139 | self.is_valid(raise_exception=True) |
139 | | - return native_page_search( |
140 | | - current_page, |
141 | | - page_size, |
142 | | - self.get_query_set(), |
143 | | - select_string=get_file_content( |
144 | | - os.path.join(PROJECT_DIR, "apps", "knowledge", 'sql', 'list_knowledge.sql') |
| 140 | + |
| 141 | + folder_id = self.data.get('folder_id', 'root') |
| 142 | + root = KnowledgeFolder.objects.filter(id=folder_id).first() |
| 143 | + if not root: |
| 144 | + raise serializers.ValidationError(_('Folder not found')) |
| 145 | + # 获取当前文件夹下的直接子文件夹 |
| 146 | + child_folders = KnowledgeFolder.objects.filter(parent=root) |
| 147 | + folders_data = KnowledgeFolderFlatSerializer(child_folders, many=True).data |
| 148 | + |
| 149 | + return { |
| 150 | + 'knowledge': native_page_search( |
| 151 | + current_page, |
| 152 | + page_size, |
| 153 | + self.get_query_set(), |
| 154 | + select_string=get_file_content( |
| 155 | + os.path.join(PROJECT_DIR, "apps", "knowledge", 'sql', 'list_knowledge.sql') |
| 156 | + ), |
| 157 | + post_records_handler=lambda r: r |
145 | 158 | ), |
146 | | - post_records_handler=lambda r: r |
147 | | - ) |
| 159 | + 'folders': folders_data |
| 160 | + } |
148 | 161 |
|
149 | 162 | def list(self): |
150 | 163 | self.is_valid(raise_exception=True) |
|
0 commit comments