|
@@ -205,21 +205,20 @@ class Completion:
|
|
|
results = {}
|
|
|
with ThreadPoolExecutor() as executor:
|
|
|
futures = {}
|
|
|
- for tools in grouped_tools.values():
|
|
|
- # Only query the first tool in each group
|
|
|
- first_tool = tools[0]
|
|
|
+ for tool in external_data_tools:
|
|
|
+ if not tool.get("enabled"):
|
|
|
+ continue
|
|
|
+
|
|
|
future = executor.submit(
|
|
|
- cls.query_external_data_tool, current_app._get_current_object(), tenant_id, app_id, first_tool,
|
|
|
+ cls.query_external_data_tool, current_app._get_current_object(), tenant_id, app_id, tool,
|
|
|
inputs, query
|
|
|
)
|
|
|
- for tool in tools:
|
|
|
- futures[future] = tool
|
|
|
+
|
|
|
+ futures[future] = tool
|
|
|
|
|
|
for future in concurrent.futures.as_completed(futures):
|
|
|
- tool_key, result = future.result()
|
|
|
- if tool_key in grouped_tools:
|
|
|
- for tool in grouped_tools[tool_key]:
|
|
|
- results[tool['variable']] = result
|
|
|
+ tool_variable, result = future.result()
|
|
|
+ results[tool_variable] = result
|
|
|
|
|
|
inputs.update(results)
|
|
|
return inputs
|
|
@@ -246,9 +245,7 @@ class Completion:
|
|
|
query=query
|
|
|
)
|
|
|
|
|
|
- tool_key = (external_data_tool.get("type"), json.dumps(external_data_tool.get("config"), sort_keys=True))
|
|
|
-
|
|
|
- return tool_key, result
|
|
|
+ return tool_variable, result
|
|
|
|
|
|
@classmethod
|
|
|
def get_query_for_agent(cls, app: App, app_model_config: AppModelConfig, query: str, inputs: dict) -> str:
|