sunholo 0.64.19__tar.gz → 0.66.1__tar.gz

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.
Files changed (123) hide show
  1. {sunholo-0.64.19 → sunholo-0.66.1}/PKG-INFO +2 -2
  2. {sunholo-0.64.19 → sunholo-0.66.1}/setup.py +1 -1
  3. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/agents/swagger.py +45 -7
  4. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo.egg-info/PKG-INFO +2 -2
  5. {sunholo-0.64.19 → sunholo-0.66.1}/LICENSE.txt +0 -0
  6. {sunholo-0.64.19 → sunholo-0.66.1}/MANIFEST.in +0 -0
  7. {sunholo-0.64.19 → sunholo-0.66.1}/README.md +0 -0
  8. {sunholo-0.64.19 → sunholo-0.66.1}/setup.cfg +0 -0
  9. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/__init__.py +0 -0
  10. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/agents/__init__.py +0 -0
  11. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/agents/chat_history.py +0 -0
  12. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/agents/dispatch_to_qa.py +0 -0
  13. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/agents/fastapi/__init__.py +0 -0
  14. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/agents/fastapi/base.py +0 -0
  15. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/agents/fastapi/qna_routes.py +0 -0
  16. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/agents/flask/__init__.py +0 -0
  17. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/agents/flask/base.py +0 -0
  18. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/agents/flask/qna_routes.py +0 -0
  19. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/agents/langserve.py +0 -0
  20. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/agents/pubsub.py +0 -0
  21. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/agents/route.py +0 -0
  22. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/agents/special_commands.py +0 -0
  23. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/archive/__init__.py +0 -0
  24. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/archive/archive.py +0 -0
  25. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/auth/__init__.py +0 -0
  26. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/auth/run.py +0 -0
  27. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/bots/__init__.py +0 -0
  28. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/bots/discord.py +0 -0
  29. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/bots/github_webhook.py +0 -0
  30. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/bots/webapp.py +0 -0
  31. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/chunker/__init__.py +0 -0
  32. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/chunker/data_to_embed_pubsub.py +0 -0
  33. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/chunker/doc_handling.py +0 -0
  34. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/chunker/images.py +0 -0
  35. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/chunker/loaders.py +0 -0
  36. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/chunker/message_data.py +0 -0
  37. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/chunker/pdfs.py +0 -0
  38. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/chunker/publish.py +0 -0
  39. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/chunker/splitter.py +0 -0
  40. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/cli/__init__.py +0 -0
  41. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/cli/chat_vac.py +0 -0
  42. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/cli/cli.py +0 -0
  43. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/cli/cli_init.py +0 -0
  44. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/cli/configs.py +0 -0
  45. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/cli/deploy.py +0 -0
  46. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/cli/embedder.py +0 -0
  47. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/cli/merge_texts.py +0 -0
  48. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/cli/run_proxy.py +0 -0
  49. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/cli/sun_rich.py +0 -0
  50. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/cli/swagger.py +0 -0
  51. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/components/__init__.py +0 -0
  52. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/components/llm.py +0 -0
  53. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/components/retriever.py +0 -0
  54. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/components/vectorstore.py +0 -0
  55. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/database/__init__.py +0 -0
  56. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/database/alloydb.py +0 -0
  57. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/database/database.py +0 -0
  58. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/database/lancedb.py +0 -0
  59. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/database/sql/sb/create_function.sql +0 -0
  60. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/database/sql/sb/create_function_time.sql +0 -0
  61. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/database/sql/sb/create_table.sql +0 -0
  62. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/database/sql/sb/delete_source_row.sql +0 -0
  63. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/database/sql/sb/return_sources.sql +0 -0
  64. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/database/sql/sb/setup.sql +0 -0
  65. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/database/static_dbs.py +0 -0
  66. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/database/uuid.py +0 -0
  67. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/embedder/__init__.py +0 -0
  68. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/embedder/embed_chunk.py +0 -0
  69. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/gcs/__init__.py +0 -0
  70. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/gcs/add_file.py +0 -0
  71. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/gcs/download_url.py +0 -0
  72. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/gcs/metadata.py +0 -0
  73. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/langfuse/__init__.py +0 -0
  74. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/langfuse/callback.py +0 -0
  75. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/langfuse/prompts.py +0 -0
  76. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/llamaindex/__init__.py +0 -0
  77. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/llamaindex/generate.py +0 -0
  78. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/llamaindex/get_files.py +0 -0
  79. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/llamaindex/import_files.py +0 -0
  80. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/logging.py +0 -0
  81. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/lookup/__init__.py +0 -0
  82. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/lookup/model_lookup.yaml +0 -0
  83. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/patches/__init__.py +0 -0
  84. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/patches/langchain/__init__.py +0 -0
  85. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/patches/langchain/lancedb.py +0 -0
  86. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/patches/langchain/vertexai.py +0 -0
  87. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/pubsub/__init__.py +0 -0
  88. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/pubsub/process_pubsub.py +0 -0
  89. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/pubsub/pubsub_manager.py +0 -0
  90. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/qna/__init__.py +0 -0
  91. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/qna/parsers.py +0 -0
  92. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/qna/retry.py +0 -0
  93. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/streaming/__init__.py +0 -0
  94. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/streaming/content_buffer.py +0 -0
  95. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/streaming/langserve.py +0 -0
  96. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/streaming/stream_lookup.py +0 -0
  97. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/streaming/streaming.py +0 -0
  98. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/summarise/__init__.py +0 -0
  99. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/summarise/summarise.py +0 -0
  100. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/utils/__init__.py +0 -0
  101. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/utils/big_context.py +0 -0
  102. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/utils/config.py +0 -0
  103. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/utils/config_schema.py +0 -0
  104. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/utils/gcp.py +0 -0
  105. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/utils/gcp_project.py +0 -0
  106. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/utils/parsers.py +0 -0
  107. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/utils/timedelta.py +0 -0
  108. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/utils/user_ids.py +0 -0
  109. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/utils/version.py +0 -0
  110. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/vertex/__init__.py +0 -0
  111. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/vertex/init.py +0 -0
  112. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/vertex/memory_tools.py +0 -0
  113. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo/vertex/safety.py +0 -0
  114. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo.egg-info/SOURCES.txt +0 -0
  115. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo.egg-info/dependency_links.txt +0 -0
  116. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo.egg-info/entry_points.txt +0 -0
  117. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo.egg-info/requires.txt +0 -0
  118. {sunholo-0.64.19 → sunholo-0.66.1}/sunholo.egg-info/top_level.txt +0 -0
  119. {sunholo-0.64.19 → sunholo-0.66.1}/tests/test_chat_history.py +0 -0
  120. {sunholo-0.64.19 → sunholo-0.66.1}/tests/test_chunker.py +0 -0
  121. {sunholo-0.64.19 → sunholo-0.66.1}/tests/test_config.py +0 -0
  122. {sunholo-0.64.19 → sunholo-0.66.1}/tests/test_dispatch_to_qa.py +0 -0
  123. {sunholo-0.64.19 → sunholo-0.66.1}/tests/test_swagger.py +0 -0
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sunholo
3
- Version: 0.64.19
3
+ Version: 0.66.1
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.64.19.tar.gz
6
+ Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.66.1.tar.gz
7
7
  Author: Holosun ApS
8
8
  Author-email: multivac@sunholo.com
9
9
  License: Apache License, Version 2.0
@@ -1,7 +1,7 @@
1
1
  from setuptools import setup, find_packages
2
2
 
3
3
  # Define your base version
4
- version = '0.64.19'
4
+ version = '0.66.1'
5
5
 
6
6
  setup(
7
7
  name='sunholo',
@@ -158,9 +158,24 @@ def generate_swagger(vac_config, agent_config):
158
158
  log.warning(f"Failed to find URL stem for {vector_name}/{agent_type} - using {stem} instead")
159
159
 
160
160
  for method, endpoints in agent_config_paths.items():
161
- if method not in ['get', 'post']:
162
- log.warning(f"Skipping {endpoints}")
161
+ # controls if get requests are protected or not
162
+ do_auth = True
163
+
164
+ # default get: noauth, post: auth
165
+ if method not in ['get', 'post', 'get-auth', 'post-noauth']:
163
166
  continue
167
+
168
+ if method == 'get-auth':
169
+ do_auth = True
170
+ method = 'get'
171
+ elif method == 'post-noauth':
172
+ do_auth = False
173
+ method = 'post'
174
+ elif method == 'get':
175
+ do_auth = False
176
+ elif method == 'post':
177
+ do_auth = True # not needed but to be clear whats happening
178
+
164
179
  for endpoint_key, endpoint_template in endpoints.items():
165
180
  endpoint_template = endpoint_template.strip()
166
181
  endpoint_address = endpoint_template.replace("{stem}", stem).replace("{vector_name}", vector_name).strip()
@@ -173,14 +188,17 @@ def generate_swagger(vac_config, agent_config):
173
188
 
174
189
  operation_id = f"{method}_{agent_type}_{endpoint_key}_{vector_name}"
175
190
 
191
+ security = [{'ApiKeyAuth': []}] if do_auth else [{'None': []}]
192
+
176
193
  swagger_template['paths'][endpoint_path][method] = {
177
194
  'summary': f"{method.capitalize()} {vector_name}",
178
195
  'operationId': operation_id,
179
196
  'x-google-backend': {
180
197
  'address': endpoint_address,
181
- 'protocol': 'h2'
198
+ 'protocol': 'h2',
199
+ 'deadline': 180000 # Timeout of 3 minutes (1,800,00 milliseconds)
182
200
  },
183
- 'security': [{'ApiKeyAuth': []}] if method == 'post' else [{'None': []}],
201
+ 'security': security,
184
202
  'responses': copy.deepcopy(agent_config_paths.get('response', {}).get(endpoint_key, {
185
203
  '200': {
186
204
  'description': 'Default - A successful response',
@@ -204,9 +222,26 @@ def generate_swagger(vac_config, agent_config):
204
222
  stem = f"${{{agent_type.upper()}_BACKEND_URL}}"
205
223
  log.warning(f"Failed to find URL stem for {vector_name}/{agent_type} - using {stem} instead")
206
224
 
225
+
207
226
  for method, endpoints in default_agent_config.items():
208
- if method not in ['get', 'post']:
227
+ # controls if get requests are protected or not
228
+ do_auth = True
229
+
230
+ # default get: noauth, post: auth
231
+ if method not in ['get', 'post', 'get-auth', 'post-noauth']:
209
232
  continue
233
+
234
+ if method == 'get-auth':
235
+ do_auth = True
236
+ method = 'get'
237
+ elif method == 'post-noauth':
238
+ do_auth = False
239
+ method = 'post'
240
+ elif method == 'get':
241
+ do_auth = False
242
+ elif method == 'post':
243
+ do_auth = True # not needed but to be clear whats happening
244
+
210
245
  for endpoint_key, endpoint_template in endpoints.items():
211
246
  endpoint_template = endpoint_template.strip()
212
247
  endpoint_address = endpoint_template.replace("{stem}", stem).replace("{vector_name}", vector_name).strip()
@@ -219,14 +254,17 @@ def generate_swagger(vac_config, agent_config):
219
254
 
220
255
  operation_id = f"{method}_{agent_type}_{endpoint_key}_{vector_name}"
221
256
 
257
+ security = [{'ApiKeyAuth': []}] if do_auth else [{'None': []}]
258
+
222
259
  swagger_template['paths'][endpoint_path][method] = {
223
260
  'summary': f"{method.capitalize()} {agent_type}",
224
261
  'operationId': operation_id,
225
262
  'x-google-backend': {
226
263
  'address': endpoint_address,
227
- 'protocol': 'h2'
264
+ 'protocol': 'h2',
265
+ 'deadline': 180000 # Timeout of 3 minutes (1,800,00 milliseconds)
228
266
  },
229
- 'security': [{'ApiKeyAuth': []}] if method == 'post' else [{'None': []}],
267
+ 'security': security,
230
268
  'responses': copy.deepcopy(default_agent_config.get('response', {}).get(endpoint_key, {
231
269
  '200': {
232
270
  'description': 'Default - A successful response',
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sunholo
3
- Version: 0.64.19
3
+ Version: 0.66.1
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.64.19.tar.gz
6
+ Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.66.1.tar.gz
7
7
  Author: Holosun ApS
8
8
  Author-email: multivac@sunholo.com
9
9
  License: Apache License, Version 2.0
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes