From de9f8c23689ec562d3961d9b1522851f6fc983b0 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Wed, 16 Jul 2025 17:17:48 +0800 Subject: [PATCH] perf: Simple assistant ds filter --- backend/apps/system/crud/assistant.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/backend/apps/system/crud/assistant.py b/backend/apps/system/crud/assistant.py index 85df6f8e..c45336e7 100644 --- a/backend/apps/system/crud/assistant.py +++ b/backend/apps/system/crud/assistant.py @@ -1,5 +1,6 @@ +import json from fastapi import FastAPI from sqlmodel import Session, select from apps.datasource.models.datasource import CoreDatasource @@ -22,7 +23,14 @@ def get_assistant_user(*, id: int): def get_assistant_ds(*, session: Session, assistant: AssistantModel): type = assistant.type if type == 0: - db_ds_list = session.exec(select(CoreDatasource.id, CoreDatasource.name, CoreDatasource.description)).all() + stmt = select(CoreDatasource.id, CoreDatasource.name, CoreDatasource.description) + configuration = assistant.configuration + if configuration: + config = json.loads(configuration) + private_list:list[int] = config['private_list'] + if not private_list: + stmt.where(~CoreDatasource.id.in_(private_list)) + db_ds_list = session.exec(stmt).all() # filter private ds if offline return db_ds_list pass