import json providerid = (params_kw or {}).get('providerid', '') catelogid = (params_kw or {}).get('catelogid', '') search = (params_kw or {}).get('search', '').strip() data = await request._run_ns.get_llms_by_catelog_to_customer( catelogid=catelogid if catelogid else None, orderby='a.name' ) result = [] for cate in data: for llm in cate['llms']: if providerid and llm.providerid != providerid: continue if search: sl = search.lower() n = (llm.name or '').lower() d = (llm.description or '').lower() if sl not in n and sl not in d: continue result.append({ 'id': llm.id, 'name': llm.name, 'model': llm.model, 'description': llm.description or '', 'iconid': llm.iconid, 'providerid': llm.providerid, 'provider_name': getattr(llm, 'provider_name', getattr(llm, 'orgname', '')), 'catelog_id': getattr(llm, 'catelog_id', ''), 'catelogname': getattr(llm, 'catelogname', ''), 'pricing_display': getattr(llm, 'pricing_display', []), }) return json.dumps({'total': len(result), 'rows': result}, ensure_ascii=False)