|
@@ -1,9 +1,11 @@
|
|
|
from collections.abc import Generator
|
|
|
from typing import Any
|
|
|
|
|
|
+from pydantic import BaseModel
|
|
|
+
|
|
|
from core.plugin.entities.plugin_daemon import PluginBasicBooleanResponse, PluginToolProviderEntity
|
|
|
from core.plugin.manager.base import BasePluginManager
|
|
|
-from core.tools.entities.tool_entities import ToolInvokeMessage
|
|
|
+from core.tools.entities.tool_entities import ToolInvokeMessage, ToolParameter
|
|
|
|
|
|
|
|
|
class PluginToolManager(BasePluginManager):
|
|
@@ -144,3 +146,41 @@ class PluginToolManager(BasePluginManager):
|
|
|
return resp.result
|
|
|
|
|
|
return False
|
|
|
+
|
|
|
+ def get_runtime_parameters(
|
|
|
+ self,
|
|
|
+ tenant_id: str,
|
|
|
+ user_id: str,
|
|
|
+ provider: str,
|
|
|
+ credentials: dict[str, Any],
|
|
|
+ tool: str,
|
|
|
+ ) -> list[ToolParameter]:
|
|
|
+ """
|
|
|
+ get the runtime parameters of the tool
|
|
|
+ """
|
|
|
+ plugin_id, provider_name = self._split_provider(provider)
|
|
|
+
|
|
|
+ class RuntimeParametersResponse(BaseModel):
|
|
|
+ parameters: list[ToolParameter]
|
|
|
+
|
|
|
+ response = self._request_with_plugin_daemon_response_stream(
|
|
|
+ "GET",
|
|
|
+ f"plugin/{tenant_id}/dispatch/tool/get_runtime_parameters",
|
|
|
+ RuntimeParametersResponse,
|
|
|
+ params={
|
|
|
+ "user_id": user_id,
|
|
|
+ "data": {
|
|
|
+ "provider": provider_name,
|
|
|
+ "tool": tool,
|
|
|
+ "credentials": credentials,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ headers={
|
|
|
+ "X-Plugin-ID": plugin_id,
|
|
|
+ },
|
|
|
+ )
|
|
|
+
|
|
|
+ for resp in response:
|
|
|
+ return resp.parameters
|
|
|
+
|
|
|
+ return []
|