First off, thank you for considering contributing to Twelve Angry LLMs! It's people like you that make such an open-source project possible.
-
Fork the repository on GitHub.
-
Clone your fork locally:
git clone https://github.com/your_username/twelve-angry-llms.git
-
Set up a virtual environment and install the dependencies. We recommend using
uv:uv venv source .venv/bin/activate uv pip install -e .
To add a new judge, you should:
- Create a new file in
src/twelve_angry_llms/judges/. - Create a new
EvaluationResultmodel insrc/twelve_angry_llms/results/that defines the structure of your judge's output. - Create a new class that inherits from
Judgeand implements theevaluatemethod. Theevaluatemethod should return an instance of yourEvaluationResultmodel.
To add a new LLM provider, you should:
- Create a new file in
src/twelve_angry_llms/providers/. - Create a new class that inherits from
LLMProviderand implements theget_responsemethod.
We use the Google Python Style Guide for docstrings. Please make sure your contributions adhere to this style.
We use ruff for linting and formatting. Before submitting a pull request, please run:
ruff check .
ruff format .- Create a new branch for your feature:
git checkout -b my-new-feature - Commit your changes:
git commit -am 'Add some feature' - Push to the branch:
git push origin my-new-feature - Submit a pull request.
We'll review your pull request as soon as possible. Thank you for your contribution!