1{
2 lib,
3 aiohttp,
4 apscheduler,
5 azure-identity,
6 azure-keyvault-secrets,
7 backoff,
8 buildPythonPackage,
9 click,
10 cryptography,
11 fastapi,
12 fastapi-sso,
13 fetchFromGitHub,
14 google-cloud-kms,
15 gunicorn,
16 importlib-metadata,
17 jinja2,
18 jsonschema,
19 openai,
20 orjson,
21 poetry-core,
22 prisma,
23 pydantic,
24 pyjwt,
25 pynacl,
26 python-dotenv,
27 python-multipart,
28 pythonOlder,
29 pyyaml,
30 requests,
31 resend,
32 rq,
33 tiktoken,
34 tokenizers,
35 uvicorn,
36}:
37
38buildPythonPackage rec {
39 pname = "litellm";
40 version = "1.41.28";
41 pyproject = true;
42
43 disabled = pythonOlder "3.8";
44
45 src = fetchFromGitHub {
46 owner = "BerriAI";
47 repo = "litellm";
48 rev = "refs/tags/v${version}";
49 hash = "sha256-DNFzBl2K4liphEMVPRbLWMzzCxtIcvUgQxvppAnv/10=";
50 };
51
52 build-system = [ poetry-core ];
53
54 dependencies = [
55 aiohttp
56 click
57 importlib-metadata
58 jinja2
59 jsonschema
60 openai
61 pydantic
62 python-dotenv
63 requests
64 tiktoken
65 tokenizers
66 ];
67
68 passthru.optional-dependencies = {
69 proxy = [
70 apscheduler
71 backoff
72 cryptography
73 fastapi
74 fastapi-sso
75 gunicorn
76 orjson
77 pyjwt
78 python-multipart
79 pyyaml
80 rq
81 uvicorn
82 ];
83 extra_proxy = [
84 azure-identity
85 azure-keyvault-secrets
86 google-cloud-kms
87 prisma
88 pynacl
89 resend
90 ];
91 };
92
93 pythonImportsCheck = [ "litellm" ];
94
95 # access network
96 doCheck = false;
97
98 meta = with lib; {
99 description = "Use any LLM as a drop in replacement for gpt-3.5-turbo. Use Azure, OpenAI, Cohere, Anthropic, Ollama, VLLM, Sagemaker, HuggingFace, Replicate (100+ LLMs)";
100 mainProgram = "litellm";
101 homepage = "https://github.com/BerriAI/litellm";
102 changelog = "https://github.com/BerriAI/litellm/releases/tag/v${version}";
103 license = licenses.mit;
104 maintainers = with maintainers; [ happysalada ];
105 };
106}