# LLM Processor Module

A Go module for processing papers through language models with configurable criteria.

## Installation

```bash
go get llm_processor
```

## Command Line Usage

The module provides a CLI interface for processing papers:

```bash
go run main.go -input papers.json -output results.json -criteria criteria.txt
```

## API Usage

Import the module in your Go code:

```go
import "llm_processor"
```

### Example: Processing Papers

```go
package main

import (
	"fmt"
	"llm_processor/models"
	"llm_processor/processor"
	"llm_processor/storage"
)

func main() {
	// Load papers
	papers, err := storage.LoadPapers("papers.json")
	if err != nil {
		panic(err)
	}

	// Initialize processor
	proc := processor.NewProcessor("gpt-4", 32)

	// Process papers
	results := proc.ProcessPapers(papers, "criteria.txt")

	// Save results
	err = storage.SaveResults("results.json", results)
	if err != nil {
		panic(err)
	}

	fmt.Println("Processing complete!")
}
```

## Configuration

The processor supports the following configuration:

- Model selection (gpt-3.5-turbo, gpt-4, etc.)
- Batch size
- Custom criteria files
- Input/output file paths

## Dependencies

- Go 1.21+
- OpenAI API key (set as environment variable OPENAI_API_KEY)

## Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

## License

[MIT](https://choosealicense.com/licenses/mit/)
