(
user_id: str,
arxiv_id: str,
write_feishu: Optional[bool] = None,
response_language: str = "zh",
)
| 2503 | category=paper.get("category", "unknown"), |
| 2504 | ) |
| 2505 | |
| 2506 | for paper_number in sorted(skipped): |
| 2507 | paper = papers[paper_number - 1] |
| 2508 | _log_feedback_event( |
| 2509 | user_id=user_id, |
| 2510 | push_id=push_id, |
| 2511 | paper_number=paper_number, |
| 2512 | paper=paper, |
| 2513 | action="skipped", |
| 2514 | action_type="gui_skipped", |
| 2515 | category=paper.get("category", "unknown"), |
| 2516 | ) |
| 2517 | |
| 2518 | for paper_number in sorted(later): |
| 2519 | paper = papers[paper_number - 1] |
| 2520 | _log_feedback_event( |
| 2521 | user_id=user_id, |
| 2522 | push_id=push_id, |
| 2523 | paper_number=paper_number, |
| 2524 | paper=paper, |
| 2525 | action="later", |
| 2526 | action_type="gui_later", |
| 2527 | category=paper.get("category", "unknown"), |
| 2528 | ) |
| 2529 | |
| 2530 | profile_before = db_ops.get_profile(user_id) or {} |
| 2531 | updated_profile: Dict[str, Any] = profile_before |
| 2532 | if selected or skipped or later: |
| 2533 | history_before_update = db_ops.get_recent_selected_papers( |
| 2534 | user_id, |
| 2535 | limit=60, |
| 2536 | days=60, |
| 2537 | before_timestamp=current_timestamp.isoformat(sep=" "), |
| 2538 | ) |
| 2539 | strength, _latency = feedback_agent.estimate_feedback_strength_multiplier(push_id, current_timestamp) |
| 2540 | updated_profile = feedback_agent.update_profile_based_on_selection( |
| 2541 | user_id=user_id, |
| 2542 | selected_paper_ids=sorted(selected), |
| 2543 | skipped_paper_ids=sorted(skipped), |
| 2544 | papers=papers, |
| 2545 | historical_selected_papers=history_before_update, |
| 2546 | current_timestamp=current_timestamp, |
| 2547 | feedback_strength_multiplier=strength, |
| 2548 | ) |
| 2549 | evidence_numbers = sorted(selected | skipped | later) |
| 2550 | evidence_papers = [papers[number - 1] for number in evidence_numbers if 1 <= number <= len(papers)] |
| 2551 | feedback_agent.ingest_profile_drift_to_wiki( |
nothing calls this directly
no test coverage detected