MCPcopy Create free account
hub / github.com/OpenRaiser/PaperFlow / format_selection_summary

Function format_selection_summary

agents/feedback-agent/main.py:478–539  ·  view source on GitHub ↗

格式化选择摘要 Args: selected: 选中的编号集合 total_papers: 推送的论文总数 papers: 论文列表 Returns: 摘要文本

(
    selected: Set[int],
    total_papers: int,
    papers: List[Dict],
    *,
    newly_selected: Optional[Set[int]] = None,
    previously_selected: Optional[Set[int]] = None,
    skipped_label: str = "暂未选择",
    profile_updated: bool = True,
    reliability_note: str = "",
)

Source from the content-addressed store, hash-verified

476def format_selection_summary(
477 selected: Set[int],
478 total_papers: int,
479 papers: List[Dict],
480 *,
481 newly_selected: Optional[Set[int]] = None,
482 previously_selected: Optional[Set[int]] = None,
483 skipped_label: str = "暂未选择",
484 profile_updated: bool = True,
485 reliability_note: str = "",
486) -> str:
487 """
488 格式化选择摘要
489
490 Args:
491 selected: 选中的编号集合
492 total_papers: 推送的论文总数
493 papers: 论文列表
494
495 Returns:
496 摘要文本
497 """
498 skipped = set(range(1, total_papers + 1)) - selected
499 selection_rate = len(selected) / total_papers if total_papers > 0 else 0
500 learning_signals = build_learning_signals(selected, skipped, papers)
501 newly_selected = set(newly_selected or selected)
502 previously_selected = set(previously_selected or set())
503
504 lines = []
505 if selected:
506 if previously_selected:
507 if newly_selected:
508 lines.append(f"收到,本次新增 {len(newly_selected)} 篇,累计 {len(selected)} 篇已进入偏好学习流程。")
509 else:
510 lines.append(f"收到,这些论文此前已记录过;当前累计 {len(selected)} 篇在偏好学习流程中。")
511 else:
512 lines.append(f"收到,{len(selected)} 篇已进入偏好学习流程。")
513 else:
514 lines.append("收到,今天先都不看。")
515 lines.append("📊 今日反馈已记录:")
516 if previously_selected:
517 lines.append(f"累计选择:{format_number_ranges(selected)}({len(selected)} 篇)")
518 lines.append(f"本次新增:{format_number_ranges(newly_selected)}({len(newly_selected)} 篇)")
519 lines.append(f"此前已选:{format_number_ranges(previously_selected)}({len(previously_selected)} 篇)")
520 else:
521 lines.append(f"选择:{format_number_ranges(selected)}({len(selected)} 篇)")
522 lines.append(f"{skipped_label}:{format_number_ranges(skipped)}({len(skipped)} 篇)")
523 lines.append(f"选择率:{selection_rate:.1%}")
524
525 if learning_signals:
526 lines.append("学到的信号:")
527 lines.extend(learning_signals)
528
529 if reliability_note:
530 lines.append(reliability_note)
531 lines.append("以上推断我会继续用后续行为自动校正;如果哪条明显不对,直接补一句纠正我就行。")
532 if profile_updated:
533 lines.append("画像已更新,下次推送会据此调整。")
534 else:
535 lines.append("本次只记录选择结果,不更新偏好模型;下次完整浏览后再继续学习。")

Callers 1

process_feedbackFunction · 0.85

Calls 2

build_learning_signalsFunction · 0.85
format_number_rangesFunction · 0.85

Tested by

no test coverage detected