@@ -167,25 +167,35 @@ def list(self, with_valid=True):
167167 os .path .join (PROJECT_DIR , "apps" , "application" , 'sql' , 'list_application_chat.sql' )),
168168 with_table_name = False )
169169
170+ @staticmethod
171+ def paragraph_list_to_string (paragraph_list ):
172+ return "\n **********\n " .join (
173+ [f"{ paragraph .get ('title' )} :\n { paragraph .get ('content' )} " for paragraph in paragraph_list ])
174+
170175 @staticmethod
171176 def to_row (row : Dict ):
172177 details = row .get ('details' )
173178 padding_problem_text = details .get ('problem_padding' ).get (
174179 'padding_problem_text' ) if 'problem_padding' in details and 'padding_problem_text' in details .get (
175180 'problem_padding' ) else ""
176- paragraph_list = details .get ('search_step' ).get (
177- 'paragraph_list' ) if 'search_step' in details and 'paragraph_list' in details .get ('search_step' ) else []
178- for key , node in details .items ():
179- if node .get ('type' ) == 'search-dataset-node' and node .get ('paragraph_list' ) is not None and len (
180- node .get ('paragraph_list' )) > 0 :
181- paragraph_list = node .get ('paragraph_list' )
181+ search_dataset_node_list = [(key , node ) for key , node in details .items () if
182+ node .get ("type" ) == 'search-dataset-node' or node .get (
183+ "step_type" ) == 'search_step' ]
184+ reference_paragraph_len = '\n ' .join ([str (len (node .get ('paragraph_list' ,
185+ []))) if key == 'search_step' else node .get (
186+ 'name' ) + ':' + str (len (node .get ('paragraph_list' , []))) for
187+ key , node in search_dataset_node_list ])
188+ reference_paragraph = '\n ----------\n ' .join (
189+ [ChatSerializers .Query .paragraph_list_to_string (node .get ('paragraph_list' ,
190+ [])) if key == 'search_step' else node .get (
191+ 'name' ) + ':\n ' + ChatSerializers .Query .paragraph_list_to_string (node .get ('paragraph_list' ,
192+ [])) for
193+ key , node in search_dataset_node_list ])
182194 improve_paragraph_list = row .get ('improve_paragraph_list' )
183195 vote_status_map = {'-1' : '未投票' , '0' : '赞同' , '1' : '反对' }
184196 return [str (row .get ('chat_id' )), row .get ('abstract' ), row .get ('problem_text' ), padding_problem_text ,
185- row .get ('answer_text' ), vote_status_map .get (row .get ('vote_status' )), len (paragraph_list ), "\n " .join (
186- [f"{ index } 、{ paragraph_list [index ].get ('title' )} \n { paragraph_list [index ].get ('content' )} " for index
187- in
188- range (len (paragraph_list ))]),
197+ row .get ('answer_text' ), vote_status_map .get (row .get ('vote_status' )), reference_paragraph_len ,
198+ reference_paragraph ,
189199 "\n " .join ([
190200 f"{ improve_paragraph_list [index ].get ('title' )} \n { improve_paragraph_list [index ].get ('content' )} "
191201 for index in range (len (improve_paragraph_list ))]),
0 commit comments