18 lines
1.1 KiB
Plaintext
18 lines
1.1 KiB
Plaintext
# pbl_evidence/api/pbl_evidence_collect_idempotent.dspy
|
||
# M5b 契约①:四类证据(decision/action/observation/artifact_version)幂等采集。
|
||
# 重复采集(同 idempotency_key / 同唯一索引三元组)不报错,返回 created=false。
|
||
# dspy 铁律:无 import、无 ServerEnv()、无 f-string、显式 return;
|
||
# 函数由 load_pbl_evidence() 挂 ServerEnv;日志一律字符串拼接。
|
||
debug('pbl_evidence/api/pbl_evidence_collect_idempotent.dspy: START params_kw=' + str(dict(params_kw)))
|
||
|
||
try:
|
||
res = await pbl_evidence_collect_idempotent(**dict(params_kw))
|
||
status = 'OK' if res.get('ok') else 'ERROR'
|
||
debug('pbl_evidence_collect_idempotent.dspy: DONE created=' + str(res.get('created')) +
|
||
' deduped=' + str(res.get('deduped')) + ' id=' + str(res.get('id')))
|
||
result = {'status': status, 'data': res, 'message': res.get('message') or ''}
|
||
return result
|
||
except Exception as e:
|
||
error('pbl_evidence_collect_idempotent.dspy: FAIL ' + str(format_exc()))
|
||
return {'status': 'ERROR', 'data': None, 'message': str(e)}
|