mirror of
https://github.com/modelscope/modelscope.git
synced 2026-02-24 20:19:51 +01:00
refactor install dependencies, default only depencies of hub and datasets
This commit is contained in:
@@ -4,10 +4,8 @@ import os
|
||||
from argparse import ArgumentParser
|
||||
from string import Template
|
||||
|
||||
import uvicorn
|
||||
|
||||
from modelscope.cli.base import CLICommand
|
||||
from modelscope.server.api_server import add_server_args, get_app
|
||||
from modelscope.server.api_server import add_server_args, run_server
|
||||
from modelscope.utils.logger import get_logger
|
||||
|
||||
logger = get_logger(log_level=logging.WARNING)
|
||||
@@ -37,5 +35,4 @@ class ServerCMD(CLICommand):
|
||||
parser.set_defaults(func=subparser_func)
|
||||
|
||||
def execute(self):
|
||||
app = get_app(self.args)
|
||||
uvicorn.run(app, host=self.args.host, port=self.args.port)
|
||||
run_server(self.args)
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
# Copyright (c) Alibaba, Inc. and its affiliates.
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from modelscope.utils.import_utils import LazyImportModule
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from .api_server import run_server, add_server_args
|
||||
else:
|
||||
_import_structure = {'api_server': ['run_server', 'add_server_arg']}
|
||||
import sys
|
||||
sys.modules[__name__] = LazyImportModule(
|
||||
__name__,
|
||||
globals()['__file__'],
|
||||
_import_structure,
|
||||
module_spec=__spec__,
|
||||
extra_objects={},
|
||||
)
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
from fastapi import APIRouter
|
||||
from starlette.routing import Route, WebSocketRoute
|
||||
|
||||
from modelscope.server.api.routers import health, model_router
|
||||
|
||||
|
||||
@@ -1,28 +1,11 @@
|
||||
import argparse
|
||||
|
||||
import uvicorn
|
||||
from fastapi import FastAPI
|
||||
|
||||
from modelscope.server.api.routers.router import api_router
|
||||
from modelscope.server.core.event_handlers import (start_app_handler,
|
||||
stop_app_handler)
|
||||
|
||||
|
||||
def get_app(args) -> FastAPI:
|
||||
app = FastAPI(
|
||||
title='modelscope_server',
|
||||
version='0.1',
|
||||
debug=True,
|
||||
swagger_ui_parameters={'tryItOutEnabled': True})
|
||||
app.state.args = args
|
||||
app.include_router(api_router)
|
||||
|
||||
app.add_event_handler('startup', start_app_handler(app))
|
||||
app.add_event_handler('shutdown', stop_app_handler(app))
|
||||
return app
|
||||
|
||||
|
||||
def add_server_args(parser):
|
||||
def add_server_args(parser: argparse.ArgumentParser):
|
||||
parser.add_argument(
|
||||
'--model_id', required=True, type=str, help='The target model id')
|
||||
parser.add_argument(
|
||||
@@ -37,7 +20,29 @@ def add_server_args(parser):
|
||||
help='Use LLMPipeline first for llm models.')
|
||||
|
||||
|
||||
def run_server(args):
|
||||
import uvicorn
|
||||
app = get_app(args)
|
||||
uvicorn.run(app, host=args.host, port=args.port)
|
||||
|
||||
|
||||
def get_app(args):
|
||||
from fastapi import FastAPI
|
||||
app = FastAPI(
|
||||
title='modelscope_server',
|
||||
version='0.1',
|
||||
debug=True,
|
||||
swagger_ui_parameters={'tryItOutEnabled': True})
|
||||
app.state.args = args
|
||||
app.include_router(api_router)
|
||||
|
||||
app.add_event_handler('startup', start_app_handler(app))
|
||||
app.add_event_handler('shutdown', stop_app_handler(app))
|
||||
return app
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
import uvicorn
|
||||
parser = argparse.ArgumentParser('modelscope_server')
|
||||
add_server_args(parser)
|
||||
args = parser.parse_args()
|
||||
|
||||
@@ -5,11 +5,13 @@ import enum
|
||||
class Fields(object):
|
||||
""" Names for different application fields
|
||||
"""
|
||||
framework = 'framework'
|
||||
cv = 'cv'
|
||||
nlp = 'nlp'
|
||||
audio = 'audio'
|
||||
multi_modal = 'multi-modal'
|
||||
science = 'science'
|
||||
server = 'server'
|
||||
|
||||
|
||||
class CVTasks(object):
|
||||
|
||||
@@ -1 +1 @@
|
||||
-r requirements/framework.txt
|
||||
-r requirements/hub.txt
|
||||
|
||||
4
requirements/hub.txt
Normal file
4
requirements/hub.txt
Normal file
@@ -0,0 +1,4 @@
|
||||
datasets
|
||||
requests>=2.25
|
||||
setuptools
|
||||
tqdm
|
||||
@@ -1,4 +1,3 @@
|
||||
fastapi
|
||||
requests
|
||||
sse-starlette
|
||||
uvicorn
|
||||
6
setup.py
6
setup.py
@@ -192,6 +192,12 @@ if __name__ == '__main__':
|
||||
filed_name = f'audio_{subfiled}'
|
||||
extra_requires[filed_name], _ = parse_requirements(
|
||||
f'requirements/audio/{filed_name}.txt')
|
||||
framework_requires = extra_requires['framework']
|
||||
del extra_requires['framework']
|
||||
# add framework dependencies to every field
|
||||
for field, requires in extra_requires.items():
|
||||
if field != 'server': # server need install model's field dependencies before.
|
||||
extra_requires[field] = framework_requires + extra_requires[field]
|
||||
extra_requires['all'] = all_requires
|
||||
|
||||
setup(
|
||||
|
||||
Reference in New Issue
Block a user