35 lines
862 B
Go
35 lines
862 B
Go
|
package models
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
)
|
||
|
|
||
|
// Paper represents a research paper
|
||
|
type Paper struct {
|
||
|
Title string `json:"title"`
|
||
|
Abstract string `json:"abstract"`
|
||
|
ArxivID string `json:"arxiv_id"`
|
||
|
}
|
||
|
|
||
|
// Result represents the evaluation result from the LLM
|
||
|
type Result struct {
|
||
|
Paper Paper `json:"paper"`
|
||
|
Decision string `json:"decision"` // ACCEPT, REJECT, or ERROR
|
||
|
Explanation string `json:"explanation"`
|
||
|
}
|
||
|
|
||
|
// OrganizedResults contains categorized results
|
||
|
type OrganizedResults struct {
|
||
|
Accepted []Result `json:"accepted"`
|
||
|
Rejected []Result `json:"rejected"`
|
||
|
Errors []Result `json:"errors"`
|
||
|
}
|
||
|
|
||
|
// Validate checks if a Result has valid decision value
|
||
|
func (r *Result) Validate() error {
|
||
|
if r.Decision != "ACCEPT" && r.Decision != "REJECT" && r.Decision != "ERROR" {
|
||
|
return fmt.Errorf("invalid decision value: %s", r.Decision)
|
||
|
}
|
||
|
return nil
|
||
|
}
|