mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-08-12 03:29:01 +08:00
Fix/disable autoflush in list tools (#14301)
This commit is contained in:
parent
3403ac361a
commit
8c9e34133c
@ -233,56 +233,57 @@ class BuiltinToolManageService:
|
|||||||
# get all builtin providers
|
# get all builtin providers
|
||||||
provider_controllers = ToolManager.list_builtin_providers(tenant_id)
|
provider_controllers = ToolManager.list_builtin_providers(tenant_id)
|
||||||
|
|
||||||
# get all user added providers
|
with db.session.no_autoflush:
|
||||||
db_providers: list[BuiltinToolProvider] = (
|
# get all user added providers
|
||||||
db.session.query(BuiltinToolProvider).filter(BuiltinToolProvider.tenant_id == tenant_id).all() or []
|
db_providers: list[BuiltinToolProvider] = (
|
||||||
)
|
db.session.query(BuiltinToolProvider).filter(BuiltinToolProvider.tenant_id == tenant_id).all() or []
|
||||||
|
)
|
||||||
|
|
||||||
# rewrite db_providers
|
# rewrite db_providers
|
||||||
for db_provider in db_providers:
|
for db_provider in db_providers:
|
||||||
db_provider.provider = str(ToolProviderID(db_provider.provider))
|
db_provider.provider = str(ToolProviderID(db_provider.provider))
|
||||||
|
|
||||||
# find provider
|
# find provider
|
||||||
def find_provider(provider):
|
def find_provider(provider):
|
||||||
return next(filter(lambda db_provider: db_provider.provider == provider, db_providers), None)
|
return next(filter(lambda db_provider: db_provider.provider == provider, db_providers), None)
|
||||||
|
|
||||||
result: list[ToolProviderApiEntity] = []
|
result: list[ToolProviderApiEntity] = []
|
||||||
|
|
||||||
for provider_controller in provider_controllers:
|
for provider_controller in provider_controllers:
|
||||||
try:
|
try:
|
||||||
# handle include, exclude
|
# handle include, exclude
|
||||||
if is_filtered(
|
if is_filtered(
|
||||||
include_set=dify_config.POSITION_TOOL_INCLUDES_SET, # type: ignore
|
include_set=dify_config.POSITION_TOOL_INCLUDES_SET, # type: ignore
|
||||||
exclude_set=dify_config.POSITION_TOOL_EXCLUDES_SET, # type: ignore
|
exclude_set=dify_config.POSITION_TOOL_EXCLUDES_SET, # type: ignore
|
||||||
data=provider_controller,
|
data=provider_controller,
|
||||||
name_func=lambda x: x.identity.name,
|
name_func=lambda x: x.identity.name,
|
||||||
):
|
):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# convert provider controller to user provider
|
# convert provider controller to user provider
|
||||||
user_builtin_provider = ToolTransformService.builtin_provider_to_user_provider(
|
user_builtin_provider = ToolTransformService.builtin_provider_to_user_provider(
|
||||||
provider_controller=provider_controller,
|
provider_controller=provider_controller,
|
||||||
db_provider=find_provider(provider_controller.entity.identity.name),
|
db_provider=find_provider(provider_controller.entity.identity.name),
|
||||||
decrypt_credentials=True,
|
decrypt_credentials=True,
|
||||||
)
|
|
||||||
|
|
||||||
# add icon
|
|
||||||
ToolTransformService.repack_provider(tenant_id=tenant_id, provider=user_builtin_provider)
|
|
||||||
|
|
||||||
tools = provider_controller.get_tools()
|
|
||||||
for tool in tools or []:
|
|
||||||
user_builtin_provider.tools.append(
|
|
||||||
ToolTransformService.convert_tool_entity_to_api_entity(
|
|
||||||
tenant_id=tenant_id,
|
|
||||||
tool=tool,
|
|
||||||
credentials=user_builtin_provider.original_credentials,
|
|
||||||
labels=ToolLabelManager.get_tool_labels(provider_controller),
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
result.append(user_builtin_provider)
|
# add icon
|
||||||
except Exception as e:
|
ToolTransformService.repack_provider(tenant_id=tenant_id, provider=user_builtin_provider)
|
||||||
raise e
|
|
||||||
|
tools = provider_controller.get_tools()
|
||||||
|
for tool in tools or []:
|
||||||
|
user_builtin_provider.tools.append(
|
||||||
|
ToolTransformService.convert_tool_entity_to_api_entity(
|
||||||
|
tenant_id=tenant_id,
|
||||||
|
tool=tool,
|
||||||
|
credentials=user_builtin_provider.original_credentials,
|
||||||
|
labels=ToolLabelManager.get_tool_labels(provider_controller),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
result.append(user_builtin_provider)
|
||||||
|
except Exception as e:
|
||||||
|
raise e
|
||||||
|
|
||||||
return BuiltinToolProviderSort.sort(result)
|
return BuiltinToolProviderSort.sort(result)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user