sunholo 0.71.5__tar.gz → 0.71.8__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 (132) hide show
  1. {sunholo-0.71.5 → sunholo-0.71.8}/PKG-INFO +2 -2
  2. {sunholo-0.71.5 → sunholo-0.71.8}/setup.py +1 -1
  3. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/discovery_engine/discovery_engine_client.py +55 -1
  4. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/vertex/__init__.py +1 -1
  5. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/vertex/memory_tools.py +11 -0
  6. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo.egg-info/PKG-INFO +2 -2
  7. {sunholo-0.71.5 → sunholo-0.71.8}/LICENSE.txt +0 -0
  8. {sunholo-0.71.5 → sunholo-0.71.8}/MANIFEST.in +0 -0
  9. {sunholo-0.71.5 → sunholo-0.71.8}/README.md +0 -0
  10. {sunholo-0.71.5 → sunholo-0.71.8}/setup.cfg +0 -0
  11. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/__init__.py +0 -0
  12. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/agents/__init__.py +0 -0
  13. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/agents/chat_history.py +0 -0
  14. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/agents/dispatch_to_qa.py +0 -0
  15. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/agents/fastapi/__init__.py +0 -0
  16. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/agents/fastapi/base.py +0 -0
  17. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/agents/fastapi/qna_routes.py +0 -0
  18. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/agents/flask/__init__.py +0 -0
  19. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/agents/flask/base.py +0 -0
  20. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/agents/flask/qna_routes.py +0 -0
  21. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/agents/flask/vac_routes.py +0 -0
  22. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/agents/langserve.py +0 -0
  23. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/agents/pubsub.py +0 -0
  24. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/agents/route.py +0 -0
  25. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/agents/special_commands.py +0 -0
  26. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/agents/swagger.py +0 -0
  27. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/archive/__init__.py +0 -0
  28. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/archive/archive.py +0 -0
  29. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/auth/__init__.py +0 -0
  30. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/auth/run.py +0 -0
  31. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/bots/__init__.py +0 -0
  32. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/bots/discord.py +0 -0
  33. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/bots/github_webhook.py +0 -0
  34. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/bots/webapp.py +0 -0
  35. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/chunker/__init__.py +0 -0
  36. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/chunker/data_to_embed_pubsub.py +0 -0
  37. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/chunker/doc_handling.py +0 -0
  38. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/chunker/images.py +0 -0
  39. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/chunker/loaders.py +0 -0
  40. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/chunker/message_data.py +0 -0
  41. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/chunker/pdfs.py +0 -0
  42. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/chunker/publish.py +0 -0
  43. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/chunker/splitter.py +0 -0
  44. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/cli/__init__.py +0 -0
  45. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/cli/chat_vac.py +0 -0
  46. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/cli/cli.py +0 -0
  47. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/cli/cli_init.py +0 -0
  48. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/cli/configs.py +0 -0
  49. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/cli/deploy.py +0 -0
  50. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/cli/embedder.py +0 -0
  51. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/cli/merge_texts.py +0 -0
  52. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/cli/run_proxy.py +0 -0
  53. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/cli/sun_rich.py +0 -0
  54. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/cli/swagger.py +0 -0
  55. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/components/__init__.py +0 -0
  56. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/components/llm.py +0 -0
  57. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/components/retriever.py +0 -0
  58. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/components/vectorstore.py +0 -0
  59. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/database/__init__.py +0 -0
  60. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/database/alloydb.py +0 -0
  61. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/database/alloydb_client.py +0 -0
  62. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/database/database.py +0 -0
  63. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/database/lancedb.py +0 -0
  64. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/database/sql/sb/create_function.sql +0 -0
  65. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/database/sql/sb/create_function_time.sql +0 -0
  66. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/database/sql/sb/create_table.sql +0 -0
  67. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/database/sql/sb/delete_source_row.sql +0 -0
  68. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/database/sql/sb/return_sources.sql +0 -0
  69. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/database/sql/sb/setup.sql +0 -0
  70. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/database/static_dbs.py +0 -0
  71. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/database/uuid.py +0 -0
  72. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/discovery_engine/__init__.py +0 -0
  73. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/discovery_engine/chunker_handler.py +0 -0
  74. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/discovery_engine/create_new.py +0 -0
  75. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/embedder/__init__.py +0 -0
  76. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/embedder/embed_chunk.py +0 -0
  77. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/gcs/__init__.py +0 -0
  78. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/gcs/add_file.py +0 -0
  79. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/gcs/download_url.py +0 -0
  80. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/gcs/metadata.py +0 -0
  81. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/langfuse/__init__.py +0 -0
  82. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/langfuse/callback.py +0 -0
  83. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/langfuse/prompts.py +0 -0
  84. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/llamaindex/__init__.py +0 -0
  85. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/llamaindex/generate.py +0 -0
  86. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/llamaindex/get_files.py +0 -0
  87. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/llamaindex/import_files.py +0 -0
  88. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/logging.py +0 -0
  89. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/lookup/__init__.py +0 -0
  90. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/lookup/model_lookup.yaml +0 -0
  91. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/patches/__init__.py +0 -0
  92. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/patches/langchain/__init__.py +0 -0
  93. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/patches/langchain/lancedb.py +0 -0
  94. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/patches/langchain/vertexai.py +0 -0
  95. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/pubsub/__init__.py +0 -0
  96. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/pubsub/process_pubsub.py +0 -0
  97. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/pubsub/pubsub_manager.py +0 -0
  98. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/qna/__init__.py +0 -0
  99. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/qna/parsers.py +0 -0
  100. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/qna/retry.py +0 -0
  101. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/streaming/__init__.py +0 -0
  102. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/streaming/content_buffer.py +0 -0
  103. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/streaming/langserve.py +0 -0
  104. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/streaming/stream_lookup.py +0 -0
  105. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/streaming/streaming.py +0 -0
  106. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/summarise/__init__.py +0 -0
  107. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/summarise/summarise.py +0 -0
  108. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/utils/__init__.py +0 -0
  109. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/utils/api_key.py +0 -0
  110. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/utils/big_context.py +0 -0
  111. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/utils/config.py +0 -0
  112. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/utils/config_schema.py +0 -0
  113. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/utils/gcp.py +0 -0
  114. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/utils/gcp_project.py +0 -0
  115. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/utils/parsers.py +0 -0
  116. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/utils/timedelta.py +0 -0
  117. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/utils/user_ids.py +0 -0
  118. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/utils/version.py +0 -0
  119. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/vertex/extensions.py +0 -0
  120. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/vertex/extensions_class.py +0 -0
  121. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/vertex/init.py +0 -0
  122. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo/vertex/safety.py +0 -0
  123. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo.egg-info/SOURCES.txt +0 -0
  124. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo.egg-info/dependency_links.txt +0 -0
  125. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo.egg-info/entry_points.txt +0 -0
  126. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo.egg-info/requires.txt +0 -0
  127. {sunholo-0.71.5 → sunholo-0.71.8}/sunholo.egg-info/top_level.txt +0 -0
  128. {sunholo-0.71.5 → sunholo-0.71.8}/tests/test_chat_history.py +0 -0
  129. {sunholo-0.71.5 → sunholo-0.71.8}/tests/test_chunker.py +0 -0
  130. {sunholo-0.71.5 → sunholo-0.71.8}/tests/test_config.py +0 -0
  131. {sunholo-0.71.5 → sunholo-0.71.8}/tests/test_dispatch_to_qa.py +0 -0
  132. {sunholo-0.71.5 → sunholo-0.71.8}/tests/test_swagger.py +0 -0
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sunholo
3
- Version: 0.71.5
3
+ Version: 0.71.8
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.71.5.tar.gz
6
+ Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.71.8.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.71.5'
4
+ version = '0.71.8'
5
5
 
6
6
  setup(
7
7
  name='sunholo',
@@ -11,7 +11,7 @@ except ImportError:
11
11
  SearchResponse = None
12
12
 
13
13
  from ..logging import log
14
- from typing import Optional
14
+ from typing import Optional, List
15
15
 
16
16
  class DiscoveryEngineClient:
17
17
  """
@@ -69,6 +69,7 @@ class DiscoveryEngineClient:
69
69
  self.store_client = discoveryengine.DataStoreServiceClient(client_options=client_options)
70
70
  self.doc_client = discoveryengine.DocumentServiceClient(client_options=client_options)
71
71
  self.search_client = discoveryengine.SearchServiceClient(client_options=client_options)
72
+ self.engine_client = discoveryengine.EngineServiceClient(client_options=client_options)
72
73
 
73
74
  @classmethod
74
75
  def my_retry(cls):
@@ -261,6 +262,59 @@ class DiscoveryEngineClient:
261
262
  result_string = "\n".join(all_chunks)
262
263
 
263
264
  return result_string
265
+
266
+ def create_engine(self,
267
+ engine_id: str,
268
+ data_store_ids: List[str],
269
+ solution_type=None,
270
+ search_tier=None,
271
+ search_add_ons=None,
272
+ ) -> str:
273
+
274
+ # The full resource name of the collection
275
+ # e.g. projects/{project}/locations/{location}/collections/default_collection
276
+ parent = self.data_store_path()
277
+
278
+ engine = discoveryengine.Engine(
279
+ display_name=engine_id,
280
+ # Options: GENERIC, MEDIA, HEALTHCARE_FHIR
281
+ industry_vertical=discoveryengine.IndustryVertical.GENERIC,
282
+ # Options: SOLUTION_TYPE_RECOMMENDATION, SOLUTION_TYPE_SEARCH, SOLUTION_TYPE_CHAT, SOLUTION_TYPE_GENERATIVE_CHAT
283
+ solution_type=solution_type or discoveryengine.SolutionType.SOLUTION_TYPE_SEARCH,
284
+ # For search apps only
285
+ search_engine_config=discoveryengine.Engine.SearchEngineConfig(
286
+ # Options: SEARCH_TIER_STANDARD, SEARCH_TIER_ENTERPRISE
287
+ search_tier=search_tier or discoveryengine.SearchTier.SEARCH_TIER_ENTERPRISE,
288
+ # Options: SEARCH_ADD_ON_LLM, SEARCH_ADD_ON_UNSPECIFIED
289
+ search_add_ons=search_add_ons or [discoveryengine.SearchAddOn.SEARCH_ADD_ON_UNSPECIFIED],
290
+ ),
291
+ # For generic recommendation apps only
292
+ # similar_documents_config=discoveryengine.Engine.SimilarDocumentsEngineConfig,
293
+ data_store_ids=data_store_ids,
294
+ )
295
+
296
+ request = discoveryengine.CreateEngineRequest(
297
+ parent=parent,
298
+ engine=engine,
299
+ engine_id=engine_id,
300
+ )
301
+
302
+ # Make the request
303
+ operation = self.engine_client.create_engine(request=request)
304
+
305
+ log.info(f"Waiting for create vertex ai search operation to complete: {operation.operation.name}")
306
+ response = operation.result()
307
+
308
+ # Once the operation is complete,
309
+ # get information from operation metadata
310
+ metadata = discoveryengine.CreateEngineMetadata(operation.metadata)
311
+
312
+ # Handle the response
313
+ log.info(f"{response=} {metadata=}")
314
+
315
+ return operation.operation.name
316
+
317
+
264
318
 
265
319
  def import_documents(self,
266
320
  gcs_uri: Optional[str] = None,
@@ -1,3 +1,3 @@
1
1
  from .init import init_vertex
2
- from .memory_tools import get_vertex_memories, print_grounding_response
2
+ from .memory_tools import get_vertex_memories, print_grounding_response, get_google_search_grounding
3
3
  from .safety import vertex_safety
@@ -106,6 +106,17 @@ def get_vertex_memories(vector_name):
106
106
 
107
107
  return tools
108
108
 
109
+ def get_google_search_grounding(vector_name):
110
+ # can't have this and llamaindex memories?
111
+ ground = load_config_key("grounding", vector_name=vector_name, kind="vacConfig")
112
+ if ground and ground.get("google_search"):
113
+ gs_tool = Tool.from_google_search_retrieval(grounding.GoogleSearchRetrieval())
114
+ log.info(f"Got Search Tool: {gs_tool}")
115
+ return gs_tool
116
+
117
+ log.info(f"No google search config available for {vector_name}")
118
+ return None
119
+
109
120
  def print_grounding_response(response):
110
121
  """Prints Gemini response with grounding citations."""
111
122
  grounding_metadata = response.candidates[0].grounding_metadata
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sunholo
3
- Version: 0.71.5
3
+ Version: 0.71.8
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.71.5.tar.gz
6
+ Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.71.8.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
File without changes
File without changes
File without changes