Skip to content

Commit be4e504

Browse files
authored
Merge branch 'v2' into pr@v2@feat_chat_ui
2 parents 8f69c9b + 6fc0558 commit be4e504

File tree

138 files changed

+1722
-792
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

138 files changed

+1722
-792
lines changed

apps/knowledge/sql/list_knowledge.sql

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ FROM (SELECT "temp_knowledge".id::text, "temp_knowledge".name,
1111
"temp_knowledge".file_size_limit,
1212
"temp_knowledge".file_count_limit,
1313
"temp_knowledge"."scope",
14+
"temp_knowledge"."embedding_model_id"::text,
1415
"document_temp"."char_length",
1516
CASE
1617
WHEN
@@ -40,6 +41,7 @@ FROM (SELECT "temp_knowledge".id::text, "temp_knowledge".name,
4041
0 as file_size_limit,
4142
0 as file_count_limit,
4243
'WORKSPACE' as "scope",
44+
'' as "embedding_model_id",
4345
0 as char_length,
4446
0 as application_mapping_count,
4547
0 as document_count

apps/knowledge/urls.py

Lines changed: 81 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -11,50 +11,93 @@
1111
path('workspace/<str:workspace_id>/knowledge/embedding_model', views.KnowledgeView.EmbeddingModel.as_view()),
1212
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>', views.KnowledgeView.Operate.as_view()),
1313
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/sync', views.KnowledgeView.SyncWeb.as_view()),
14-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/generate_related', views.KnowledgeView.GenerateRelated.as_view()),
15-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/embedding', views.KnowledgeView.Embedding.as_view()),
14+
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/generate_related',
15+
views.KnowledgeView.GenerateRelated.as_view()),
16+
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/embedding',
17+
views.KnowledgeView.Embedding.as_view()),
1618
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/hit_test', views.KnowledgeView.HitTest.as_view()),
1719
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/export', views.KnowledgeView.Export.as_view()),
18-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/export_zip', views.KnowledgeView.ExportZip.as_view()),
20+
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/export_zip',
21+
views.KnowledgeView.ExportZip.as_view()),
1922
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document', views.DocumentView.as_view()),
20-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/split', views.DocumentView.Split.as_view()),
21-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/split_pattern', views.DocumentView.SplitPattern.as_view()),
22-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/batch_create', views.DocumentView.BatchCreate.as_view()),
23-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/batch_sync', views.DocumentView.BatchSync.as_view()),
24-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/batch_delete', views.DocumentView.BatchDelete.as_view()),
25-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/batch_refresh', views.DocumentView.BatchRefresh.as_view()),
26-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/batch_generate_related', views.DocumentView.BatchGenerateRelated.as_view()),
23+
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/split',
24+
views.DocumentView.Split.as_view()),
25+
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/split_pattern',
26+
views.DocumentView.SplitPattern.as_view()),
27+
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/batch_create',
28+
views.DocumentView.BatchCreate.as_view()),
29+
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/batch_sync',
30+
views.DocumentView.BatchSync.as_view()),
31+
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/batch_delete',
32+
views.DocumentView.BatchDelete.as_view()),
33+
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/batch_refresh',
34+
views.DocumentView.BatchRefresh.as_view()),
35+
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/batch_generate_related',
36+
views.DocumentView.BatchGenerateRelated.as_view()),
2737
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/web', views.WebDocumentView.as_view()),
2838
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/qa', views.QaDocumentView.as_view()),
2939
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/table', views.TableDocumentView.as_view()),
30-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/batch_hit_handling', views.DocumentView.BatchEditHitHandling.as_view()),
31-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/template/export', views.Template.as_view()),
32-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/table_template/export', views.TableTemplate.as_view()),
33-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/migrate/<str:target_knowledge_id>', views.DocumentView.Migrate.as_view()),
34-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>', views.DocumentView.Operate.as_view()),
35-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>/sync', views.DocumentView.SyncWeb.as_view()),
36-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>/refresh', views.DocumentView.Refresh.as_view()),
37-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>/cancel_task', views.DocumentView.CancelTask.as_view()),
38-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>/batch_cancel_task', views.DocumentView.BatchCancelTask.as_view()),
39-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>/export', views.DocumentView.Export.as_view()),
40-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>/export_zip', views.DocumentView.ExportZip.as_view()),
41-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>/download_source_file', views.DocumentView.DownloadSourceFile.as_view()),
42-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>/paragraph', views.ParagraphView.as_view()),
43-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>/paragraph/batch_delete', views.ParagraphView.BatchDelete.as_view()),
44-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>/paragraph/batch_generate_related', views.ParagraphView.BatchGenerateRelated.as_view()),
45-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>/paragraph/migrate/knowledge/<str:target_knowledge_id>/document/<str:target_document_id>', views.ParagraphView.BatchMigrate.as_view()),
46-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>/paragraph/association', views.ParagraphView.Association.as_view()),
47-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>/paragraph/unassociation', views.ParagraphView.UnAssociation.as_view()),
48-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>/paragraph/<str:paragraph_id>', views.ParagraphView.Operate.as_view()),
49-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>/paragraph/<str:paragraph_id>/problem', views.ParagraphView.Problem.as_view()),
50-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>/paragraph/<int:current_page>/<int:page_size>', views.ParagraphView.Page.as_view()),
40+
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/batch_hit_handling',
41+
views.DocumentView.BatchEditHitHandling.as_view()),
42+
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/template/export',
43+
views.Template.as_view()),
44+
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/table_template/export',
45+
views.TableTemplate.as_view()),
46+
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/migrate/<str:target_knowledge_id>',
47+
views.DocumentView.Migrate.as_view()),
48+
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>',
49+
views.DocumentView.Operate.as_view()),
50+
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>/sync',
51+
views.DocumentView.SyncWeb.as_view()),
52+
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>/refresh',
53+
views.DocumentView.Refresh.as_view()),
54+
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>/cancel_task',
55+
views.DocumentView.CancelTask.as_view()),
56+
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>/batch_cancel_task',
57+
views.DocumentView.BatchCancelTask.as_view()),
58+
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>/export',
59+
views.DocumentView.Export.as_view()),
60+
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>/export_zip',
61+
views.DocumentView.ExportZip.as_view()),
62+
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>/download_source_file',
63+
views.DocumentView.DownloadSourceFile.as_view()),
64+
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>/paragraph',
65+
views.ParagraphView.as_view()),
66+
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>/paragraph/batch_delete',
67+
views.ParagraphView.BatchDelete.as_view()),
68+
path(
69+
'workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>/paragraph/batch_generate_related',
70+
views.ParagraphView.BatchGenerateRelated.as_view()),
71+
path(
72+
'workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>/paragraph/migrate/knowledge/<str:target_knowledge_id>/document/<str:target_document_id>',
73+
views.ParagraphView.BatchMigrate.as_view()),
74+
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>/paragraph/association',
75+
views.ParagraphView.Association.as_view()),
76+
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>/paragraph/unassociation',
77+
views.ParagraphView.UnAssociation.as_view()),
78+
path(
79+
'workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>/paragraph/<str:paragraph_id>',
80+
views.ParagraphView.Operate.as_view()),
81+
path(
82+
'workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>/paragraph/<str:paragraph_id>/problem',
83+
views.ParagraphView.Problem.as_view()),
84+
path(
85+
'workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>/paragraph/<int:current_page>/<int:page_size>',
86+
views.ParagraphView.Page.as_view()),
5187
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/problem', views.ProblemView.as_view()),
52-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/problem/batch_delete', views.ProblemView.BatchDelete.as_view()),
53-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/problem/batch_association', views.ProblemView.BatchAssociation.as_view()),
54-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/problem/<str:problem_id>', views.ProblemView.Operate.as_view()),
55-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/problem/<str:problem_id>/paragraph', views.ProblemView.Paragraph.as_view()),
56-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/problem/<int:current_page>/<int:page_size>', views.ProblemView.Page.as_view()),
57-
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<int:current_page>/<int:page_size>', views.DocumentView.Page.as_view()),
58-
path('workspace/<str:workspace_id>/knowledge/<int:current_page>/<int:page_size>', views.KnowledgeView.Page.as_view()),
88+
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/problem/batch_delete',
89+
views.ProblemView.BatchDelete.as_view()),
90+
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/problem/batch_association',
91+
views.ProblemView.BatchAssociation.as_view()),
92+
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/problem/<str:problem_id>',
93+
views.ProblemView.Operate.as_view()),
94+
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/problem/<str:problem_id>/paragraph',
95+
views.ProblemView.Paragraph.as_view()),
96+
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/problem/<int:current_page>/<int:page_size>',
97+
views.ProblemView.Page.as_view()),
98+
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<int:current_page>/<int:page_size>',
99+
views.DocumentView.Page.as_view()),
100+
path('workspace/<str:workspace_id>/knowledge/<int:current_page>/<int:page_size>',
101+
views.KnowledgeView.Page.as_view()),
59102

60103
]

apps/models_provider/serializers/model_serializer.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -386,3 +386,30 @@ def save_model_params_form(self, model_params_form, with_valid=True):
386386
model.model_params_form = model_params_form
387387
model.save()
388388
return True
389+
390+
391+
class SharedModelSerializer(serializers.Serializer):
392+
workspace_id = serializers.CharField(required=True, label=_('workspace id'))
393+
name = serializers.CharField(required=False, max_length=64, label=_('model name'))
394+
model_type = serializers.CharField(required=False, label=_('model type'))
395+
model_name = serializers.CharField(required=False, label=_('base model'))
396+
provider = serializers.CharField(required=False, label=_('provider'))
397+
create_user = serializers.CharField(required=False, label=_('create user'))
398+
399+
def get_share_model_list(self):
400+
self.is_valid(raise_exception=True)
401+
queryset = QuerySet(Model).filter(workspace_id='None')
402+
return [
403+
{
404+
'id': str(model.id),
405+
'provider': model.provider,
406+
'name': model.name,
407+
'model_type': model.model_type,
408+
'model_name': model.model_name,
409+
'status': model.status,
410+
'meta': model.meta,
411+
'user_id': model.user_id,
412+
'username': model.user.username
413+
}
414+
for model in queryset.order_by("-create_time")
415+
]

apps/models_provider/urls.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
path('workspace/<str:workspace_id>/model/<str:model_id>/pause_download',
1919
views.ModelSetting.PauseDownload.as_view()),
2020
path('workspace/<str:workspace_id>/model/<str:model_id>/meta', views.ModelSetting.ModelMeta.as_view()),
21+
path('workspace/<str:workspace_id>/shared/model', views.SharedModel.as_view()),
2122
]
2223

2324
if os.environ.get('SERVER_NAME', 'web') == 'local_model':

apps/models_provider/views/model.py

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
from models_provider.api.model import ModelCreateAPI, GetModelApi, ModelEditApi, ModelListResponse, DefaultModelResponse
2222
from models_provider.api.provide import ProvideApi
2323
from models_provider.models import Model
24-
from models_provider.serializers.model_serializer import ModelSerializer
24+
from models_provider.serializers.model_serializer import ModelSerializer, SharedModelSerializer
2525
from system_manage.views import encryption_str
2626

2727

@@ -212,3 +212,21 @@ class PauseDownload(APIView):
212212
def put(self, request: Request, workspace_id: str, model_id: str):
213213
return result.success(
214214
ModelSerializer.Operate(data={'id': model_id}).pause_download())
215+
216+
217+
class SharedModel(APIView):
218+
authentication_classes = [TokenAuth]
219+
220+
@extend_schema(
221+
methods=['Get'],
222+
summary=_('Get Share model'),
223+
description=_('Get Share model'),
224+
operation_id=_('Get Share model'), # type: ignore
225+
parameters=ModelCreateAPI.get_parameters(),
226+
responses=ModelListResponse.get_response(),
227+
tags=[_('Shared Model')]
228+
) # type: ignore
229+
@has_permissions(PermissionConstants.MODEL_READ)
230+
def get(self, request: Request, workspace_id: str):
231+
return result.success(
232+
SharedModelSerializer(data={'workspace_id': workspace_id}).get_share_model_list())

installer/Dockerfile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,9 @@ ENV MAXKB_VERSION="${DOCKER_IMAGE_TAG} (build at ${BUILD_AT}, commit: ${GITHUB_C
4848
MAXKB_REDIS_PASSWORD=${REDIS_PASSWORD} \
4949
MAXKB_EMBEDDING_MODEL_PATH=/opt/maxkb-app/model/embedding \
5050
MAXKB_EMBEDDING_MODEL_NAME=/opt/maxkb-app/model/embedding/shibing624_text2vec-base-chinese \
51+
MAXKB_LOCAL_MODEL_HOST=127.0.0.1 \
52+
MAXKB_LOCAL_MODEL_PORT=11636 \
53+
MAXKB_LOCAL_MODEL_PROTOCOL=http \
5154
MAXKB_SANDBOX=1 \
5255
PATH=/opt/py3/bin:$PATH \
5356
PIP_TARGET=/opt/maxkb/python-packages \

0 commit comments

Comments
 (0)