mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-08-18 16:05:53 +08:00
feat: add agent log icon
This commit is contained in:
parent
f748d6c7c4
commit
d76af08784
@ -385,6 +385,7 @@ class WorkflowBasedAppRunner(AppRunner):
|
|||||||
error=event.error,
|
error=event.error,
|
||||||
status=event.status,
|
status=event.status,
|
||||||
data=event.data,
|
data=event.data,
|
||||||
|
metadata=event.metadata,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
elif isinstance(event, ParallelBranchRunStartedEvent):
|
elif isinstance(event, ParallelBranchRunStartedEvent):
|
||||||
|
@ -7,6 +7,7 @@ from core.agent.plugin_entities import AgentStrategyParameter
|
|||||||
from core.model_manager import ModelManager
|
from core.model_manager import ModelManager
|
||||||
from core.model_runtime.entities.model_entities import ModelType
|
from core.model_runtime.entities.model_entities import ModelType
|
||||||
from core.plugin.manager.exc import PluginDaemonClientSideError
|
from core.plugin.manager.exc import PluginDaemonClientSideError
|
||||||
|
from core.plugin.manager.plugin import PluginInstallationManager
|
||||||
from core.tools.entities.tool_entities import ToolProviderType
|
from core.tools.entities.tool_entities import ToolProviderType
|
||||||
from core.tools.tool_manager import ToolManager
|
from core.tools.tool_manager import ToolManager
|
||||||
from core.workflow.entities.node_entities import NodeRunResult
|
from core.workflow.entities.node_entities import NodeRunResult
|
||||||
@ -89,9 +90,20 @@ class AgentNode(ToolNode):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
# convert tool messages
|
# convert tool messages
|
||||||
|
manager = PluginInstallationManager()
|
||||||
|
plugins = manager.list_plugins(self.tenant_id)
|
||||||
|
current_plugin = next(
|
||||||
|
plugin
|
||||||
|
for plugin in plugins
|
||||||
|
if f"{plugin.plugin_id}/{plugin.name}"
|
||||||
|
== cast(AgentNodeData, self.node_data).agent_strategy_provider_name
|
||||||
|
)
|
||||||
yield from self._transform_message(
|
yield from self._transform_message(
|
||||||
message_stream,
|
message_stream,
|
||||||
{"provider": (cast(AgentNodeData, self.node_data)).agent_strategy_provider_name},
|
{
|
||||||
|
"icon": current_plugin.declaration.icon,
|
||||||
|
"agent_strategy": cast(AgentNodeData, self.node_data).agent_strategy_name,
|
||||||
|
},
|
||||||
parameters_for_log,
|
parameters_for_log,
|
||||||
)
|
)
|
||||||
except PluginDaemonClientSideError as e:
|
except PluginDaemonClientSideError as e:
|
||||||
|
@ -7,6 +7,7 @@ from sqlalchemy.orm import Session
|
|||||||
from core.callback_handler.workflow_tool_callback_handler import DifyWorkflowCallbackHandler
|
from core.callback_handler.workflow_tool_callback_handler import DifyWorkflowCallbackHandler
|
||||||
from core.file import File, FileTransferMethod
|
from core.file import File, FileTransferMethod
|
||||||
from core.plugin.manager.exc import PluginDaemonClientSideError
|
from core.plugin.manager.exc import PluginDaemonClientSideError
|
||||||
|
from core.plugin.manager.plugin import PluginInstallationManager
|
||||||
from core.tools.entities.tool_entities import ToolInvokeMessage, ToolParameter
|
from core.tools.entities.tool_entities import ToolInvokeMessage, ToolParameter
|
||||||
from core.tools.tool_engine import ToolEngine
|
from core.tools.tool_engine import ToolEngine
|
||||||
from core.tools.utils.message_transformer import ToolFileMessageTransformer
|
from core.tools.utils.message_transformer import ToolFileMessageTransformer
|
||||||
@ -24,6 +25,7 @@ from extensions.ext_database import db
|
|||||||
from factories import file_factory
|
from factories import file_factory
|
||||||
from models import ToolFile
|
from models import ToolFile
|
||||||
from models.workflow import WorkflowNodeExecutionStatus
|
from models.workflow import WorkflowNodeExecutionStatus
|
||||||
|
from services.tools.builtin_tools_manage_service import BuiltinToolManageService
|
||||||
|
|
||||||
from .entities import ToolNodeData
|
from .entities import ToolNodeData
|
||||||
from .exc import (
|
from .exc import (
|
||||||
@ -297,6 +299,36 @@ class ToolNode(BaseNode[ToolNodeData]):
|
|||||||
files.append(message.meta["file"])
|
files.append(message.meta["file"])
|
||||||
elif message.type == ToolInvokeMessage.MessageType.LOG:
|
elif message.type == ToolInvokeMessage.MessageType.LOG:
|
||||||
assert isinstance(message.message, ToolInvokeMessage.LogMessage)
|
assert isinstance(message.message, ToolInvokeMessage.LogMessage)
|
||||||
|
if message.message.metadata:
|
||||||
|
icon = tool_info.get("icon", "")
|
||||||
|
dict_metadata = dict(message.message.metadata)
|
||||||
|
if dict_metadata.get("provider"):
|
||||||
|
manager = PluginInstallationManager()
|
||||||
|
plugins = manager.list_plugins(self.tenant_id)
|
||||||
|
try:
|
||||||
|
current_plugin = next(
|
||||||
|
plugin
|
||||||
|
for plugin in plugins
|
||||||
|
if f"{plugin.plugin_id}/{plugin.name}" == dict_metadata["provider"]
|
||||||
|
)
|
||||||
|
icon = current_plugin.declaration.icon
|
||||||
|
except StopIteration:
|
||||||
|
pass
|
||||||
|
try:
|
||||||
|
builtin_tool = next(
|
||||||
|
provider
|
||||||
|
for provider in BuiltinToolManageService.list_builtin_tools(
|
||||||
|
self.user_id,
|
||||||
|
self.tenant_id,
|
||||||
|
)
|
||||||
|
if provider.name == dict_metadata["provider"]
|
||||||
|
)
|
||||||
|
icon = builtin_tool.icon
|
||||||
|
except StopIteration:
|
||||||
|
pass
|
||||||
|
|
||||||
|
dict_metadata["icon"] = icon
|
||||||
|
message.message.metadata = dict_metadata
|
||||||
agent_log = AgentLogEvent(
|
agent_log = AgentLogEvent(
|
||||||
id=message.message.id,
|
id=message.message.id,
|
||||||
node_execution_id=self.id,
|
node_execution_id=self.id,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user