Kiran5 commited on
Commit
88476ec
·
verified ·
1 Parent(s): 497cdff

Update src/main_MM.py

Browse files
Files changed (1) hide show
  1. src/main_MM.py +73 -34
src/main_MM.py CHANGED
@@ -9,24 +9,19 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
9
  '''
10
 
11
  import os
12
- from flask import Flask,request,jsonify
13
  from flask_swagger_ui import get_swaggerui_blueprint
14
-
15
- from routing.injectionRouter import injection_router
16
- from routing.detoxifyRouter import detoxify_router
17
- from routing.embedingRouter import embed_router
18
- from routing.privacyRouter import privacy_router
19
- from routing.topicRouter import topic_router
20
- from routing.sentimentRouter import sentiment_router
21
- from routing.invisibletextRouter import invisibletext_router
22
- from routing.gibberishRouter import gibberish_router
23
- from routing.bancodeRouter import bancode_router
24
- # from routing.safety_router import img_router
25
- from config.logger import CustomLogger,request_id_var
26
  from waitress import serve
27
- from werkzeug.exceptions import HTTPException,UnsupportedMediaType,BadRequest
28
  from mapper.mapper import *
29
 
 
 
 
 
 
 
30
  SWAGGER_URL = '/rai/v1/raimoderationmodels/docs'
31
  API_URL = '/static/swagger.json'
32
 
@@ -35,43 +30,87 @@ swaggerui_blueprint = get_swaggerui_blueprint(
35
  API_URL
36
  )
37
 
38
- log=CustomLogger()
39
  app = Flask(__name__)
40
  app.register_blueprint(swaggerui_blueprint)
41
- app.register_blueprint(injection_router,url_prefix='/rai/v1/raimoderationmodels')
42
- app.register_blueprint(detoxify_router,url_prefix='/rai/v1/raimoderationmodels')
43
- app.register_blueprint(embed_router,url_prefix='/rai/v1/raimoderationmodels')
44
- app.register_blueprint(privacy_router,url_prefix='/rai/v1/raimoderationmodels')
45
- app.register_blueprint(topic_router,url_prefix='/rai/v1/raimoderationmodels')
46
- app.register_blueprint(sentiment_router,url_prefix='/rai/v1/raimoderationmodels')
47
- app.register_blueprint(invisibletext_router,url_prefix='/rai/v1/raimoderationmodels')
48
- app.register_blueprint(gibberish_router,url_prefix='/rai/v1/raimoderationmodels')
49
- app.register_blueprint(bancode_router,url_prefix='/rai/v1/raimoderationmodels')
50
- # app.register_blueprint(img_router,url_prefix='/rai/v1/raimoderationmodels')
51
-
52
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
  def handle_http_exception(exc):
54
- """Handles HTTP exceptions, returning a JSON response."""
55
  response = jsonify({"error": exc.description})
56
  response.status_code = exc.code
57
  return response
58
 
59
  @app.errorhandler(HTTPException)
60
  def handle_all_http_exceptions(exc):
61
- """Global exception handler for HTTP errors."""
62
  return handle_http_exception(exc)
63
 
64
  def handle_unsupported_mediatype(exc):
65
- """Handles unsupported media type exceptions."""
66
- return jsonify({"error": "Unsupported media type"}), 415 # 415 Unsupported Media Type
67
 
68
  @app.errorhandler(UnsupportedMediaType)
69
  def handle_all_unsupported_mediatype_exceptions(exc):
70
- """Global exception handler for unsupported media types."""
71
  return handle_unsupported_mediatype(exc)
72
-
73
 
74
  if __name__ == "__main__":
75
- serve(app, host='0.0.0.0', port=7860, threads=int(os.getenv('THREADS',1)),connection_limit=int(os.getenv('CONNECTION_LIMIT',500)), channel_timeout=int(os.getenv('CHANNEL_TIMEOUT',120)))
76
- #app.run()
 
 
 
 
 
 
 
 
 
 
77
 
 
9
  '''
10
 
11
  import os
12
+ from flask import Flask, request, jsonify
13
  from flask_swagger_ui import get_swaggerui_blueprint
14
+ from config.logger import CustomLogger, request_id_var
 
 
 
 
 
 
 
 
 
 
 
15
  from waitress import serve
16
+ from werkzeug.exceptions import HTTPException, UnsupportedMediaType
17
  from mapper.mapper import *
18
 
19
+ # ----------------------
20
+ # Create necessary log directories to avoid runtime warnings
21
+ os.makedirs("/responsible-ai/logs", exist_ok=True)
22
+ os.makedirs("/aicloud/logs", exist_ok=True)
23
+ # ----------------------
24
+
25
  SWAGGER_URL = '/rai/v1/raimoderationmodels/docs'
26
  API_URL = '/static/swagger.json'
27
 
 
30
  API_URL
31
  )
32
 
33
+ log = CustomLogger()
34
  app = Flask(__name__)
35
  app.register_blueprint(swaggerui_blueprint)
 
 
 
 
 
 
 
 
 
 
 
36
 
37
+ # ----------------------
38
+ # Function to load all models before starting server
39
+ def load_models():
40
+ from routing.injectionRouter import init_injection_model
41
+ from routing.detoxifyRouter import init_detoxify_model
42
+ from routing.embedingRouter import init_embed_model
43
+ from routing.privacyRouter import init_privacy_model
44
+ from routing.topicRouter import init_topic_model
45
+
46
+ init_injection_model()
47
+ init_detoxify_model()
48
+ init_embed_model()
49
+ init_privacy_model()
50
+ init_topic_model()
51
+ # ----------------------
52
+
53
+ # ----------------------
54
+ # Function to register all routers
55
+ def register_routers():
56
+ from routing.injectionRouter import injection_router
57
+ from routing.detoxifyRouter import detoxify_router
58
+ from routing.embedingRouter import embed_router
59
+ from routing.privacyRouter import privacy_router
60
+ from routing.topicRouter import topic_router
61
+ from routing.sentimentRouter import sentiment_router
62
+ from routing.invisibletextRouter import invisibletext_router
63
+ from routing.gibberishRouter import gibberish_router
64
+ from routing.bancodeRouter import bancode_router
65
+ # from routing.safety_router import img_router
66
+
67
+ routers = [
68
+ injection_router,
69
+ detoxify_router,
70
+ embed_router,
71
+ privacy_router,
72
+ topic_router,
73
+ sentiment_router,
74
+ invisibletext_router,
75
+ gibberish_router,
76
+ bancode_router
77
+ # img_router
78
+ ]
79
+
80
+ for r in routers:
81
+ app.register_blueprint(r, url_prefix='/rai/v1/raimoderationmodels')
82
+ # ----------------------
83
+
84
+ # ----------------------
85
+ # Error handling
86
  def handle_http_exception(exc):
 
87
  response = jsonify({"error": exc.description})
88
  response.status_code = exc.code
89
  return response
90
 
91
  @app.errorhandler(HTTPException)
92
  def handle_all_http_exceptions(exc):
 
93
  return handle_http_exception(exc)
94
 
95
  def handle_unsupported_mediatype(exc):
96
+ return jsonify({"error": "Unsupported media type"}), 415
 
97
 
98
  @app.errorhandler(UnsupportedMediaType)
99
  def handle_all_unsupported_mediatype_exceptions(exc):
 
100
  return handle_unsupported_mediatype(exc)
101
+ # ----------------------
102
 
103
  if __name__ == "__main__":
104
+ load_models() # Load models before registering routes
105
+ register_routers() # Register routers after models are loaded
106
+
107
+ serve(
108
+ app,
109
+ host='0.0.0.0',
110
+ port=7860,
111
+ threads=int(os.getenv('THREADS', 1)),
112
+ connection_limit=int(os.getenv('CONNECTION_LIMIT', 500)),
113
+ channel_timeout=int(os.getenv('CHANNEL_TIMEOUT', 120))
114
+ )
115
+
116