sunholo 0.64.8__tar.gz → 0.64.10__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.8 → sunholo-0.64.10}/PKG-INFO +2 -2
  2. {sunholo-0.64.8 → sunholo-0.64.10}/setup.py +1 -1
  3. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/agents/route.py +4 -2
  4. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/agents/swagger.py +16 -6
  5. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/logging.py +4 -2
  6. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo.egg-info/PKG-INFO +2 -2
  7. {sunholo-0.64.8 → sunholo-0.64.10}/LICENSE.txt +0 -0
  8. {sunholo-0.64.8 → sunholo-0.64.10}/MANIFEST.in +0 -0
  9. {sunholo-0.64.8 → sunholo-0.64.10}/README.md +0 -0
  10. {sunholo-0.64.8 → sunholo-0.64.10}/setup.cfg +0 -0
  11. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/__init__.py +0 -0
  12. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/agents/__init__.py +0 -0
  13. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/agents/chat_history.py +0 -0
  14. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/agents/dispatch_to_qa.py +0 -0
  15. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/agents/fastapi/__init__.py +0 -0
  16. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/agents/fastapi/base.py +0 -0
  17. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/agents/fastapi/qna_routes.py +0 -0
  18. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/agents/flask/__init__.py +0 -0
  19. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/agents/flask/base.py +0 -0
  20. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/agents/flask/qna_routes.py +0 -0
  21. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/agents/langserve.py +0 -0
  22. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/agents/pubsub.py +0 -0
  23. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/agents/special_commands.py +0 -0
  24. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/archive/__init__.py +0 -0
  25. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/archive/archive.py +0 -0
  26. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/auth/__init__.py +0 -0
  27. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/auth/run.py +0 -0
  28. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/bots/__init__.py +0 -0
  29. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/bots/discord.py +0 -0
  30. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/bots/github_webhook.py +0 -0
  31. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/bots/webapp.py +0 -0
  32. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/chunker/__init__.py +0 -0
  33. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/chunker/data_to_embed_pubsub.py +0 -0
  34. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/chunker/doc_handling.py +0 -0
  35. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/chunker/images.py +0 -0
  36. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/chunker/loaders.py +0 -0
  37. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/chunker/message_data.py +0 -0
  38. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/chunker/pdfs.py +0 -0
  39. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/chunker/publish.py +0 -0
  40. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/chunker/splitter.py +0 -0
  41. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/cli/__init__.py +0 -0
  42. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/cli/chat_vac.py +0 -0
  43. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/cli/cli.py +0 -0
  44. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/cli/cli_init.py +0 -0
  45. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/cli/configs.py +0 -0
  46. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/cli/deploy.py +0 -0
  47. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/cli/embedder.py +0 -0
  48. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/cli/merge_texts.py +0 -0
  49. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/cli/run_proxy.py +0 -0
  50. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/cli/sun_rich.py +0 -0
  51. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/cli/swagger.py +0 -0
  52. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/components/__init__.py +0 -0
  53. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/components/llm.py +0 -0
  54. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/components/retriever.py +0 -0
  55. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/components/vectorstore.py +0 -0
  56. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/database/__init__.py +0 -0
  57. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/database/alloydb.py +0 -0
  58. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/database/database.py +0 -0
  59. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/database/lancedb.py +0 -0
  60. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/database/sql/sb/create_function.sql +0 -0
  61. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/database/sql/sb/create_function_time.sql +0 -0
  62. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/database/sql/sb/create_table.sql +0 -0
  63. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/database/sql/sb/delete_source_row.sql +0 -0
  64. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/database/sql/sb/return_sources.sql +0 -0
  65. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/database/sql/sb/setup.sql +0 -0
  66. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/database/static_dbs.py +0 -0
  67. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/database/uuid.py +0 -0
  68. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/embedder/__init__.py +0 -0
  69. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/embedder/embed_chunk.py +0 -0
  70. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/gcs/__init__.py +0 -0
  71. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/gcs/add_file.py +0 -0
  72. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/gcs/download_url.py +0 -0
  73. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/gcs/metadata.py +0 -0
  74. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/langfuse/__init__.py +0 -0
  75. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/langfuse/callback.py +0 -0
  76. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/langfuse/prompts.py +0 -0
  77. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/llamaindex/__init__.py +0 -0
  78. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/llamaindex/generate.py +0 -0
  79. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/llamaindex/get_files.py +0 -0
  80. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/llamaindex/import_files.py +0 -0
  81. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/lookup/__init__.py +0 -0
  82. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/lookup/model_lookup.yaml +0 -0
  83. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/patches/__init__.py +0 -0
  84. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/patches/langchain/__init__.py +0 -0
  85. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/patches/langchain/lancedb.py +0 -0
  86. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/patches/langchain/vertexai.py +0 -0
  87. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/pubsub/__init__.py +0 -0
  88. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/pubsub/process_pubsub.py +0 -0
  89. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/pubsub/pubsub_manager.py +0 -0
  90. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/qna/__init__.py +0 -0
  91. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/qna/parsers.py +0 -0
  92. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/qna/retry.py +0 -0
  93. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/streaming/__init__.py +0 -0
  94. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/streaming/content_buffer.py +0 -0
  95. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/streaming/langserve.py +0 -0
  96. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/streaming/stream_lookup.py +0 -0
  97. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/streaming/streaming.py +0 -0
  98. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/summarise/__init__.py +0 -0
  99. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/summarise/summarise.py +0 -0
  100. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/utils/__init__.py +0 -0
  101. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/utils/big_context.py +0 -0
  102. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/utils/config.py +0 -0
  103. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/utils/config_schema.py +0 -0
  104. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/utils/gcp.py +0 -0
  105. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/utils/gcp_project.py +0 -0
  106. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/utils/parsers.py +0 -0
  107. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/utils/timedelta.py +0 -0
  108. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/utils/user_ids.py +0 -0
  109. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/utils/version.py +0 -0
  110. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/vertex/__init__.py +0 -0
  111. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/vertex/init.py +0 -0
  112. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/vertex/memory_tools.py +0 -0
  113. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo/vertex/safety.py +0 -0
  114. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo.egg-info/SOURCES.txt +0 -0
  115. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo.egg-info/dependency_links.txt +0 -0
  116. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo.egg-info/entry_points.txt +0 -0
  117. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo.egg-info/requires.txt +0 -0
  118. {sunholo-0.64.8 → sunholo-0.64.10}/sunholo.egg-info/top_level.txt +0 -0
  119. {sunholo-0.64.8 → sunholo-0.64.10}/tests/test_chat_history.py +0 -0
  120. {sunholo-0.64.8 → sunholo-0.64.10}/tests/test_chunker.py +0 -0
  121. {sunholo-0.64.8 → sunholo-0.64.10}/tests/test_config.py +0 -0
  122. {sunholo-0.64.8 → sunholo-0.64.10}/tests/test_dispatch_to_qa.py +0 -0
  123. {sunholo-0.64.8 → sunholo-0.64.10}/tests/test_swagger.py +0 -0
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sunholo
3
- Version: 0.64.8
3
+ Version: 0.64.10
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.8.tar.gz
6
+ Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.64.10.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.8'
4
+ version = '0.64.10'
5
5
 
6
6
  setup(
7
7
  name='sunholo',
@@ -14,8 +14,10 @@
14
14
  from ..logging import log
15
15
  from ..utils import load_config_key, load_config
16
16
 
17
- def route_vac(vector_name):
18
-
17
+ def route_vac(vector_name: str) -> str :
18
+ """
19
+ Considers what VAC this vector_name belongs to
20
+ """
19
21
  agent_url = load_config_key('agent_url', vector_name=vector_name, kind="vacConfig")
20
22
  if agent_url:
21
23
  log.info('agent_url found in llm_config.yaml')
@@ -138,7 +138,7 @@ def generate_swagger(vac_config, agent_config):
138
138
  agent_config_paths = agent_config['agents'].get(agent_type, {})
139
139
  log.info(f'Configuring swagger for agent_type: {agent_type} for vector_name: {vector_name}')
140
140
  try:
141
- stem = route_vac(vector_name)
141
+ stem = route_vac(vector_name).strip()
142
142
  except ValueError:
143
143
  stem = f"${{{agent_type.upper()}_BACKEND_URL}}"
144
144
  log.warning(f"Failed to find URL stem for {vector_name}/{agent_type} - using {stem} instead")
@@ -148,14 +148,19 @@ def generate_swagger(vac_config, agent_config):
148
148
  log.warning(f"Skipping {endpoints}")
149
149
  continue
150
150
  for endpoint_key, endpoint_template in endpoints.items():
151
- endpoint_path = endpoint_template.replace("{stem}", f"/{agent_type}").replace("{vector_name}", vector_name)
151
+ endpoint_template = endpoint_template.strip()
152
+ endpoint_address = endpoint_template.replace("{stem}", stem).replace("{vector_name}", vector_name).strip()
153
+ endpoint_path = endpoint_template.replace("{stem}", f"/{agent_type}").replace("{vector_name}", vector_name).strip()
154
+ log.debug(f"Endpoint_template: {endpoint_template}")
155
+ log.debug(f"endpoint address: {endpoint_address}")
156
+ log.debug(f"endpoint_path: {endpoint_path}")
152
157
  if endpoint_path not in swagger_template['paths']:
153
158
  swagger_template['paths'][endpoint_path] = {}
154
159
  swagger_template['paths'][endpoint_path][method] = {
155
160
  'summary': f"{method.capitalize()} {vector_name}",
156
161
  'operationId': f"{method}_{agent_type}_{endpoint_key}",
157
162
  'x-google-backend': {
158
- 'address': endpoint_template.replace("{stem}", stem).replace("{vector_name}", vector_name),
163
+ 'address': endpoint_address,
159
164
  'protocol': 'h2'
160
165
  },
161
166
  'responses': copy.deepcopy(agent_config_paths.get('response', {}).get(endpoint_key, {
@@ -176,7 +181,7 @@ def generate_swagger(vac_config, agent_config):
176
181
  continue
177
182
  log.info(f'Applying default configuration for agent_type: {agent_type} for vector_name: {vector_name}')
178
183
  try:
179
- stem = route_vac(vector_name)
184
+ stem = route_vac(vector_name).strip()
180
185
  except ValueError:
181
186
  stem = f"${{{agent_type.upper()}_BACKEND_URL}}"
182
187
  log.warning(f"Failed to find URL stem for {vector_name}/{agent_type} - using {stem} instead")
@@ -185,14 +190,19 @@ def generate_swagger(vac_config, agent_config):
185
190
  if method not in ['get', 'post']:
186
191
  continue
187
192
  for endpoint_key, endpoint_template in endpoints.items():
188
- endpoint_path = endpoint_template.replace("{stem}", f"/{agent_type}").replace("{vector_name}", vector_name)
193
+ endpoint_template = endpoint_template.strip()
194
+ endpoint_address = endpoint_template.replace("{stem}", stem).replace("{vector_name}", vector_name).strip()
195
+ endpoint_path = endpoint_template.replace("{stem}", f"/{agent_type}").replace("{vector_name}", vector_name).strip()
196
+ log.debug(f"default Endpoint_template: {endpoint_template}")
197
+ log.debug(f"default endpoint address: {endpoint_address}")
198
+ log.debug(f"default endpoint_path: {endpoint_path}")
189
199
  if endpoint_path not in swagger_template['paths']:
190
200
  swagger_template['paths'][endpoint_path] = {}
191
201
  swagger_template['paths'][endpoint_path][method] = {
192
202
  'summary': f"{method.capitalize()} {agent_type}",
193
203
  'operationId': f"{method}_{agent_type}_{endpoint_key}",
194
204
  'x-google-backend': {
195
- 'address': endpoint_template.replace("{stem}", stem).replace("{vector_name}", vector_name),
205
+ 'address': endpoint_path,
196
206
  'protocol': 'h2'
197
207
  },
198
208
  'responses': copy.deepcopy(default_agent_config.get('response', {}).get(endpoint_key, {
@@ -18,6 +18,7 @@ try:
18
18
  except ImportError:
19
19
  Client = None
20
20
 
21
+ from .utils.version import sunholo_version
21
22
  import logging
22
23
  import inspect
23
24
  import os
@@ -44,6 +45,7 @@ class GoogleCloudLogging:
44
45
  self.logger_name = logger_name
45
46
  self.log_level = log_level
46
47
  self.initialized = True # Mark as initialized
48
+ self.version = sunholo_version()
47
49
  print(f"Initialized logging object for logger_name: {logger_name}")
48
50
 
49
51
 
@@ -106,9 +108,9 @@ class GoogleCloudLogging:
106
108
  if not is_running_on_gcp() and not is_gcp_logged_in():
107
109
  log.basicConfig(level=log.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
108
110
  if log_text:
109
- log.info(f"[{severity}][{logger_name or self.logger_name}] - {log_text}")
111
+ log.info(f"[{severity}][{logger_name or self.logger_name}][{self.version}] - {log_text}")
110
112
  elif log_struct:
111
- log.info(f"[{severity}][{logger_name or self.logger_name}] - {str(log_struct)}")
113
+ log.info(f"[{severity}][{logger_name or self.logger_name}][{self.version}] - {str(log_struct)}")
112
114
 
113
115
  logger = self.client.logger(logger_name or self.logger_name)
114
116
 
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sunholo
3
- Version: 0.64.8
3
+ Version: 0.64.10
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.8.tar.gz
6
+ Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.64.10.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