sunholo 0.62.7__tar.gz → 0.62.9__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 (116) hide show
  1. {sunholo-0.62.7 → sunholo-0.62.9}/PKG-INFO +2 -2
  2. {sunholo-0.62.7 → sunholo-0.62.9}/setup.py +1 -1
  3. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/chunker/publish.py +3 -3
  4. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/components/retriever.py +1 -1
  5. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/logging.py +8 -3
  6. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/pubsub/pubsub_manager.py +1 -1
  7. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/utils/config.py +2 -2
  8. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/utils/gcp_project.py +7 -5
  9. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo.egg-info/PKG-INFO +2 -2
  10. {sunholo-0.62.7 → sunholo-0.62.9}/LICENSE.txt +0 -0
  11. {sunholo-0.62.7 → sunholo-0.62.9}/MANIFEST.in +0 -0
  12. {sunholo-0.62.7 → sunholo-0.62.9}/README.md +0 -0
  13. {sunholo-0.62.7 → sunholo-0.62.9}/setup.cfg +0 -0
  14. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/__init__.py +0 -0
  15. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/agents/__init__.py +0 -0
  16. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/agents/chat_history.py +0 -0
  17. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/agents/dispatch_to_qa.py +0 -0
  18. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/agents/fastapi/__init__.py +0 -0
  19. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/agents/fastapi/base.py +0 -0
  20. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/agents/fastapi/qna_routes.py +0 -0
  21. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/agents/flask/__init__.py +0 -0
  22. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/agents/flask/base.py +0 -0
  23. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/agents/flask/qna_routes.py +0 -0
  24. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/agents/langserve.py +0 -0
  25. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/agents/pubsub.py +0 -0
  26. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/agents/route.py +0 -0
  27. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/agents/special_commands.py +0 -0
  28. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/archive/__init__.py +0 -0
  29. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/archive/archive.py +0 -0
  30. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/auth/__init__.py +0 -0
  31. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/auth/run.py +0 -0
  32. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/bots/__init__.py +0 -0
  33. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/bots/discord.py +0 -0
  34. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/bots/github_webhook.py +0 -0
  35. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/bots/webapp.py +0 -0
  36. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/chunker/__init__.py +0 -0
  37. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/chunker/data_to_embed_pubsub.py +0 -0
  38. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/chunker/doc_handling.py +0 -0
  39. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/chunker/images.py +0 -0
  40. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/chunker/loaders.py +0 -0
  41. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/chunker/message_data.py +0 -0
  42. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/chunker/pdfs.py +0 -0
  43. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/chunker/splitter.py +0 -0
  44. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/cli/__init__.py +0 -0
  45. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/cli/chat_vac.py +0 -0
  46. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/cli/cli.py +0 -0
  47. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/cli/cli_init.py +0 -0
  48. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/cli/configs.py +0 -0
  49. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/cli/deploy.py +0 -0
  50. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/cli/embedder.py +0 -0
  51. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/cli/merge_texts.py +0 -0
  52. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/cli/run_proxy.py +0 -0
  53. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/cli/sun_rich.py +0 -0
  54. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/components/__init__.py +0 -0
  55. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/components/llm.py +0 -0
  56. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/components/vectorstore.py +0 -0
  57. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/database/__init__.py +0 -0
  58. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/database/alloydb.py +0 -0
  59. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/database/database.py +0 -0
  60. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/database/lancedb.py +0 -0
  61. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/database/sql/sb/create_function.sql +0 -0
  62. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/database/sql/sb/create_function_time.sql +0 -0
  63. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/database/sql/sb/create_table.sql +0 -0
  64. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/database/sql/sb/delete_source_row.sql +0 -0
  65. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/database/sql/sb/return_sources.sql +0 -0
  66. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/database/sql/sb/setup.sql +0 -0
  67. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/database/static_dbs.py +0 -0
  68. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/database/uuid.py +0 -0
  69. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/embedder/__init__.py +0 -0
  70. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/embedder/embed_chunk.py +0 -0
  71. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/gcs/__init__.py +0 -0
  72. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/gcs/add_file.py +0 -0
  73. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/gcs/download_url.py +0 -0
  74. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/gcs/metadata.py +0 -0
  75. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/langfuse/__init__.py +0 -0
  76. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/langfuse/callback.py +0 -0
  77. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/langfuse/prompts.py +0 -0
  78. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/llamaindex/__init__.py +0 -0
  79. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/llamaindex/generate.py +0 -0
  80. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/llamaindex/get_files.py +0 -0
  81. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/llamaindex/import_files.py +0 -0
  82. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/lookup/__init__.py +0 -0
  83. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/lookup/model_lookup.yaml +0 -0
  84. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/patches/__init__.py +0 -0
  85. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/patches/langchain/__init__.py +0 -0
  86. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/patches/langchain/lancedb.py +0 -0
  87. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/patches/langchain/vertexai.py +0 -0
  88. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/pubsub/__init__.py +0 -0
  89. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/pubsub/process_pubsub.py +0 -0
  90. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/qna/__init__.py +0 -0
  91. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/qna/parsers.py +0 -0
  92. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/qna/retry.py +0 -0
  93. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/streaming/__init__.py +0 -0
  94. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/streaming/content_buffer.py +0 -0
  95. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/streaming/langserve.py +0 -0
  96. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/streaming/stream_lookup.py +0 -0
  97. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/streaming/streaming.py +0 -0
  98. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/summarise/__init__.py +0 -0
  99. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/summarise/summarise.py +0 -0
  100. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/utils/__init__.py +0 -0
  101. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/utils/big_context.py +0 -0
  102. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/utils/config_schema.py +0 -0
  103. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/utils/gcp.py +0 -0
  104. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/utils/parsers.py +0 -0
  105. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/utils/timedelta.py +0 -0
  106. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/utils/user_ids.py +0 -0
  107. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/vertex/__init__.py +0 -0
  108. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/vertex/init.py +0 -0
  109. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo/vertex/memory_tools.py +0 -0
  110. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo.egg-info/SOURCES.txt +0 -0
  111. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo.egg-info/dependency_links.txt +0 -0
  112. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo.egg-info/entry_points.txt +0 -0
  113. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo.egg-info/requires.txt +0 -0
  114. {sunholo-0.62.7 → sunholo-0.62.9}/sunholo.egg-info/top_level.txt +0 -0
  115. {sunholo-0.62.7 → sunholo-0.62.9}/tests/test_chat_history.py +0 -0
  116. {sunholo-0.62.7 → sunholo-0.62.9}/tests/test_config.py +0 -0
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sunholo
3
- Version: 0.62.7
3
+ Version: 0.62.9
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.62.7.tar.gz
6
+ Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.62.9.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.62.7'
4
+ version = '0.62.9'
5
5
 
6
6
  setup(
7
7
  name='sunholo',
@@ -19,7 +19,7 @@ def publish_if_urls(the_content, vector_name):
19
19
 
20
20
 
21
21
  def publish_chunks(chunks: list[Document], vector_name: str):
22
- project = get_gcp_project()
22
+ project = get_gcp_project(include_config=True)
23
23
  if not project:
24
24
  log.warning("No GCP project found for PubSub, no message sent")
25
25
 
@@ -42,7 +42,7 @@ def publish_chunks(chunks: list[Document], vector_name: str):
42
42
 
43
43
 
44
44
  def publish_text(text:str, vector_name: str):
45
- project = get_gcp_project()
45
+ project = get_gcp_project(include_config=True)
46
46
  if not project:
47
47
  log.warning("No GCP project found for PubSub, no message sent")
48
48
 
@@ -56,7 +56,7 @@ def publish_text(text:str, vector_name: str):
56
56
  pubsub_manager.publish_message(text)
57
57
 
58
58
  def process_docs_chunks_vector_name(chunks, vector_name, metadata):
59
- project = get_gcp_project()
59
+ project = get_gcp_project(include_config=True)
60
60
  if not project:
61
61
  log.warning("No GCP project found for PubSub, no message sent")
62
62
 
@@ -57,7 +57,7 @@ def pick_retriever(vector_name, embeddings=None):
57
57
  if value.get('provider') == "GoogleCloudEnterpriseSearchRetriever":
58
58
  log.info(f"Found GoogleCloudEnterpriseSearchRetriever {value['provider']}")
59
59
  gcp_retriever = GoogleCloudEnterpriseSearchRetriever(
60
- project_id=get_gcp_project(),
60
+ project_id=get_gcp_project(include_config=True),
61
61
  search_engine_id=value["db_id"],
62
62
  location_id=value.get("location", "global"),
63
63
  engine_data_type=1 if value.get("type","unstructured") == "structured" else 0,
@@ -18,17 +18,16 @@ try:
18
18
  except ImportError:
19
19
  Client = None
20
20
 
21
- from .utils.gcp_project import get_gcp_project
22
- from .utils.gcp import is_running_on_gcp, is_gcp_logged_in
23
21
  import logging
24
22
  import inspect
25
23
  import os
26
24
 
27
-
28
25
  class GoogleCloudLogging:
29
26
 
30
27
  _instances = {} # Dictionary to hold instances keyed by a tuple of (project_id, logger_name)
31
28
 
29
+
30
+
32
31
  def __new__(cls, project_id=None, log_level=logging.INFO, logger_name=None):
33
32
  key = (project_id, logger_name)
34
33
  if key not in cls._instances:
@@ -37,6 +36,9 @@ class GoogleCloudLogging:
37
36
 
38
37
  def __init__(self, project_id=None, log_level=logging.INFO, logger_name=None):
39
38
  if not hasattr(self, 'initialized'): # Avoid re-initialization
39
+ from .utils.gcp_project import get_gcp_project # circular import if outside
40
+ from .utils.gcp import is_gcp_logged_in
41
+
40
42
  self.project_id = project_id or get_gcp_project()
41
43
  self.client = Client(project=self.project_id) if is_gcp_logged_in() else None
42
44
  self.logger_name = logger_name
@@ -53,6 +55,7 @@ class GoogleCloudLogging:
53
55
 
54
56
  try:
55
57
  caller_info = self._get_caller_info()
58
+ from .utils.gcp import is_running_on_gcp, is_gcp_logged_in
56
59
  if not is_running_on_gcp() and not is_gcp_logged_in():
57
60
  import logging
58
61
  logging.basicConfig(level=self.log_level, format='%(asctime)s - %(levelname)s - %(message)s')
@@ -99,6 +102,7 @@ class GoogleCloudLogging:
99
102
  if not logger_name and not self.logger_name:
100
103
  raise ValueError("Must provide a logger name e.g. 'run.googleapis.com%2Fstderr'")
101
104
 
105
+ from .utils.gcp import is_running_on_gcp, is_gcp_logged_in
102
106
  if not is_running_on_gcp() and not is_gcp_logged_in():
103
107
  log.basicConfig(level=log.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
104
108
  if log_text:
@@ -223,6 +227,7 @@ def setup_logging(logger_name=None, log_level=logging.INFO, project_id=None):
223
227
 
224
228
  if Client and os.environ.get('GOOGLE_CLOUD_LOGGING') == "1":
225
229
  if project_id is None:
230
+ from .utils.gcp_project import get_gcp_project
226
231
  project_id = get_gcp_project()
227
232
  # Instantiate the GoogleCloudLogging class
228
233
  gc_logger = GoogleCloudLogging(project_id, log_level=log_level, logger_name=logger_name)
@@ -43,7 +43,7 @@ class PubSubManager:
43
43
  # Get the project ID from the default Google Cloud settings or the environment variable
44
44
  if self.project_id is None:
45
45
  _, project_id = default()
46
- self.project_id = project_id or get_gcp_project()
46
+ self.project_id = project_id or get_gcp_project(include_config=True)
47
47
 
48
48
  if self.project_id:
49
49
  log.info(f"Pubsub Project ID: {self.project_id}")
@@ -192,8 +192,8 @@ def load_config_key(key: str, vector_name: str, kind: str):
192
192
  print(f'API URL: {api_url}')
193
193
  ```
194
194
  """
195
- import logging # can't use sunholo.logging due to circular import
196
- log = logging.getLogger("sunholo")
195
+ # can't use sunholo.logging due to circular import
196
+ from ..logging import log
197
197
 
198
198
  if kind != 'agentConfig':
199
199
  assert isinstance(key, str), f"key must be a string got a {type(key)}"
@@ -12,17 +12,19 @@ def get_env_project_id():
12
12
  """
13
13
  return os.environ.get('GCP_PROJECT') or os.environ.get('GOOGLE_CLOUD_PROJECT')
14
14
 
15
- def get_gcp_project():
15
+
16
+ def get_gcp_project(include_config=False):
16
17
  """
17
18
  Retrieve the GCP project ID from environment variables or the GCP metadata server.
18
19
 
19
20
  Returns:
20
21
  str or None: The project ID if found, None otherwise.
21
22
  """
22
- gcp_config = load_config_key("gcp_config", "global", "vacConfig")
23
- if gcp_config:
24
- if gcp_config.get('project_id'):
25
- return gcp_config.get('project_id')
23
+ if include_config: # to avoid circular imports, must be specified
24
+ gcp_config = load_config_key("gcp_config", "global", "vacConfig")
25
+ if gcp_config:
26
+ if gcp_config.get('project_id'):
27
+ return gcp_config.get('project_id')
26
28
 
27
29
  project_id = get_env_project_id()
28
30
  if project_id:
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sunholo
3
- Version: 0.62.7
3
+ Version: 0.62.9
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.62.7.tar.gz
6
+ Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.62.9.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