sunholo 0.104.2__py3-none-any.whl → 0.104.4__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -96,14 +96,21 @@ if __name__ == "__main__":
96
96
  self.app.route("/health", methods=['GET'])(self.health)
97
97
 
98
98
  # Streaming VAC
99
- self.app.route('/vac/streaming/<vector_name>', methods=['POST'])(self.handle_stream_vac)
99
+ self.app.route('/vac/streaming/<vector_name>',
100
+ methods=['POST'],
101
+ provide_automatic_options=False)(self.handle_stream_vac)
100
102
 
101
103
  # Static VAC
102
- self.app.route('/vac/<vector_name>', methods=['POST'])(self.handle_process_vac)
104
+ self.app.route('/vac/<vector_name>',
105
+ methods=['POST'],
106
+ provide_automatic_options=False)(self.handle_process_vac)
103
107
 
104
108
  # Authentication middleware
105
109
  self.app.before_request(self.check_authentication)
106
- self.app.after_request(self.register_after_request)
110
+
111
+ # Handle OPTIONS requests explicitly
112
+ self.app.route('/vac/streaming/<vector_name>', methods=['OPTIONS'])(self.handle_options)
113
+ self.app.route('/vac/<vector_name>', methods=['OPTIONS'])(self.handle_options)
107
114
 
108
115
  # OpenAI health endpoint
109
116
  self.app.route('/openai/health', methods=['GET', 'POST'])(self.openai_health_endpoint)
@@ -112,22 +119,30 @@ if __name__ == "__main__":
112
119
  self.app.route('/openai/v1/chat/completions', methods=['POST'])(self.handle_openai_compatible_endpoint)
113
120
  self.app.route('/openai/v1/chat/completions/<vector_name>', methods=['POST'])(self.handle_openai_compatible_endpoint)
114
121
 
115
- # Register OPTIONS handler for CORS
116
- self.app.route('/<path:path>', methods=['OPTIONS'])(self.handle_options)
117
-
118
122
  self.register_additional_routes()
119
123
 
120
- def handle_options(self):
124
+ self.app.after_request(self.register_after_request)
125
+
126
+ def handle_options(self, **kwargs):
121
127
  response = Response(status=200)
122
128
  response.headers.add('Access-Control-Allow-Origin', '*')
123
-
129
+
124
130
  # Reflect the request's `Access-Control-Request-Headers`
125
131
  request_headers = request.headers.get('Access-Control-Request-Headers', '')
126
132
  response.headers.add('Access-Control-Allow-Headers', request_headers)
127
133
 
128
134
  # Specify allowed methods
129
135
  response.headers.add('Access-Control-Allow-Methods', 'GET, POST, OPTIONS')
130
-
136
+ log.info(f'OPTION Request headers: {request_headers}')
137
+
138
+ return response
139
+
140
+ def register_after_request(self, response):
141
+ # Add CORS headers for all responses
142
+ response.headers.add('Access-Control-Allow-Origin', '*')
143
+ response.headers.add('Access-Control-Allow-Headers', 'Content-Type, Authorization, x-api-key')
144
+ response.headers.add('Access-Control-Allow-Methods', 'GET, POST, OPTIONS')
145
+
131
146
  return response
132
147
 
133
148
  def register_additional_routes(self):
@@ -169,21 +184,6 @@ if __name__ == "__main__":
169
184
  for route in self.additional_routes:
170
185
  self.app.route(route["rule"], methods=route["methods"])(route["handler"])
171
186
 
172
- def register_after_request(self, response):
173
- """
174
- Register after_request to add CORS headers.
175
- """
176
- log.debug(f'Request headers: {request.headers}')
177
- # the header forwarded
178
-
179
- response.headers.add('Access-Control-Allow-Origin', '*')
180
- response.headers.add('Access-Control-Allow-Headers', 'Content-Type, Authorization, x-api-key')
181
- response.headers.add('Access-Control-Allow-Methods', 'GET, POST, OPTIONS')
182
-
183
- log.debug(f'Response headers: {response.headers}')
184
-
185
- return response
186
-
187
187
  def home(self):
188
188
  return jsonify("OK")
189
189
 
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sunholo
3
- Version: 0.104.2
3
+ Version: 0.104.4
4
4
  Summary: Large Language Model DevOps - a package to help deploy LLMs to the Cloud.
5
5
  Home-page: https://github.com/sunholo-data/sunholo-py
6
- Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.104.2.tar.gz
6
+ Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.104.4.tar.gz
7
7
  Author: Holosun ApS
8
8
  Author-email: multivac@sunholo.com
9
9
  License: Apache License, Version 2.0
@@ -14,7 +14,7 @@ sunholo/agents/fastapi/qna_routes.py,sha256=lKHkXPmwltu9EH3RMwmD153-J6pE7kWQ4BhB
14
14
  sunholo/agents/flask/__init__.py,sha256=poJDKMr2qj8qMb99JqCvCPSiEt1tj2tLQ3hKW3f2aVw,107
15
15
  sunholo/agents/flask/base.py,sha256=HLz3Z5efWaewTwSFEM6JH48NA9otoJBoVFJlARGk9L8,788
16
16
  sunholo/agents/flask/qna_routes.py,sha256=uwUD1yrzOPH27m2AXpiQrPk_2VfJOQOM6dAynOWQtoQ,22532
17
- sunholo/agents/flask/vac_routes.py,sha256=JCZTqPKeER4E_I5P3vO4ek8r3yZPLI7-UMGNvvgTgpo,28400
17
+ sunholo/agents/flask/vac_routes.py,sha256=eOyuPxrxnnPNCHolSkckZKRKnj0HQn8uhqYP0ssmhaY,28552
18
18
  sunholo/archive/__init__.py,sha256=qNHWm5rGPVOlxZBZCpA1wTYPbalizRT7f8X4rs2t290,31
19
19
  sunholo/archive/archive.py,sha256=PxVfDtO2_2ZEEbnhXSCbXLdeoHoQVImo4y3Jr2XkCFY,1204
20
20
  sunholo/auth/__init__.py,sha256=TeP-OY0XGxYV_8AQcVGoh35bvyWhNUcMRfhuD5l44Sk,91
@@ -147,9 +147,9 @@ sunholo/vertex/init.py,sha256=1OQwcPBKZYBTDPdyU7IM4X4OmiXLdsNV30C-fee2scQ,2875
147
147
  sunholo/vertex/memory_tools.py,sha256=tBZxqVZ4InTmdBvLlOYwoSEWu4-kGquc-gxDwZCC4FA,7667
148
148
  sunholo/vertex/safety.py,sha256=S9PgQT1O_BQAkcqauWncRJaydiP8Q_Jzmu9gxYfy1VA,2482
149
149
  sunholo/vertex/type_dict_to_json.py,sha256=uTzL4o9tJRao4u-gJOFcACgWGkBOtqACmb6ihvCErL8,4694
150
- sunholo-0.104.2.dist-info/LICENSE.txt,sha256=SdE3QjnD3GEmqqg9EX3TM9f7WmtOzqS1KJve8rhbYmU,11345
151
- sunholo-0.104.2.dist-info/METADATA,sha256=QInkHYU7eFDKv1bZ5I_iBeyPcPva3aaMW6ic0Jwndm0,8312
152
- sunholo-0.104.2.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
153
- sunholo-0.104.2.dist-info/entry_points.txt,sha256=bZuN5AIHingMPt4Ro1b_T-FnQvZ3teBes-3OyO0asl4,49
154
- sunholo-0.104.2.dist-info/top_level.txt,sha256=wt5tadn5--5JrZsjJz2LceoUvcrIvxjHJe-RxuudxAk,8
155
- sunholo-0.104.2.dist-info/RECORD,,
150
+ sunholo-0.104.4.dist-info/LICENSE.txt,sha256=SdE3QjnD3GEmqqg9EX3TM9f7WmtOzqS1KJve8rhbYmU,11345
151
+ sunholo-0.104.4.dist-info/METADATA,sha256=sUzeLaEJA-QCaqgb6ZYVWVjJgjpHwY95dNm2jBmCjcc,8312
152
+ sunholo-0.104.4.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
153
+ sunholo-0.104.4.dist-info/entry_points.txt,sha256=bZuN5AIHingMPt4Ro1b_T-FnQvZ3teBes-3OyO0asl4,49
154
+ sunholo-0.104.4.dist-info/top_level.txt,sha256=wt5tadn5--5JrZsjJz2LceoUvcrIvxjHJe-RxuudxAk,8
155
+ sunholo-0.104.4.dist-info/RECORD,,