1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 setuptools,
6 aiohttp,
7 fastapi,
8 httpx,
9 markdown2,
10 nh3,
11 numpy,
12 prompt-toolkit,
13 pydantic,
14 requests,
15 rich,
16 shortuuid,
17 tiktoken,
18 uvicorn,
19 anthropic,
20 openai,
21 ray,
22 wandb,
23 einops,
24 gradio,
25 accelerate,
26 peft,
27 sentencepiece,
28 torch,
29 transformers,
30 protobuf,
31}:
32let
33 version = "0.2.36";
34in
35buildPythonPackage {
36 pname = "fschat";
37 inherit version;
38 format = "pyproject";
39
40 src = fetchFromGitHub {
41 owner = "lm-sys";
42 repo = "FastChat";
43 tag = "v${version}";
44 hash = "sha256-tQuvQXzQbQjU16DfS1o55VHW6eklngEvIigzZGgrKB8=";
45 };
46
47 nativeBuildInputs = [ setuptools ];
48
49 propagatedBuildInputs = [
50 aiohttp
51 fastapi
52 httpx
53 markdown2
54 nh3
55 numpy
56 prompt-toolkit
57 pydantic
58 requests
59 rich
60 shortuuid
61 tiktoken
62 uvicorn
63 # ] ++ markdown2.optional-dependencies.all;
64 ];
65
66 optional-dependencies = {
67 llm_judge = [
68 anthropic
69 openai
70 ray
71 ];
72 train = [
73 # flash-attn
74 wandb
75 einops
76 ];
77 webui = [ gradio ];
78 model_worker = [
79 accelerate
80 peft
81 sentencepiece
82 torch
83 transformers
84 protobuf
85 ];
86 };
87
88 pythonImportsCheck = [ "fastchat" ];
89
90 # tests require networking
91 doCheck = false;
92
93 meta = with lib; {
94 description = "Open platform for training, serving, and evaluating large language models. Release repo for Vicuna and Chatbot Arena";
95 homepage = "https://github.com/lm-sys/FastChat";
96 license = licenses.asl20;
97 maintainers = with maintainers; [ happysalada ];
98 };
99}