| # provider = request.args.get("provider", default="vendor") | # provider = request.args.get("provider", default="vendor") | ||||
| search = request.args.get("keyword", default=None, type=str) | search = request.args.get("keyword", default=None, type=str) | ||||
| tag_ids = request.args.getlist("tag_ids") | tag_ids = request.args.getlist("tag_ids") | ||||
| include_all = request.args.get("include_all", default="false").lower() == "true" | |||||
| if ids: | if ids: | ||||
| datasets, total = DatasetService.get_datasets_by_ids(ids, current_user.current_tenant_id) | datasets, total = DatasetService.get_datasets_by_ids(ids, current_user.current_tenant_id) | ||||
| else: | else: | ||||
| datasets, total = DatasetService.get_datasets( | datasets, total = DatasetService.get_datasets( | ||||
| page, limit, current_user.current_tenant_id, current_user, search, tag_ids | |||||
| page, limit, current_user.current_tenant_id, current_user, search, tag_ids, include_all | |||||
| ) | ) | ||||
| # check embedding setting | # check embedding setting |
| # provider = request.args.get("provider", default="vendor") | # provider = request.args.get("provider", default="vendor") | ||||
| search = request.args.get("keyword", default=None, type=str) | search = request.args.get("keyword", default=None, type=str) | ||||
| tag_ids = request.args.getlist("tag_ids") | tag_ids = request.args.getlist("tag_ids") | ||||
| include_all = request.args.get("include_all", default="false").lower() == "true" | |||||
| datasets, total = DatasetService.get_datasets(page, limit, tenant_id, current_user, search, tag_ids) | |||||
| datasets, total = DatasetService.get_datasets( | |||||
| page, limit, tenant_id, current_user, search, tag_ids, include_all | |||||
| ) | |||||
| # check embedding setting | # check embedding setting | ||||
| provider_manager = ProviderManager() | provider_manager = ProviderManager() | ||||
| configurations = provider_manager.get_configurations(tenant_id=current_user.current_tenant_id) | configurations = provider_manager.get_configurations(tenant_id=current_user.current_tenant_id) |
| class DatasetService: | class DatasetService: | ||||
| @staticmethod | @staticmethod | ||||
| def get_datasets(page, per_page, tenant_id=None, user=None, search=None, tag_ids=None): | |||||
| def get_datasets(page, per_page, tenant_id=None, user=None, search=None, tag_ids=None, include_all=False): | |||||
| query = Dataset.query.filter(Dataset.tenant_id == tenant_id).order_by(Dataset.created_at.desc()) | query = Dataset.query.filter(Dataset.tenant_id == tenant_id).order_by(Dataset.created_at.desc()) | ||||
| if user: | if user: | ||||
| else: | else: | ||||
| return [], 0 | return [], 0 | ||||
| else: | else: | ||||
| if user.current_role != TenantAccountRole.OWNER: | |||||
| if user.current_role != TenantAccountRole.OWNER or not include_all: | |||||
| # show all datasets that the user has permission to access | # show all datasets that the user has permission to access | ||||
| if permitted_dataset_ids: | if permitted_dataset_ids: | ||||
| query = query.filter( | query = query.filter( |