From f111ae1200c8a29422459cd25c89523b9a96af4c Mon Sep 17 00:00:00 2001 From: shaohuzhang1 <80892890+shaohuzhang1@users.noreply.github.com> Date: Fri, 27 Dec 2024 10:39:27 +0800 Subject: [PATCH] feat: The form node supports obtaining data from other nodes (#1924) --- .../flow/step_node/form_node/impl/base_form_node.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/apps/application/flow/step_node/form_node/impl/base_form_node.py b/apps/application/flow/step_node/form_node/impl/base_form_node.py index 7a2b25c3c..8890538a1 100644 --- a/apps/application/flow/step_node/form_node/impl/base_form_node.py +++ b/apps/application/flow/step_node/form_node/impl/base_form_node.py @@ -55,8 +55,10 @@ class BaseFormNode(IFormNode): "chat_record_id": self.flow_params_serializer.data.get("chat_record_id"), "is_submit": self.context.get("is_submit", False)} form = f'{json.dumps(form_setting)}' + context = self.workflow_manage.get_workflow_content() + form_content_format = self.workflow_manage.reset_prompt(form_content_format) prompt_template = PromptTemplate.from_template(form_content_format, template_format='jinja2') - value = prompt_template.format(form=form) + value = prompt_template.format(form=form, context=context) return NodeResult( {'result': value, 'form_field_list': form_field_list, 'form_content_format': form_content_format}, {}, _write_context=write_context) @@ -69,8 +71,10 @@ class BaseFormNode(IFormNode): 'form_data': self.context.get('form_data', {}), "is_submit": self.context.get("is_submit", False)} form = f'{json.dumps(form_setting)}' + context = self.workflow_manage.get_workflow_content() + form_content_format = self.workflow_manage.reset_prompt(form_content_format) prompt_template = PromptTemplate.from_template(form_content_format, template_format='jinja2') - value = prompt_template.format(form=form) + value = prompt_template.format(form=form, context=context) return [Answer(value, self.view_type, self.runtime_node_id, self.workflow_params['chat_record_id'], None)] def get_details(self, index: int, **kwargs): @@ -81,8 +85,10 @@ class BaseFormNode(IFormNode): 'form_data': self.context.get('form_data', {}), "is_submit": self.context.get("is_submit", False)} form = f'{json.dumps(form_setting)}' + context = self.workflow_manage.get_workflow_content() + form_content_format = self.workflow_manage.reset_prompt(form_content_format) prompt_template = PromptTemplate.from_template(form_content_format, template_format='jinja2') - value = prompt_template.format(form=form) + value = prompt_template.format(form=form, context=context) return { 'name': self.node.properties.get('stepName'), "index": index,