diff --git a/backend/apps/system/crud/assistant.py b/backend/apps/system/crud/assistant.py index 74d08d61..7c33cd33 100644 --- a/backend/apps/system/crud/assistant.py +++ b/backend/apps/system/crud/assistant.py @@ -35,9 +35,10 @@ def get_assistant_ds(llm_service) -> list[dict]: config: dict[any] = json.loads(configuration) oid: str = config['oid'] stmt = select(CoreDatasource.id, CoreDatasource.name, CoreDatasource.description).where(CoreDatasource.oid == oid) - private_list:list[int] = config.get('private_list') or None - if private_list: - stmt.where(~CoreDatasource.id.in_(private_list)) + if not assistant.online: + private_list:list[int] = config.get('private_list') or None + if private_list: + stmt = stmt.where(~CoreDatasource.id.in_(private_list)) db_ds_list = session.exec(stmt) result_list = [ diff --git a/backend/common/core/deps.py b/backend/common/core/deps.py index afc2dc36..0dcef442 100644 --- a/backend/common/core/deps.py +++ b/backend/common/core/deps.py @@ -25,6 +25,9 @@ async def get_current_assistant(request: Request) -> AssistantHeader | None: if request.headers.get("X-SQLBOT-ASSISTANT-CERTIFICATE"): entry_certificate = request.headers['X-SQLBOT-ASSISTANT-CERTIFICATE'] base_assistant.certificate = unquote(base64.b64decode(entry_certificate).decode('utf-8')) + if request.headers.get("X-SQLBOT-ASSISTANT-ONLINE"): + entry_online = request.headers['X-SQLBOT-ASSISTANT-ONLINE'] + base_assistant.online = str(entry_online).lower() == 'true' if entry_online else False return base_assistant CurrentAssistant = Annotated[AssistantHeader, Depends(get_current_assistant)] diff --git a/frontend/public/assistant.js b/frontend/public/assistant.js index 96c0cd21..043fd455 100644 --- a/frontend/public/assistant.js +++ b/frontend/public/assistant.js @@ -1,4 +1,5 @@ ;(function () { + window.sqlbot_assistant_handler = window.sqlbot_assistant_handler || {} const defaultData = { id: '1', show_guide: false, @@ -67,7 +68,7 @@ const getChatContainerHtml = (data) => { return `