# pbl_evidence/api/pbl_evidence_stats.dspy # 证据类型分布统计(供 M6 评估 / 概览卡片)。 # dspy 铁律:无 import、无 ServerEnv()、无 f-string、显式 return(日志字符串拼接)。 debug('pbl_evidence_stats.dspy: START params_kw=' + str(dict(params_kw))) try: tenant = params_kw.get('tenant_id') or (await get_userorgid()) or '0' res = await pbl_evidence_stats( tenant_id=tenant, learner_id=params_kw.get('learner_id'), blueprint_id=params_kw.get('blueprint_id'), ) status = 'OK' if res.get('ok') else 'ERROR' debug('pbl_evidence_stats.dspy: DONE total=' + str(res.get('total'))) result = {'status': status, 'data': res, 'message': res.get('message') or ''} return result except Exception as e: error('pbl_evidence_stats.dspy: FAIL ' + str(format_exc())) return {'status': 'ERROR', 'data': None, 'message': str(e)}