Kiran5 commited on
Commit
07947d1
·
verified ·
1 Parent(s): 88476ec

Update src/main_MM.py

Browse files
Files changed (1) hide show
  1. src/main_MM.py +44 -65
src/main_MM.py CHANGED
@@ -11,17 +11,22 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
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,87 +35,61 @@ swaggerui_blueprint = get_swaggerui_blueprint(
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
 
 
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
  API_URL
36
  )
37
 
38
+ # ------------------- LOG DIRECTORY FIX -------------------
39
+ # Use /tmp which is writable in Hugging Face Spaces
40
+ LOG_DIR_RESPONSIBLE_AI = os.path.join("/tmp", "responsible-ai", "logs")
41
+ LOG_DIR_AICLOUD = os.path.join("/tmp", "aicloud", "logs")
42
+ os.makedirs(LOG_DIR_RESPONSIBLE_AI, exist_ok=True)
43
+ os.makedirs(LOG_DIR_AICLOUD, exist_ok=True)
44
+ # Optional: pass these directories to your logger if needed
45
  log = CustomLogger()
46
+ # ----------------------------------------------------------
47
+
48
  app = Flask(__name__)
49
  app.register_blueprint(swaggerui_blueprint)
50
+ app.register_blueprint(injection_router, url_prefix='/rai/v1/raimoderationmodels')
51
+ app.register_blueprint(detoxify_router, url_prefix='/rai/v1/raimoderationmodels')
52
+ app.register_blueprint(embed_router, url_prefix='/rai/v1/raimoderationmodels')
53
+ app.register_blueprint(privacy_router, url_prefix='/rai/v1/raimoderationmodels')
54
+ app.register_blueprint(topic_router, url_prefix='/rai/v1/raimoderationmodels')
55
+ app.register_blueprint(sentiment_router, url_prefix='/rai/v1/raimoderationmodels')
56
+ app.register_blueprint(invisibletext_router, url_prefix='/rai/v1/raimoderationmodels')
57
+ app.register_blueprint(gibberish_router, url_prefix='/rai/v1/raimoderationmodels')
58
+ app.register_blueprint(bancode_router, url_prefix='/rai/v1/raimoderationmodels')
59
+ # app.register_blueprint(img_router, url_prefix='/rai/v1/raimoderationmodels')
60
+
61
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
62
  def handle_http_exception(exc):
63
+ """Handles HTTP exceptions, returning a JSON response."""
64
  response = jsonify({"error": exc.description})
65
  response.status_code = exc.code
66
  return response
67
 
68
  @app.errorhandler(HTTPException)
69
  def handle_all_http_exceptions(exc):
70
+ """Global exception handler for HTTP errors."""
71
  return handle_http_exception(exc)
72
 
73
  def handle_unsupported_mediatype(exc):
74
+ """Handles unsupported media type exceptions."""
75
+ return jsonify({"error": "Unsupported media type"}), 415 # 415 Unsupported Media Type
76
 
77
  @app.errorhandler(UnsupportedMediaType)
78
  def handle_all_unsupported_mediatype_exceptions(exc):
79
+ """Global exception handler for unsupported media types."""
80
  return handle_unsupported_mediatype(exc)
 
81
 
 
 
 
82
 
83
+ if __name__ == "__main__":
84
  serve(
85
+ app,
86
+ host='0.0.0.0',
87
+ port=7860,
88
  threads=int(os.getenv('THREADS', 1)),
89
+ connection_limit=int(os.getenv('CONNECTION_LIMIT', 500)),
90
  channel_timeout=int(os.getenv('CHANNEL_TIMEOUT', 120))
91
  )
92
+ # app.run()
93
+
94
 
95