# Paper Processor Go package for automated evaluation of academic papers using LLM-based criteria ## Features - Process multiple papers with configurable API settings - Structured evaluation results (accepted/rejected) - Rate limiting with request delay configuration - File-based processing (JSON input/output) - Customizable evaluation criteria ## Installation ```bash go get github.com/yourusername/paperprocessor ``` ## Usage ### Basic Configuration ```go import "github.com/yourusername/paperprocessor" config := paperprocessor.Config{ APIEndpoint: "https://api.llm-provider.com/v1/chat/completions", APIKey: "your-api-key", Model: "llm-model-name", RequestDelay: time.Second * 2, } ``` ### File Processing ```go err := paperprocessor.ProcessFile( "input/papers.json", "output/results.json", "criteria.txt", config, ) ``` ## Input Formats ### Papers JSON ```json [ { "title": "Paper Title", "abstract": "Paper abstract text...", "arxiv_id": "1234.56789" } ] ``` ### Criteria File ``` Evaluation criteria: - Relevance to quantum computing - Novelty of approach - Technical rigor ``` ## Output Example ```json { "accepted": [ { "paper": { "title": "Advanced Quantum Computing Methods", "abstract": "...", "arxiv_id": "2301.12345" }, "decision": "ACCEPT", "explanation": "Fulfills all criteria..." } ], "rejected": [ { "paper": { "title": "Basic Classical Algorithms", "abstract": "...", "arxiv_id": "2301.67890" }, "decision": "REJECT", "explanation": "Doesn't meet novelty requirements..." } ] } ``` ## Configuration Options | Parameter | Description | Default | |-----------------|--------------------------------------|---------------| | APIEndpoint | LLM API endpoint URL | Required | | APIKey | API authentication key | Required | | Model | LLM model name | Required | | RequestDelay | Delay between API requests | 1 second | ## License MIT