From 936e55d3a30cddbb44d0437bfeea0c304f9977ef Mon Sep 17 00:00:00 2001 From: CaptainB Date: Mon, 25 Nov 2024 14:48:48 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E6=89=A7=E8=A1=8C=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E9=87=8C=E4=B8=8D=E4=BF=9D=E5=AD=98=E5=9B=BE=E7=89=87?= =?UTF-8?q?base64=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/base_image_understand_node.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/apps/application/flow/step_node/image_understand_step_node/impl/base_image_understand_node.py b/apps/application/flow/step_node/image_understand_step_node/impl/base_image_understand_node.py index 16aafb628..813cd3158 100644 --- a/apps/application/flow/step_node/image_understand_step_node/impl/base_image_understand_node.py +++ b/apps/application/flow/step_node/image_understand_step_node/impl/base_image_understand_node.py @@ -67,11 +67,13 @@ class BaseImageUnderstandNode(IImageUnderstandNode): image, **kwargs) -> NodeResult: image_model = get_model_instance_by_model_user_id(model_id, self.flow_params_serializer.data.get('user_id')) - history_message = self.get_history_message(history_chat_record, dialogue_number) + # 执行详情中的历史消息不需要图片内容 + history_message =self.get_history_message_for_details(history_chat_record, dialogue_number) self.context['history_message'] = history_message question = self.generate_prompt_question(prompt) self.context['question'] = question.content - message_list = self.generate_message_list(image_model, system, prompt, history_message, image) + # 生成消息列表, 真实的history_message + message_list = self.generate_message_list(image_model, system, prompt, self.get_history_message(history_chat_record, dialogue_number), image) self.context['message_list'] = message_list self.context['image_list'] = image self.context['dialogue_type'] = dialogue_type @@ -86,6 +88,15 @@ class BaseImageUnderstandNode(IImageUnderstandNode): 'history_message': history_message, 'question': question.content}, {}, _write_context=write_context) + @staticmethod + def get_history_message_for_details(history_chat_record, dialogue_number): + start_index = len(history_chat_record) - dialogue_number + history_message = reduce(lambda x, y: [*x, *y], [ + [history_chat_record[index].get_human_message(), history_chat_record[index].get_ai_message()] + for index in + range(start_index if start_index > 0 else 0, len(history_chat_record))], []) + return history_message + def get_history_message(self, history_chat_record, dialogue_number): start_index = len(history_chat_record) - dialogue_number history_message = reduce(lambda x, y: [*x, *y], [