知你客服
This commit is contained in:
@@ -673,10 +673,16 @@ class WorkflowEngine:
|
||||
else:
|
||||
# 如果没有提取到用户查询,附加整个input_data
|
||||
formatted_prompt = f"{formatted_prompt}\n\n{json_module.dumps(input_data, ensure_ascii=False)}"
|
||||
elif has_unfilled_variables or re.search(r'\{\{(\w+)\}\}', formatted_prompt):
|
||||
elif has_unfilled_variables or re.search(r'\{\{[^}]+\}\}', formatted_prompt):
|
||||
# 如果有占位符但未填充,先尝试清理所有未填充的模板变量
|
||||
# 使用正则表达式替换所有 {{...}} 格式的未填充变量
|
||||
formatted_prompt = re.sub(r'\{\{[^}]+\}\}', '', formatted_prompt)
|
||||
# 如果有占位符但未填充,附加用户需求说明
|
||||
if user_query:
|
||||
formatted_prompt = f"{formatted_prompt}\n\n用户需求:{user_query}\n\n请根据以上用户需求,忽略未填充的变量占位符(如{{{{variable}}}}),直接基于用户需求来完成任务。"
|
||||
formatted_prompt = f"{formatted_prompt}\n\n用户需求:{user_query}\n\n请根据用户需求来完成任务。"
|
||||
else:
|
||||
# 如果没有用户查询,附加整个input_data
|
||||
formatted_prompt = f"{formatted_prompt}\n\n输入数据:{json_module.dumps(input_data, ensure_ascii=False)}\n\n请根据输入数据来完成任务。"
|
||||
|
||||
logger.info(f"[rjb] LLM节点prompt格式化: node_id={node_id}, original_prompt='{prompt[:50] if len(prompt) > 50 else prompt}', has_any_placeholder={has_any_placeholder}, user_query={user_query}, is_generic_instruction={is_generic_instruction}, final_prompt前200字符='{formatted_prompt[:200] if len(formatted_prompt) > 200 else formatted_prompt}'")
|
||||
prompt = formatted_prompt
|
||||
@@ -727,7 +733,8 @@ class WorkflowEngine:
|
||||
|
||||
# 检查是否启用工具调用
|
||||
enable_tools = node_data.get('enable_tools', False)
|
||||
tools_config = node_data.get('tools', []) # 工具名称列表
|
||||
# 支持两种字段名:tools 和 selected_tools
|
||||
tools_config = node_data.get('tools') or node_data.get('selected_tools') or []
|
||||
|
||||
# 如果启用了工具,加载工具定义
|
||||
tools = []
|
||||
@@ -751,7 +758,8 @@ class WorkflowEngine:
|
||||
provider=provider,
|
||||
model=model,
|
||||
temperature=temperature,
|
||||
max_tokens=max_tokens
|
||||
max_tokens=max_tokens,
|
||||
execution_logger=self.logger
|
||||
)
|
||||
else:
|
||||
result = await llm_service.call_llm(
|
||||
|
||||
Reference in New Issue
Block a user