submit_review
Prepare and preview a peer review for academic conference submissions by providing ratings, confidence levels, and detailed feedback before final submission.
Instructions
Prepare a review for submission. Returns a preview — call confirm_submission to actually post it.
Args: venue_id: The venue identifier. submission_number: The paper number. rating: Numerical rating (scale depends on venue). confidence: Your confidence level (scale depends on venue). review_text: The main review text. title: Review title. Default: 'Official Review'. strengths: Paper strengths (if venue uses separate fields). weaknesses: Paper weaknesses (if venue uses separate fields). questions: Questions for the authors. limitations: Limitations discussion. ethics_flag: Whether to flag ethics concerns.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| venue_id | Yes | ||
| submission_number | Yes | ||
| rating | Yes | ||
| confidence | Yes | ||
| review_text | Yes | ||
| title | No | Official Review | |
| strengths | No | ||
| weaknesses | No | ||
| questions | No | ||
| limitations | No | ||
| ethics_flag | No |
Implementation Reference
- The handler function 'submit_review' that creates a review entry and adds it to the pending store for confirmation.
async def submit_review( venue_id: str, submission_number: int, rating: int, confidence: int, review_text: str, title: str = "Official Review", strengths: str | None = None, weaknesses: str | None = None, questions: str | None = None, limitations: str | None = None, ethics_flag: bool = False, ) -> str: """Prepare a review for submission. Returns a preview — call confirm_submission to actually post it. Args: venue_id: The venue identifier. submission_number: The paper number. rating: Numerical rating (scale depends on venue). confidence: Your confidence level (scale depends on venue). review_text: The main review text. title: Review title. Default: 'Official Review'. strengths: Paper strengths (if venue uses separate fields). weaknesses: Paper weaknesses (if venue uses separate fields). questions: Questions for the authors. limitations: Limitations discussion. ethics_flag: Whether to flag ethics concerns. """ content = { "title": {"value": title}, "review": {"value": review_text}, "rating": {"value": rating}, "confidence": {"value": confidence}, } if strengths: content["strengths"] = {"value": strengths} if weaknesses: content["weaknesses"] = {"value": weaknesses} if questions: content["questions"] = {"value": questions} if limitations: content["limitations"] = {"value": limitations} if ethics_flag: content["ethics_flag"] = {"value": "Yes"} client = get_client() profile_id = client.profile.id anon_groups = client.get_groups( prefix=f"{venue_id}/Submission{submission_number}/Reviewer_", signatory=profile_id, ) if not anon_groups: return f"Could not find your anonymous reviewer group for Submission #{submission_number}. Are you assigned as a reviewer?" anon_id = anon_groups[0].id payload = { "invitation": f"{venue_id}/Submission{submission_number}/-/Official_Review", "signatures": [anon_id], "content": content, } preview_lines = [ f"## Review Preview for Submission #{submission_number}", f"**Signing as:** {anon_id}", f"**Rating:** {rating}", f"**Confidence:** {confidence}", f"\n### {title}\n", review_text, ] if strengths: preview_lines.append(f"\n**Strengths:** {strengths}") if weaknesses: preview_lines.append(f"\n**Weaknesses:** {weaknesses}") if questions: preview_lines.append(f"\n**Questions:** {questions}") preview = "\n".join(preview_lines) confirmation_id = pending_store.add(action="submit_review", payload=payload, preview=preview) return f"{preview}\n\n---\n**Confirmation ID:** `{confirmation_id}`\n\nCall `confirm_submission` with this ID to post the review to OpenReview."