diff --git a/dataflow/operators/core_text/generate/prompt_templated_qa_generator.py b/dataflow/operators/core_text/generate/prompt_templated_qa_generator.py index 00b156c..bc639bf 100644 --- a/dataflow/operators/core_text/generate/prompt_templated_qa_generator.py +++ b/dataflow/operators/core_text/generate/prompt_templated_qa_generator.py @@ -107,9 +107,10 @@ def run( key_dict[key] = val if pd.notna(val) else "" prompt_text = self.prompt_template.build_prompt(need_fields, **key_dict) - - # 统一组装为基类所需的消息格式 - conversations_list.append([{"role": "user", "content": prompt_text}]) + if use_api_mode: + conversations_list.append([{"role": "user", "content": prompt_text}]) + else: + conversations_list.append([{"from": "human", "value": prompt_text}]) self.logger.info( f"Built {len(conversations_list)} prompts using fields: {need_fields}" diff --git a/dataflow/operators/core_vision/generate/batch_vqa_generator.py b/dataflow/operators/core_vision/generate/batch_vqa_generator.py index 398bb1c..0fe1de6 100644 --- a/dataflow/operators/core_vision/generate/batch_vqa_generator.py +++ b/dataflow/operators/core_vision/generate/batch_vqa_generator.py @@ -97,7 +97,11 @@ def run(self, storage: DataFlowStorage, input_prompts_key: str, input_image_key: else: # Local 模式(如 vLLM)通常需要手动在文本前拼接 占位符 img_tokens = "" * len(image_path) - conversation = [{"role": "user", "content": img_tokens + q}] + # 根据 serving 模式选择对话格式 + if use_api_mode: + conversation = [{"role": "user", "content": img_tokens + q}] + else: + conversation = [{"from": "human", "value": img_tokens + q}] flat_conversations.append(conversation) flat_images.append(image_path) diff --git a/dataflow/operators/core_vision/generate/fix_prompted_vqa_generator.py b/dataflow/operators/core_vision/generate/fix_prompted_vqa_generator.py index df4a22a..527e960 100644 --- a/dataflow/operators/core_vision/generate/fix_prompted_vqa_generator.py +++ b/dataflow/operators/core_vision/generate/fix_prompted_vqa_generator.py @@ -96,7 +96,10 @@ def run(self, else: content = ("" * valid_media_count) + self.user_prompt - conversations_list.append([{"role": "user", "content": content}]) + if use_api_mode: + conversations_list.append([{"role": "user", "content": content}]) + else: + conversations_list.append([{"from": "human", "value": content}]) elif has_videos: video_inputs_list = video_column @@ -108,7 +111,10 @@ def run(self, else: content = ("