|
|
|
@@ -2,6 +2,9 @@ import json |
|
|
|
import logging |
|
|
|
from pathlib import Path |
|
|
|
|
|
|
|
from sqlalchemy import select |
|
|
|
from sqlalchemy.orm import Session |
|
|
|
|
|
|
|
from configs import dify_config |
|
|
|
from core.helper.position_helper import is_filtered |
|
|
|
from core.model_runtime.utils.encoders import jsonable_encoder |
|
|
|
@@ -32,7 +35,7 @@ class BuiltinToolManageService: |
|
|
|
tenant_id=tenant_id, provider_controller=provider_controller |
|
|
|
) |
|
|
|
# check if user has added the provider |
|
|
|
builtin_provider: BuiltinToolProvider = ( |
|
|
|
builtin_provider = ( |
|
|
|
db.session.query(BuiltinToolProvider) |
|
|
|
.filter( |
|
|
|
BuiltinToolProvider.tenant_id == tenant_id, |
|
|
|
@@ -71,19 +74,18 @@ class BuiltinToolManageService: |
|
|
|
return jsonable_encoder([v for _, v in (provider.credentials_schema or {}).items()]) |
|
|
|
|
|
|
|
@staticmethod |
|
|
|
def update_builtin_tool_provider(user_id: str, tenant_id: str, provider_name: str, credentials: dict): |
|
|
|
def update_builtin_tool_provider( |
|
|
|
session: Session, user_id: str, tenant_id: str, provider_name: str, credentials: dict |
|
|
|
): |
|
|
|
""" |
|
|
|
update builtin tool provider |
|
|
|
""" |
|
|
|
# get if the provider exists |
|
|
|
provider: BuiltinToolProvider = ( |
|
|
|
db.session.query(BuiltinToolProvider) |
|
|
|
.filter( |
|
|
|
BuiltinToolProvider.tenant_id == tenant_id, |
|
|
|
BuiltinToolProvider.provider == provider_name, |
|
|
|
) |
|
|
|
.first() |
|
|
|
stmt = select(BuiltinToolProvider).where( |
|
|
|
BuiltinToolProvider.tenant_id == tenant_id, |
|
|
|
BuiltinToolProvider.provider == provider_name, |
|
|
|
) |
|
|
|
provider = session.scalar(stmt) |
|
|
|
|
|
|
|
try: |
|
|
|
# get provider |
|
|
|
@@ -115,13 +117,10 @@ class BuiltinToolManageService: |
|
|
|
encrypted_credentials=json.dumps(credentials), |
|
|
|
) |
|
|
|
|
|
|
|
db.session.add(provider) |
|
|
|
db.session.commit() |
|
|
|
session.add(provider) |
|
|
|
|
|
|
|
else: |
|
|
|
provider.encrypted_credentials = json.dumps(credentials) |
|
|
|
db.session.add(provider) |
|
|
|
db.session.commit() |
|
|
|
|
|
|
|
# delete cache |
|
|
|
tool_configuration.delete_tool_credentials_cache() |
|
|
|
@@ -129,15 +128,15 @@ class BuiltinToolManageService: |
|
|
|
return {"result": "success"} |
|
|
|
|
|
|
|
@staticmethod |
|
|
|
def get_builtin_tool_provider_credentials(user_id: str, tenant_id: str, provider: str): |
|
|
|
def get_builtin_tool_provider_credentials(tenant_id: str, provider_name: str): |
|
|
|
""" |
|
|
|
get builtin tool provider credentials |
|
|
|
""" |
|
|
|
provider: BuiltinToolProvider = ( |
|
|
|
provider = ( |
|
|
|
db.session.query(BuiltinToolProvider) |
|
|
|
.filter( |
|
|
|
BuiltinToolProvider.tenant_id == tenant_id, |
|
|
|
BuiltinToolProvider.provider == provider, |
|
|
|
BuiltinToolProvider.provider == provider_name, |
|
|
|
) |
|
|
|
.first() |
|
|
|
) |
|
|
|
@@ -156,7 +155,7 @@ class BuiltinToolManageService: |
|
|
|
""" |
|
|
|
delete tool provider |
|
|
|
""" |
|
|
|
provider: BuiltinToolProvider = ( |
|
|
|
provider = ( |
|
|
|
db.session.query(BuiltinToolProvider) |
|
|
|
.filter( |
|
|
|
BuiltinToolProvider.tenant_id == tenant_id, |