7
7
import sys
8
8
from typing import List , Optional
9
9
10
- import uvloop
11
10
from openai import OpenAI
12
11
from openai .types .chat import ChatCompletionMessageParam
13
12
13
+ import vllm .cmd .serve
14
14
import vllm .version
15
- from vllm .engine .arg_utils import EngineArgs
16
- from vllm .entrypoints .openai .api_server import run_server
17
- from vllm .entrypoints .openai .cli_args import (make_arg_parser ,
18
- validate_parsed_serve_args )
19
15
from vllm .logger import init_logger
20
16
from vllm .utils import FlexibleArgumentParser
21
17
@@ -31,19 +27,6 @@ def signal_handler(sig, frame):
31
27
signal .signal (signal .SIGTSTP , signal_handler )
32
28
33
29
34
- def serve (args : argparse .Namespace ) -> None :
35
- # The default value of `--model`
36
- if args .model != EngineArgs .model :
37
- raise ValueError (
38
- "With `vllm serve`, you should provide the model as a "
39
- "positional argument instead of via the `--model` option." )
40
-
41
- # EngineArgs expects the model name to be passed as --model.
42
- args .model = args .model_tag
43
-
44
- uvloop .run (run_server (args ))
45
-
46
-
47
30
def interactive_cli (args : argparse .Namespace ) -> None :
48
31
register_signal_handlers ()
49
32
@@ -150,28 +133,16 @@ def main():
150
133
'--version' ,
151
134
action = 'version' ,
152
135
version = vllm .version .__version__ )
153
-
154
136
subparsers = parser .add_subparsers (required = True , dest = "subparser" )
155
137
156
- serve_parser = subparsers .add_parser (
157
- "serve" ,
158
- help = "Start the vLLM OpenAI Compatible API server" ,
159
- usage = "vllm serve <model_tag> [options]" )
160
- serve_parser .add_argument ("model_tag" ,
161
- type = str ,
162
- help = "The model tag to serve" )
163
- serve_parser .add_argument (
164
- "--config" ,
165
- type = str ,
166
- default = '' ,
167
- required = False ,
168
- help = "Read CLI options from a config file."
169
- "Must be a YAML with the following options:"
170
- "https://docs.vllm.ai/en/latest/serving/openai_compatible_server.html#cli-reference"
171
- )
172
-
173
- serve_parser = make_arg_parser (serve_parser )
174
- serve_parser .set_defaults (dispatch_function = serve )
138
+ cmd_modules = [
139
+ vllm .cmd .serve ,
140
+ ]
141
+ cmds = {}
142
+ for cmd_module in cmd_modules :
143
+ cmd = cmd_module .cmd_init ()
144
+ cmd .subparser_init (subparsers ).set_defaults (dispatch_function = cmd .cmd )
145
+ cmds [cmd .name ] = cmd
175
146
176
147
complete_parser = subparsers .add_parser (
177
148
"complete" ,
@@ -196,8 +167,8 @@ def main():
196
167
chat_parser .set_defaults (dispatch_function = interactive_cli , command = "chat" )
197
168
198
169
args = parser .parse_args ()
199
- if args .subparser == "serve" :
200
- validate_parsed_serve_args (args )
170
+ if args .subparser in cmds :
171
+ cmds [ args . subparser ]. validate (args )
201
172
202
173
# One of the sub commands should be executed.
203
174
if hasattr (args , "dispatch_function" ):
0 commit comments