Spaces:
Sleeping
Sleeping
| """ | |
| Example script for running a single-paper review. | |
| This example is intentionally thin and delegates to the reusable | |
| `review_single_paper_from_text` helper, which is what a Hugging Face | |
| Space backend would call after performing PDF-to-text conversion. | |
| """ | |
| import json | |
| import sys | |
| from pathlib import Path | |
| import logging | |
| # Add project root to path for imports | |
| project_root = Path(__file__).parent.parent | |
| if str(project_root) not in sys.path: | |
| sys.path.insert(0, str(project_root)) | |
| from src.reviewer_agent.single_paper_inference import review_single_paper_from_text | |
| logging.basicConfig(level=logging.INFO) | |
| logging.getLogger("httpx").setLevel(logging.WARNING) | |
| logger = logging.getLogger(__name__) | |
| def main() -> None: | |
| """Run a minimal single-paper review using the first example paper.""" | |
| json_path = project_root / "examples" / "example_papers.json" | |
| with open(json_path, "r") as f: | |
| data = json.load(f) | |
| # For demonstration we take only the first paper | |
| first_paper = data[0] | |
| paper_text = first_paper.get("paper_context", "") | |
| logger.info("Running single-paper review from example_papers.json...") | |
| review = review_single_paper_from_text( | |
| paper_text, | |
| keywords=first_paper.get("keywords"), | |
| # Use config defaults for review_format and verbosity | |
| enable_logging=True, | |
| verbose=False, | |
| ) | |
| # Save the review content to a JSON file | |
| with open("review_content.json", "w") as f: | |
| json.dump([review], f, indent=2) | |
| logger.info("Review saved to review_content.json") | |
| if __name__ == "__main__": | |
| main() | |