框架: B4-S4收尾——审核分页≤30卡/批(放量防爆,同批互见保family检出)
This commit is contained in:
parent
6a8b7a9ba6
commit
467d9495f8
@ -88,17 +88,22 @@ def review(work_id, batch, model, dry_run):
|
||||
if not rows:
|
||||
click.echo("无待审卡")
|
||||
return
|
||||
cards_json = json.dumps([{"idx": i + 1, **r[1]} for i, r in enumerate(rows)],
|
||||
ensure_ascii=False, indent=1)
|
||||
all_reviews = {}
|
||||
for role, desc in ROLES.items():
|
||||
content, usage = chat(
|
||||
REVIEW_PROMPT.format(criteria=CRITERIA, n=len(rows), cards=cards_json),
|
||||
model=model, system=SYSTEM_TMPL.format(role_desc=desc))
|
||||
data = extract_json(content)
|
||||
all_reviews[role] = {int(r["idx"]): r for r in data.get("reviews", []) if r.get("idx")}
|
||||
click.echo(f"[{role}] 评 {len(data.get('reviews', []))} 卡 "
|
||||
f"(in={usage.get('prompt_tokens')}) 总评: {data.get('overall', '')[:80]}")
|
||||
# 分页 ≤30 卡/批:放量后单调用塞全库必爆;同批互见保 family 检出
|
||||
PAGE = 30
|
||||
all_reviews = {role: {} for role in ROLES}
|
||||
for p0 in range(0, len(rows), PAGE):
|
||||
page = rows[p0:p0 + PAGE]
|
||||
cards_json = json.dumps([{"idx": p0 + i + 1, **r[1]} for i, r in enumerate(page)],
|
||||
ensure_ascii=False, indent=1)
|
||||
for role, desc in ROLES.items():
|
||||
content, usage = chat(
|
||||
REVIEW_PROMPT.format(criteria=CRITERIA, n=len(page), cards=cards_json),
|
||||
model=model, system=SYSTEM_TMPL.format(role_desc=desc))
|
||||
data = extract_json(content)
|
||||
all_reviews[role].update(
|
||||
{int(r["idx"]): r for r in data.get("reviews", []) if r.get("idx")})
|
||||
click.echo(f"[{role}] 批{p0 // PAGE + 1} 评 {len(data.get('reviews', []))} 卡 "
|
||||
f"(in={usage.get('prompt_tokens')}) 总评: {data.get('overall', '')[:80]}")
|
||||
# 汇总判定并写库(按序号匹配)
|
||||
stats = {"pass": 0, "revise": 0, "reject": 0}
|
||||
for i, (cid, payload) in enumerate(rows):
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user