From 5e6913dff22b6d7e2301dd1c3cbd182dc934d6b6 Mon Sep 17 00:00:00 2001 From: Frank Colson Date: Thu, 30 Nov 2023 16:23:34 -0700 Subject: [PATCH 1/4] Use poetry extras for proxy --- litellm/proxy/proxy_server.py | 23 +++-------------------- pyproject.toml | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 20 deletions(-) diff --git a/litellm/proxy/proxy_server.py b/litellm/proxy/proxy_server.py index 20d39d817..45b5a1bbc 100644 --- a/litellm/proxy/proxy_server.py +++ b/litellm/proxy/proxy_server.py @@ -17,27 +17,10 @@ try: import yaml import rq except ImportError: - import sys - - subprocess.check_call( - [ - sys.executable, - "-m", - "pip", - "install", - "uvicorn", - "fastapi", - "appdirs", - "backoff", - "pyyaml", - "rq" - ] + raise ImportError( + "Running `litellm proxy` requires installing via `pip install litellm[proxy]`" ) - import uvicorn - import fastapi - import appdirs - import backoff - import yaml + import random diff --git a/pyproject.toml b/pyproject.toml index cc9f7a56d..e5d1bf575 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,6 +19,21 @@ certifi = "^2023.7.22" appdirs = "^1.4.4" aiohttp = "*" +uvicorn = {version = "^0.24.0.post1", optional = true} +fastapi = {version = "^0.104.1", optional = true} +backoff = {version = "*", optional = true} +yaml = {version = "*", optional = true} +rq = {version = "*", optional = true} + +[tool.poetry.extras] +proxy = [ + "uvicorn", + "fastapi", + "backoff", + "yaml", + "rq" +] + [tool.poetry.scripts] litellm = 'litellm:run_server' From d557f3be74775faa1e3b82d09bb88d6555469fe8 Mon Sep 17 00:00:00 2001 From: Frank Colson Date: Thu, 30 Nov 2023 16:31:43 -0700 Subject: [PATCH 2/4] Remove YAML dependency --- pyproject.toml | 2 -- 1 file changed, 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index e5d1bf575..f8c4c01ec 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -22,7 +22,6 @@ aiohttp = "*" uvicorn = {version = "^0.24.0.post1", optional = true} fastapi = {version = "^0.104.1", optional = true} backoff = {version = "*", optional = true} -yaml = {version = "*", optional = true} rq = {version = "*", optional = true} [tool.poetry.extras] @@ -30,7 +29,6 @@ proxy = [ "uvicorn", "fastapi", "backoff", - "yaml", "rq" ] From 7ddfeb75bc5190cfd470d6c01ac6487cdac3e3f2 Mon Sep 17 00:00:00 2001 From: Frank Colson Date: Thu, 30 Nov 2023 16:35:19 -0700 Subject: [PATCH 3/4] Add backwards compatability --- litellm/proxy/proxy_server.py | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/litellm/proxy/proxy_server.py b/litellm/proxy/proxy_server.py index 45b5a1bbc..4cd573c9b 100644 --- a/litellm/proxy/proxy_server.py +++ b/litellm/proxy/proxy_server.py @@ -4,6 +4,7 @@ import shutil, random, traceback, requests from datetime import datetime, timedelta from typing import Optional, List import secrets, subprocess +import warnings messages: list = [] sys.path.insert( 0, os.path.abspath("../..") @@ -17,10 +18,31 @@ try: import yaml import rq except ImportError: - raise ImportError( - "Running `litellm proxy` requires installing via `pip install litellm[proxy]`" - ) + import sys + subprocess.check_call( + [ + sys.executable, + "-m", + "pip", + "install", + "uvicorn", + "fastapi", + "appdirs", + "backoff", + "pyyaml", + "rq" + ] + ) + import uvicorn + import fastapi + import appdirs + import backoff + import yaml + + warnings.warn( + "Installed runtime dependencies for proxy server. Specify these dependencies explicitly with `pip install litellm[proxy]`" + ) import random From 6fb178dc942c1d1844c192e472af7105c5012384 Mon Sep 17 00:00:00 2001 From: Frank Colson Date: Thu, 30 Nov 2023 16:43:09 -0700 Subject: [PATCH 4/4] Update docs --- docs/my-website/docs/proxy_server.md | 2 +- docs/my-website/docs/simple_proxy.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/my-website/docs/proxy_server.md b/docs/my-website/docs/proxy_server.md index 438e68cf7..ec8ca15c5 100644 --- a/docs/my-website/docs/proxy_server.md +++ b/docs/my-website/docs/proxy_server.md @@ -13,7 +13,7 @@ Docs outdated. New docs 👉 [here](./simple_proxy.md) ## Usage ```shell -pip install litellm +pip install litellm[proxy] ``` ```shell $ litellm --model ollama/codellama diff --git a/docs/my-website/docs/simple_proxy.md b/docs/my-website/docs/simple_proxy.md index fd709eab8..6df34bad2 100644 --- a/docs/my-website/docs/simple_proxy.md +++ b/docs/my-website/docs/simple_proxy.md @@ -16,7 +16,7 @@ LiteLLM Server manages: View all the supported args for the Proxy CLI [here](https://docs.litellm.ai/docs/simple_proxy#proxy-cli-arguments) ```shell -$ pip install litellm +$ pip install litellm[proxy] ``` ```shell