Register
Login
Resources
Docs Blog Datasets Glossary Case Studies Tutorials & Webinars
Product
Data Engine LLMs Platform Enterprise
Pricing Explore
Connect to our Discord channel

_wsgi.py 3.6 KB

You have to be logged in to leave a comment. Sign In
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
  1. import os
  2. import argparse
  3. import json
  4. import logging
  5. import logging.config
  6. logging.config.dictConfig({
  7. "version": 1,
  8. "formatters": {
  9. "standard": {
  10. "format": "[%(asctime)s] [%(levelname)s] [%(name)s::%(funcName)s::%(lineno)d] %(message)s"
  11. }
  12. },
  13. "handlers": {
  14. "console": {
  15. "class": "logging.StreamHandler",
  16. "level": os.getenv('LOG_LEVEL'),
  17. "stream": "ext://sys.stdout",
  18. "formatter": "standard"
  19. }
  20. },
  21. "root": {
  22. "level": os.getenv('LOG_LEVEL'),
  23. "handlers": [
  24. "console"
  25. ],
  26. "propagate": True
  27. }
  28. })
  29. from label_studio_ml.api import init_app
  30. from model import DagsHubLSModel
  31. _DEFAULT_CONFIG_PATH = os.path.join(os.path.dirname(__file__), 'config.json')
  32. def get_kwargs_from_config(config_path=_DEFAULT_CONFIG_PATH):
  33. if not os.path.exists(config_path):
  34. return dict()
  35. with open(config_path) as f:
  36. config = json.load(f)
  37. assert isinstance(config, dict)
  38. return config
  39. if __name__ == "__main__":
  40. parser = argparse.ArgumentParser(description='Label studio')
  41. parser.add_argument(
  42. '-p', '--port', dest='port', type=int, default=9090,
  43. help='Server port')
  44. parser.add_argument(
  45. '--host', dest='host', type=str, default='0.0.0.0',
  46. help='Server host')
  47. parser.add_argument(
  48. '--kwargs', '--with', dest='kwargs', metavar='KEY=VAL', nargs='+', type=lambda kv: kv.split('='),
  49. help='Additional LabelStudioMLBase model initialization kwargs')
  50. parser.add_argument(
  51. '-d', '--debug', dest='debug', action='store_true',
  52. help='Switch debug mode')
  53. parser.add_argument(
  54. '--log-level', dest='log_level', choices=['DEBUG', 'INFO', 'WARNING', 'ERROR'], default=None,
  55. help='Logging level')
  56. parser.add_argument(
  57. '--model-dir', dest='model_dir', default=os.path.dirname(__file__),
  58. help='Directory where models are stored (relative to the project directory)')
  59. parser.add_argument(
  60. '--check', dest='check', action='store_true',
  61. help='Validate model instance before launching server')
  62. parser.add_argument('--basic-auth-user',
  63. default=os.environ.get('ML_SERVER_BASIC_AUTH_USER', None),
  64. help='Basic auth user')
  65. parser.add_argument('--basic-auth-pass',
  66. default=os.environ.get('ML_SERVER_BASIC_AUTH_PASS', None),
  67. help='Basic auth pass')
  68. args = parser.parse_args()
  69. # setup logging level
  70. if args.log_level:
  71. logging.root.setLevel(args.log_level)
  72. def isfloat(value):
  73. try:
  74. float(value)
  75. return True
  76. except ValueError:
  77. return False
  78. def parse_kwargs():
  79. param = dict()
  80. for k, v in args.kwargs:
  81. if v.isdigit():
  82. param[k] = int(v)
  83. elif v == 'True' or v == 'true':
  84. param[k] = True
  85. elif v == 'False' or v == 'false':
  86. param[k] = False
  87. elif isfloat(v):
  88. param[k] = float(v)
  89. else:
  90. param[k] = v
  91. return param
  92. kwargs = get_kwargs_from_config()
  93. if args.kwargs:
  94. kwargs.update(parse_kwargs())
  95. if args.check:
  96. print('Check "' + DagsHubLSModel.__name__ + '" instance creation..')
  97. model = DagsHubLSModel(**kwargs)
  98. app = init_app(model_instance=DagsHubLSModel(), basic_auth_user=args.basic_auth_user, basic_auth_pass=args.basic_auth_pass)
  99. app.run(host=args.host, port=args.port, debug=args.debug)
  100. else:
  101. # for uWSGI use
  102. app = init_app(model_instance=DagsHubLSModel())
Tip!

Press p or to see the previous file or, n or to see the next file

Comments

Loading...