Project to test tools to evaluate and annotate LLM responses
-
Install pyenv to manage your Python versions and virtual environments:
curl -sSL https://pyenv.run | bash- If you are on MacOS and experiencing errors on python install with pyenv, follow this comment
- Add these lines to your
~/.bashrcor~/.zshrcto be able to activatepyenv virtualenv:eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)" eval "$(pyenv init --path)"
- Restart your shell
-
Install the right version of
Pythonwithpyenv:pyenv install 3.11.6
- Install Poetry to manage your dependencies and tooling configs:
If you have not previously installed any Python version, you may need to set your global Python version before installing Poetry:
curl -sSL https://install.python-poetry.org | python - --version 1.7.0pyenv global 3.11.6
Install Docker Engine to build and run the API's Docker image locally.
-
Create a
pyenvvirtual environment and link it to your project folder:pyenv virtualenv 3.11.6 llm-eval-annotator pyenv local llm-eval-annotatorNow, every time you are in your project directory your virtualenv will be activated!
-
Install dependencies with
Poetry:poetry install --no-root
Steps 1. and 2. can also be done in one command:
make installpoetry run pre-commit install- Create SSH key and pair it to be able to connect to Github
- Initiate empty repo on Github with the same name: llm-eval-annotator
- First commit locally and push:
git remote add origin git@github.com:jeromeassouline/llm-eval-annotator.git git push -u origin main- Make sure you have access to the DVC remote bucket (see bucket URL in
.dvc/configfile). If not, ask an administrator to give you access. - Pull the data:
dvc pull
To run unit tests, run pytest with:
pytest tests --cov srcor
make testTo check code formatting, run ruff format with:
ruff format --check .or
make format-checkYou can also integrate it to your IDE to reformat your code each time you save a file.
To run static analysis, run ruff with:
ruff check src testsor
make lint-checkTo run static analysis and to apply auto-fixes, run ruff with:
make lint-fixTo type check your code, run mypy with:
mypy src --explicit-package-bases --namespace-packagesor
make type-checkThe project includes an API built with FastAPI. Its code can be found at src/api.
The API is containerized using a Docker image, built from the Dockerfile and docker-compose.yml at the root.
To build and start the API, use the following Makefile command:
make start-apiYou can test the hello_world route by importing the Postman collection at postman.
For more details on the API routes, check the automatically generated swagger at the /docs url.
The project includes a Streamlit app. See its documentation in the specific README.