88from django .utils .translation import gettext_lazy as _
99
1010from common .config .embedding_config import ModelManage
11- from common .event .listener_manage import ListenerManagement , UpdateProblemArgs , UpdateEmbeddingKnowledgeIdArgs , \
12- UpdateEmbeddingDocumentIdArgs
11+ from common .event .listener_manage import (
12+ ListenerManagement ,
13+ UpdateProblemArgs ,
14+ UpdateEmbeddingKnowledgeIdArgs ,
15+ UpdateEmbeddingDocumentIdArgs ,
16+ )
1317from common .utils .logger import maxkb_logger
1418from knowledge .models import Document , TaskType , State
1519from knowledge .serializers .common import drop_knowledge_index
1822from ops import celery_app
1923
2024
21- def get_embedding_model (model_id , exception_handler = lambda e : maxkb_logger .error (
22- _ ('Failed to obtain vector model: {error} {traceback}' ).format (
23- error = str (e ),
24- traceback = traceback .format_exc ()
25- ))):
25+ def get_embedding_model (
26+ model_id ,
27+ exception_handler = lambda e : maxkb_logger .error (
28+ _ ("Failed to obtain vector model: {error} {traceback}" ).format (error = str (e ), traceback = traceback .format_exc ())
29+ ),
30+ ):
2631 try :
2732 model = QuerySet (Model ).filter (id = model_id ).first ()
2833
@@ -35,25 +40,25 @@ def get_embedding_model(model_id, exception_handler=lambda e: maxkb_logger.error
3540 return embedding_model
3641
3742
38- @celery_app .task (base = QueueOnce , once = {' keys' : [' paragraph_id' ]}, name = ' celery:embedding_by_paragraph' )
43+ @celery_app .task (base = QueueOnce , once = {" keys" : [" paragraph_id" ]}, name = " celery:embedding_by_paragraph" )
3944def embedding_by_paragraph (paragraph_id , model_id ):
4045 embedding_model = get_embedding_model (model_id )
4146 ListenerManagement .embedding_by_paragraph (paragraph_id , embedding_model )
4247
4348
44- @celery_app .task (base = QueueOnce , once = {' keys' : [' paragraph_id_list' ]}, name = ' celery:embedding_by_paragraph_data_list' )
49+ @celery_app .task (base = QueueOnce , once = {" keys" : [" paragraph_id_list" ]}, name = " celery:embedding_by_paragraph_data_list" )
4550def embedding_by_paragraph_data_list (data_list , paragraph_id_list , model_id ):
4651 embedding_model = get_embedding_model (model_id )
4752 ListenerManagement .embedding_by_paragraph_data_list (data_list , paragraph_id_list , embedding_model )
4853
4954
50- @celery_app .task (base = QueueOnce , once = {' keys' : [' paragraph_id_list' ]}, name = ' celery:embedding_by_paragraph_list' )
55+ @celery_app .task (base = QueueOnce , once = {" keys" : [" paragraph_id_list" ]}, name = " celery:embedding_by_paragraph_list" )
5156def embedding_by_paragraph_list (paragraph_id_list , model_id ):
5257 embedding_model = get_embedding_model (model_id )
5358 ListenerManagement .embedding_by_paragraph_list (paragraph_id_list , embedding_model )
5459
5560
56- @celery_app .task (base = QueueOnce , once = {' keys' : [' document_id' ]}, name = ' celery:embedding_by_document' )
61+ @celery_app .task (base = QueueOnce , once = {" keys" : [" document_id" ]}, name = " celery:embedding_by_document" )
5762def embedding_by_document (document_id , model_id , state_list = None ):
5863 """
5964 向量化文档
@@ -64,25 +69,30 @@ def embedding_by_document(document_id, model_id, state_list=None):
6469 """
6570
6671 if state_list is None :
67- state_list = [State .PENDING .value , State .STARTED .value , State .SUCCESS .value , State .FAILURE .value ,
68- State .REVOKE .value ,
69- State .REVOKED .value , State .IGNORED .value ]
72+ state_list = [
73+ State .PENDING .value ,
74+ State .STARTED .value ,
75+ State .SUCCESS .value ,
76+ State .FAILURE .value ,
77+ State .REVOKE .value ,
78+ State .REVOKED .value ,
79+ State .IGNORED .value ,
80+ ]
7081
7182 def exception_handler (e ):
72- ListenerManagement .update_status (QuerySet (Document ).filter (id = document_id ), TaskType .EMBEDDING ,
73- State .FAILURE )
83+ ListenerManagement .update_status (QuerySet (Document ).filter (id = document_id ), TaskType .EMBEDDING , State .FAILURE )
7484 maxkb_logger .error (
75- _ (' Failed to obtain vector model: {error} {traceback}' ).format (
76- error = str (e ),
77- traceback = traceback . format_exc ( )
78- ) )
85+ _ (" Failed to obtain vector model: {error} {traceback}" ).format (
86+ error = str (e ), traceback = traceback . format_exc ()
87+ )
88+ )
7989
8090 embedding_model = get_embedding_model (model_id , exception_handler )
8191 #
8292 ListenerManagement .embedding_by_document (document_id , embedding_model , state_list )
8393
8494
85- @celery_app .task (name = ' celery:embedding_by_document_list' )
95+ @celery_app .task (name = " celery:embedding_by_document_list" )
8696def embedding_by_document_list (document_id_list , model_id ):
8797 """
8898 向量化文档
@@ -94,33 +104,37 @@ def embedding_by_document_list(document_id_list, model_id):
94104 embedding_by_document .delay (document_id , model_id )
95105
96106
97- @celery_app .task (base = QueueOnce , once = {' keys' : [' knowledge_id' ]}, name = ' celery:embedding_by_knowledge' )
107+ @celery_app .task (base = QueueOnce , once = {" keys" : [" knowledge_id" ]}, name = " celery:embedding_by_knowledge" )
98108def embedding_by_knowledge (knowledge_id , model_id ):
99109 """
100- 向量化知识库
101- @param knowledge_id: 知识库id
102- @param model_id 向量模型
103- :return: None
104- """
105- maxkb_logger .info (_ (' Start--->Vectorized knowledge: {knowledge_id}' ).format (knowledge_id = knowledge_id ))
110+ 向量化知识库
111+ @param knowledge_id: 知识库id
112+ @param model_id 向量模型
113+ :return: None
114+ """
115+ maxkb_logger .info (_ (" Start--->Vectorized knowledge: {knowledge_id}" ).format (knowledge_id = knowledge_id ))
106116 try :
107117 ListenerManagement .delete_embedding_by_knowledge (knowledge_id )
108118 drop_knowledge_index (knowledge_id = knowledge_id )
109119 document_list = QuerySet (Document ).filter (knowledge_id = knowledge_id )
110- maxkb_logger .info (_ ('Knowledge documentation: {document_names}' ).format (
111- document_names = ", " .join ([d .name for d in document_list ])))
120+ maxkb_logger .info (
121+ _ ("Knowledge documentation: {document_names}" ).format (
122+ document_names = ", " .join ([d .name for d in document_list ])
123+ )
124+ )
112125 for document in document_list :
113126 try :
114127 embedding_by_document .delay (document .id , model_id )
115128 except Exception as e :
116129 pass
117130 except Exception as e :
118131 maxkb_logger .error (
119- _ ('Vectorized knowledge: {knowledge_id} error {error} {traceback}' ).format (knowledge_id = knowledge_id ,
120- error = str (e ),
121- traceback = traceback .format_exc ()))
132+ _ ("Vectorized knowledge: {knowledge_id} error {error} {traceback}" ).format (
133+ knowledge_id = knowledge_id , error = str (e ), traceback = traceback .format_exc ()
134+ )
135+ )
122136 finally :
123- maxkb_logger .info (_ (' End--->Vectorized knowledge: {knowledge_id}' ).format (knowledge_id = knowledge_id ))
137+ maxkb_logger .info (_ (" End--->Vectorized knowledge: {knowledge_id}" ).format (knowledge_id = knowledge_id ))
124138
125139
126140def embedding_by_problem (args , model_id ):
@@ -233,7 +247,8 @@ def update_embedding_knowledge_id(paragraph_id_list, target_knowledge_id):
233247 """
234248
235249 ListenerManagement .update_embedding_knowledge_id (
236- UpdateEmbeddingKnowledgeIdArgs (paragraph_id_list , target_knowledge_id ))
250+ UpdateEmbeddingKnowledgeIdArgs (paragraph_id_list , target_knowledge_id )
251+ )
237252
238253
239254def delete_embedding_by_paragraph_ids (paragraph_ids : List [str ]):
@@ -245,13 +260,17 @@ def delete_embedding_by_paragraph_ids(paragraph_ids: List[str]):
245260 ListenerManagement .delete_embedding_by_paragraph_ids (paragraph_ids )
246261
247262
248- def update_embedding_document_id (paragraph_id_list , target_document_id , target_knowledge_id ,
249- target_embedding_model_id = None ):
250- target_embedding_model = get_embedding_model (
251- target_embedding_model_id ) if target_embedding_model_id is not None else None
263+ def update_embedding_document_id (
264+ paragraph_id_list , target_document_id , target_knowledge_id , target_embedding_model_id = None
265+ ):
266+ target_embedding_model = (
267+ get_embedding_model (target_embedding_model_id ) if target_embedding_model_id is not None else None
268+ )
252269 ListenerManagement .update_embedding_document_id (
253- UpdateEmbeddingDocumentIdArgs (paragraph_id_list , target_document_id , target_knowledge_id ,
254- target_embedding_model ))
270+ UpdateEmbeddingDocumentIdArgs (
271+ paragraph_id_list , target_document_id , target_knowledge_id , target_embedding_model
272+ )
273+ )
255274
256275
257276def delete_embedding_by_knowledge_id_list (knowledge_id_list ):
0 commit comments