| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- import argparse
- def add_server_args(parser: argparse.ArgumentParser):
- parser.add_argument(
- '--model_id', required=True, type=str, help='The target model id')
- parser.add_argument(
- '--revision', required=True, type=str, help='Model revision')
- parser.add_argument('--host', default='0.0.0.0', help='Host to listen')
- parser.add_argument('--port', type=int, default=8000, help='Server port')
- parser.add_argument('--debug', default='debug', help='Set debug level.')
- parser.add_argument(
- '--external_engine_for_llm',
- type=bool,
- default=True,
- help='Use LLMPipeline first for llm models.')
- def run_server(args):
- try:
- import uvicorn
- app = get_app(args)
- uvicorn.run(app, host=args.host, port=args.port)
- except ModuleNotFoundError as e:
- print(e)
- print(
- 'To execute the server command, first '
- 'install the domain dependencies with: '
- 'pip install modelscope[DOMAIN] -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html '
- 'the "DOMAIN" include [cv|nlp|audio|multi-modal|science] '
- 'and then install server dependencies with: pip install modelscope[server]'
- )
- def get_app(args):
- 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)
- 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()
- app = get_app(args)
- uvicorn.run(app, host=args.host, port=args.port)
|