Skip to main content

Contributing Code

Checklist before submitting a PR​

Here are the core requirements for any PR submitted to LiteLLM

  • Add testing, Adding at least 1 test is a hard requirement - see details
  • Ensure your PR passes the following tests:
  • Keep scope as isolated as possible. As a general rule, your changes should address 1 specific problem at a time

Quick start​

1. Setup your local dev environment​

Here's how to modify the repo locally:

Step 1: Clone the repo

git clone https://github.com/BerriAI/litellm.git

Step 2: Install dev dependencies:

poetry install --with dev --extras proxy

That's it, your local dev environment is ready!

2. Adding Testing to your PR​

  • Add your test to the tests/litellm/ directory

  • This directory 1:1 maps the the litellm/ directory, and can only contain mocked tests.

  • Do not add real llm api calls to this directory.

2.1 File Naming Convention for tests/litellm/​

The tests/litellm/ directory follows the same directory structure as litellm/.

  • litellm/proxy/test_caching_routes.py maps to litellm/proxy/caching_routes.py
  • test_{filename}.py maps to litellm/{filename}.py

3. Running Unit Tests​

run the following command on the root of the litellm directory

make test-unit

4. Submit a PR with your changes!​

  • push your fork to your GitHub repo
  • submit a PR from there

Advanced​

Building LiteLLM Docker Image​

Some people might want to build the LiteLLM docker image themselves. Follow these instructions if you want to build / run the LiteLLM Docker Image yourself.

Step 1: Clone the repo

git clone https://github.com/BerriAI/litellm.git

Step 2: Build the Docker Image

Build using Dockerfile.non_root

docker build -f docker/Dockerfile.non_root -t litellm_test_image .

Step 3: Run the Docker Image

Make sure config.yaml is present in the root directory. This is your litellm proxy config file.

docker run \
-v $(pwd)/proxy_config.yaml:/app/config.yaml \
-e DATABASE_URL="postgresql://xxxxxxxx" \
-e LITELLM_MASTER_KEY="sk-1234" \
-p 4000:4000 \
litellm_test_image \
--config /app/config.yaml --detailed_debug