fix: MCP node display nesting issue (#3822)
This commit is contained in:
parent
f61a567bc3
commit
ec12ad0c2e
@ -33,13 +33,25 @@ tool_message_template = """
|
|||||||
<strong>Called MCP Tool: <em>%s</em></strong>
|
<strong>Called MCP Tool: <em>%s</em></strong>
|
||||||
</summary>
|
</summary>
|
||||||
|
|
||||||
```json
|
|
||||||
%s
|
%s
|
||||||
```
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
tool_message_json_template = """
|
||||||
|
```json
|
||||||
|
%s
|
||||||
|
```
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
def generate_tool_message_template(name, context):
|
||||||
|
if '```' in context:
|
||||||
|
return tool_message_template % (name, context)
|
||||||
|
else:
|
||||||
|
return tool_message_template % (name, tool_message_json_template % (context))
|
||||||
|
|
||||||
|
|
||||||
def _write_context(node_variable: Dict, workflow_variable: Dict, node: INode, workflow, answer: str,
|
def _write_context(node_variable: Dict, workflow_variable: Dict, node: INode, workflow, answer: str,
|
||||||
reasoning_content: str):
|
reasoning_content: str):
|
||||||
@ -110,7 +122,7 @@ async def _yield_mcp_response(chat_model, message_list, mcp_servers):
|
|||||||
response = agent.astream({"messages": message_list}, stream_mode='messages')
|
response = agent.astream({"messages": message_list}, stream_mode='messages')
|
||||||
async for chunk in response:
|
async for chunk in response:
|
||||||
if isinstance(chunk[0], ToolMessage):
|
if isinstance(chunk[0], ToolMessage):
|
||||||
content = tool_message_template % (chunk[0].name, chunk[0].content)
|
content = generate_tool_message_template(chunk[0].name, chunk[0].content)
|
||||||
chunk[0].content = content
|
chunk[0].content = content
|
||||||
yield chunk[0]
|
yield chunk[0]
|
||||||
if isinstance(chunk[0], AIMessageChunk):
|
if isinstance(chunk[0], AIMessageChunk):
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user