sunholo 0.69.16__tar.gz → 0.69.17__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 (130) hide show
  1. {sunholo-0.69.16 → sunholo-0.69.17}/PKG-INFO +2 -2
  2. {sunholo-0.69.16 → sunholo-0.69.17}/setup.py +1 -1
  3. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/discovery_engine/discovery_engine_client.py +8 -7
  4. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/vertex/init.py +10 -4
  5. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/vertex/memory_tools.py +12 -10
  6. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo.egg-info/PKG-INFO +2 -2
  7. {sunholo-0.69.16 → sunholo-0.69.17}/LICENSE.txt +0 -0
  8. {sunholo-0.69.16 → sunholo-0.69.17}/MANIFEST.in +0 -0
  9. {sunholo-0.69.16 → sunholo-0.69.17}/README.md +0 -0
  10. {sunholo-0.69.16 → sunholo-0.69.17}/setup.cfg +0 -0
  11. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/__init__.py +0 -0
  12. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/agents/__init__.py +0 -0
  13. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/agents/chat_history.py +0 -0
  14. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/agents/dispatch_to_qa.py +0 -0
  15. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/agents/fastapi/__init__.py +0 -0
  16. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/agents/fastapi/base.py +0 -0
  17. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/agents/fastapi/qna_routes.py +0 -0
  18. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/agents/flask/__init__.py +0 -0
  19. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/agents/flask/base.py +0 -0
  20. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/agents/flask/qna_routes.py +0 -0
  21. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/agents/flask/vac_routes.py +0 -0
  22. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/agents/langserve.py +0 -0
  23. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/agents/pubsub.py +0 -0
  24. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/agents/route.py +0 -0
  25. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/agents/special_commands.py +0 -0
  26. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/agents/swagger.py +0 -0
  27. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/archive/__init__.py +0 -0
  28. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/archive/archive.py +0 -0
  29. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/auth/__init__.py +0 -0
  30. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/auth/run.py +0 -0
  31. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/bots/__init__.py +0 -0
  32. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/bots/discord.py +0 -0
  33. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/bots/github_webhook.py +0 -0
  34. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/bots/webapp.py +0 -0
  35. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/chunker/__init__.py +0 -0
  36. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/chunker/data_to_embed_pubsub.py +0 -0
  37. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/chunker/doc_handling.py +0 -0
  38. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/chunker/images.py +0 -0
  39. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/chunker/loaders.py +0 -0
  40. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/chunker/message_data.py +0 -0
  41. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/chunker/pdfs.py +0 -0
  42. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/chunker/publish.py +0 -0
  43. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/chunker/splitter.py +0 -0
  44. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/cli/__init__.py +0 -0
  45. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/cli/chat_vac.py +0 -0
  46. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/cli/cli.py +0 -0
  47. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/cli/cli_init.py +0 -0
  48. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/cli/configs.py +0 -0
  49. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/cli/deploy.py +0 -0
  50. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/cli/embedder.py +0 -0
  51. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/cli/merge_texts.py +0 -0
  52. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/cli/run_proxy.py +0 -0
  53. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/cli/sun_rich.py +0 -0
  54. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/cli/swagger.py +0 -0
  55. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/components/__init__.py +0 -0
  56. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/components/llm.py +0 -0
  57. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/components/retriever.py +0 -0
  58. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/components/vectorstore.py +0 -0
  59. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/database/__init__.py +0 -0
  60. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/database/alloydb.py +0 -0
  61. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/database/alloydb_client.py +0 -0
  62. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/database/database.py +0 -0
  63. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/database/lancedb.py +0 -0
  64. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/database/sql/sb/create_function.sql +0 -0
  65. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/database/sql/sb/create_function_time.sql +0 -0
  66. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/database/sql/sb/create_table.sql +0 -0
  67. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/database/sql/sb/delete_source_row.sql +0 -0
  68. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/database/sql/sb/return_sources.sql +0 -0
  69. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/database/sql/sb/setup.sql +0 -0
  70. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/database/static_dbs.py +0 -0
  71. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/database/uuid.py +0 -0
  72. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/discovery_engine/__init__.py +0 -0
  73. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/discovery_engine/chunker_handler.py +0 -0
  74. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/discovery_engine/create_new.py +0 -0
  75. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/embedder/__init__.py +0 -0
  76. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/embedder/embed_chunk.py +0 -0
  77. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/gcs/__init__.py +0 -0
  78. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/gcs/add_file.py +0 -0
  79. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/gcs/download_url.py +0 -0
  80. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/gcs/metadata.py +0 -0
  81. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/langfuse/__init__.py +0 -0
  82. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/langfuse/callback.py +0 -0
  83. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/langfuse/prompts.py +0 -0
  84. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/llamaindex/__init__.py +0 -0
  85. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/llamaindex/generate.py +0 -0
  86. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/llamaindex/get_files.py +0 -0
  87. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/llamaindex/import_files.py +0 -0
  88. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/logging.py +0 -0
  89. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/lookup/__init__.py +0 -0
  90. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/lookup/model_lookup.yaml +0 -0
  91. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/patches/__init__.py +0 -0
  92. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/patches/langchain/__init__.py +0 -0
  93. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/patches/langchain/lancedb.py +0 -0
  94. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/patches/langchain/vertexai.py +0 -0
  95. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/pubsub/__init__.py +0 -0
  96. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/pubsub/process_pubsub.py +0 -0
  97. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/pubsub/pubsub_manager.py +0 -0
  98. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/qna/__init__.py +0 -0
  99. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/qna/parsers.py +0 -0
  100. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/qna/retry.py +0 -0
  101. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/streaming/__init__.py +0 -0
  102. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/streaming/content_buffer.py +0 -0
  103. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/streaming/langserve.py +0 -0
  104. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/streaming/stream_lookup.py +0 -0
  105. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/streaming/streaming.py +0 -0
  106. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/summarise/__init__.py +0 -0
  107. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/summarise/summarise.py +0 -0
  108. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/utils/__init__.py +0 -0
  109. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/utils/api_key.py +0 -0
  110. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/utils/big_context.py +0 -0
  111. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/utils/config.py +0 -0
  112. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/utils/config_schema.py +0 -0
  113. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/utils/gcp.py +0 -0
  114. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/utils/gcp_project.py +0 -0
  115. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/utils/parsers.py +0 -0
  116. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/utils/timedelta.py +0 -0
  117. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/utils/user_ids.py +0 -0
  118. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/utils/version.py +0 -0
  119. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/vertex/__init__.py +0 -0
  120. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo/vertex/safety.py +0 -0
  121. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo.egg-info/SOURCES.txt +0 -0
  122. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo.egg-info/dependency_links.txt +0 -0
  123. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo.egg-info/entry_points.txt +0 -0
  124. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo.egg-info/requires.txt +0 -0
  125. {sunholo-0.69.16 → sunholo-0.69.17}/sunholo.egg-info/top_level.txt +0 -0
  126. {sunholo-0.69.16 → sunholo-0.69.17}/tests/test_chat_history.py +0 -0
  127. {sunholo-0.69.16 → sunholo-0.69.17}/tests/test_chunker.py +0 -0
  128. {sunholo-0.69.16 → sunholo-0.69.17}/tests/test_config.py +0 -0
  129. {sunholo-0.69.16 → sunholo-0.69.17}/tests/test_dispatch_to_qa.py +0 -0
  130. {sunholo-0.69.16 → sunholo-0.69.17}/tests/test_swagger.py +0 -0
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sunholo
3
- Version: 0.69.16
3
+ Version: 0.69.17
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.69.16.tar.gz
6
+ Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.69.17.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.69.16'
4
+ version = '0.69.17'
5
5
 
6
6
  setup(
7
7
  name='sunholo',
@@ -80,6 +80,13 @@ class DiscoveryEngineClient:
80
80
  predicate=if_exception_type(ResourceExhausted) # Retry if a ResourceExhausted error occurs
81
81
  )
82
82
 
83
+ def data_store_path(self, collection: str = "default_collection"):
84
+ return self.store_client.collection_path(
85
+ project=self.project_id,
86
+ location=self.location,
87
+ collection=collection,
88
+ )
89
+
83
90
  def create_data_store(
84
91
  self, chunk_size: int = 500,
85
92
  collection: str = "default_collection"
@@ -121,15 +128,9 @@ class DiscoveryEngineClient:
121
128
  document_processing_config=doc_config
122
129
  )
123
130
 
124
- parent = self.store_client.collection_path(
125
- project=self.project_id,
126
- location=self.location,
127
- collection=collection,
128
- )
129
-
130
131
  # https://cloud.google.com/python/docs/reference/discoveryengine/0.11.4/google.cloud.discoveryengine_v1alpha.types.CreateDataStoreRequest
131
132
  request = discoveryengine.CreateDataStoreRequest(
132
- parent=parent,
133
+ parent=self.data_store_path(collection),
133
134
  data_store_id=self.data_store_id,
134
135
  data_store=data_store,
135
136
  # Optional: For Advanced Site Search Only
@@ -1,6 +1,7 @@
1
1
  from ..logging import log
2
+ from ..utils.gcp_project import get_gcp_project
2
3
 
3
- def init_vertex(gcp_config):
4
+ def init_vertex(gcp_config=None, location="eu"):
4
5
  """
5
6
  Initializes the Vertex AI environment using the provided Google Cloud Platform configuration.
6
7
 
@@ -12,6 +13,7 @@ def init_vertex(gcp_config):
12
13
  gcp_config (dict): A dictionary containing the Google Cloud Platform configuration with keys:
13
14
  - 'project_id': The Google Cloud project ID to configure for Vertex AI.
14
15
  - 'location': The Google Cloud region to configure for Vertex AI.
16
+ If default None it will derive it from the environment
15
17
 
16
18
  Raises:
17
19
  KeyError: If the necessary keys ('project_id' or 'location') are missing in the gcp_config dictionary.
@@ -37,7 +39,11 @@ def init_vertex(gcp_config):
37
39
 
38
40
  return None
39
41
 
40
- # Initialize Vertex AI API once per session
41
- project_id = gcp_config.get('project_id')
42
- location = gcp_config.get('location')
42
+ if gcp_config:
43
+ # Initialize Vertex AI API once per session
44
+ project_id = gcp_config.get('project_id')
45
+ location = gcp_config.get('location') or location
46
+ else:
47
+ project_id = get_gcp_project()
48
+
43
49
  vertexai.init(project=project_id, location=location)
@@ -8,6 +8,8 @@ from ..logging import log
8
8
  from ..utils.config import load_config_key
9
9
  from ..components import load_memories
10
10
  from ..llamaindex.get_files import fetch_corpus
11
+ from ..discovery_engine.discovery_engine_client import DiscoveryEngineClient
12
+ from ..utils.gcp_project import get_gcp_project
11
13
 
12
14
  def get_vertex_memories(vector_name):
13
15
  """
@@ -42,10 +44,7 @@ def get_vertex_memories(vector_name):
42
44
  if not rag:
43
45
  raise ValueError("Need to install vertexai module via `pip install sunholo[gcp]`")
44
46
 
45
- global_project_id = gcp_config.get('project_id')
46
47
  global_location = gcp_config.get('location')
47
- global_rag_id = gcp_config.get('rag_id')
48
- global_data_store_id = gcp_config.get('data_store_id')
49
48
 
50
49
  memories = load_memories(vector_name)
51
50
  tools = []
@@ -60,12 +59,16 @@ def get_vertex_memories(vector_name):
60
59
  if vectorstore == "llamaindex":
61
60
  log.info(f"Found vectorstore {vectorstore}")
62
61
  rag_id = value.get('rag_id')
62
+ if rag_id is None:
63
+ raise ValueError("Must specify rag_id if using vectorstore: llamaindex")
64
+
63
65
  project_id = gcp_config.get('project_id')
64
66
  location = gcp_config.get('location')
67
+
65
68
  corpus = fetch_corpus(
66
- project_id=project_id or global_project_id,
69
+ project_id=project_id or get_gcp_project(),
67
70
  location=location or global_location,
68
- rag_id=rag_id or global_rag_id
71
+ rag_id=rag_id
69
72
  )
70
73
  corpus_tool = Tool.from_retrieval(
71
74
  retrieval=rag.Retrieval(
@@ -76,13 +79,12 @@ def get_vertex_memories(vector_name):
76
79
  )
77
80
  )
78
81
  tools.append(corpus_tool)
79
- elif vectorstore == "vertexai_agent_builder":
82
+ elif vectorstore == "discovery_engine" or vectorstore == "vertex_ai_search":
83
+
84
+ de = DiscoveryEngineClient(vector_name, project_id=get_gcp_project())
80
85
  log.info(f"Found vectorstore {vectorstore}")
81
- data_store_id = value.get('data_store_id') or global_data_store_id
82
- project_id = gcp_config.get('project_id') or global_project_id
83
- location = gcp_config.get('location') or global_location
84
- data_store_path=f"projects/{project_id}/locations/{location}/collections/default_collection/dataStores/{data_store_id}"
85
86
 
87
+ data_store_path = de.data_store_path()
86
88
  corpus_tool = Tool.from_retrieval(
87
89
  grounding.Retrieval(grounding.VertexAISearch(datastore=data_store_path))
88
90
  )
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sunholo
3
- Version: 0.69.16
3
+ Version: 0.69.17
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.69.16.tar.gz
6
+ Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.69.17.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