sunholo 0.66.0__tar.gz → 0.66.2__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.66.0 → sunholo-0.66.2}/PKG-INFO +2 -2
  2. {sunholo-0.66.0 → sunholo-0.66.2}/setup.py +1 -1
  3. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/agents/swagger.py +5 -3
  4. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/llamaindex/import_files.py +43 -12
  5. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo.egg-info/PKG-INFO +2 -2
  6. {sunholo-0.66.0 → sunholo-0.66.2}/LICENSE.txt +0 -0
  7. {sunholo-0.66.0 → sunholo-0.66.2}/MANIFEST.in +0 -0
  8. {sunholo-0.66.0 → sunholo-0.66.2}/README.md +0 -0
  9. {sunholo-0.66.0 → sunholo-0.66.2}/setup.cfg +0 -0
  10. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/__init__.py +0 -0
  11. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/agents/__init__.py +0 -0
  12. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/agents/chat_history.py +0 -0
  13. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/agents/dispatch_to_qa.py +0 -0
  14. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/agents/fastapi/__init__.py +0 -0
  15. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/agents/fastapi/base.py +0 -0
  16. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/agents/fastapi/qna_routes.py +0 -0
  17. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/agents/flask/__init__.py +0 -0
  18. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/agents/flask/base.py +0 -0
  19. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/agents/flask/qna_routes.py +0 -0
  20. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/agents/langserve.py +0 -0
  21. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/agents/pubsub.py +0 -0
  22. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/agents/route.py +0 -0
  23. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/agents/special_commands.py +0 -0
  24. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/archive/__init__.py +0 -0
  25. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/archive/archive.py +0 -0
  26. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/auth/__init__.py +0 -0
  27. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/auth/run.py +0 -0
  28. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/bots/__init__.py +0 -0
  29. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/bots/discord.py +0 -0
  30. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/bots/github_webhook.py +0 -0
  31. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/bots/webapp.py +0 -0
  32. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/chunker/__init__.py +0 -0
  33. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/chunker/data_to_embed_pubsub.py +0 -0
  34. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/chunker/doc_handling.py +0 -0
  35. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/chunker/images.py +0 -0
  36. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/chunker/loaders.py +0 -0
  37. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/chunker/message_data.py +0 -0
  38. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/chunker/pdfs.py +0 -0
  39. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/chunker/publish.py +0 -0
  40. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/chunker/splitter.py +0 -0
  41. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/cli/__init__.py +0 -0
  42. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/cli/chat_vac.py +0 -0
  43. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/cli/cli.py +0 -0
  44. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/cli/cli_init.py +0 -0
  45. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/cli/configs.py +0 -0
  46. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/cli/deploy.py +0 -0
  47. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/cli/embedder.py +0 -0
  48. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/cli/merge_texts.py +0 -0
  49. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/cli/run_proxy.py +0 -0
  50. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/cli/sun_rich.py +0 -0
  51. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/cli/swagger.py +0 -0
  52. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/components/__init__.py +0 -0
  53. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/components/llm.py +0 -0
  54. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/components/retriever.py +0 -0
  55. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/components/vectorstore.py +0 -0
  56. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/database/__init__.py +0 -0
  57. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/database/alloydb.py +0 -0
  58. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/database/database.py +0 -0
  59. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/database/lancedb.py +0 -0
  60. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/database/sql/sb/create_function.sql +0 -0
  61. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/database/sql/sb/create_function_time.sql +0 -0
  62. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/database/sql/sb/create_table.sql +0 -0
  63. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/database/sql/sb/delete_source_row.sql +0 -0
  64. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/database/sql/sb/return_sources.sql +0 -0
  65. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/database/sql/sb/setup.sql +0 -0
  66. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/database/static_dbs.py +0 -0
  67. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/database/uuid.py +0 -0
  68. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/embedder/__init__.py +0 -0
  69. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/embedder/embed_chunk.py +0 -0
  70. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/gcs/__init__.py +0 -0
  71. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/gcs/add_file.py +0 -0
  72. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/gcs/download_url.py +0 -0
  73. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/gcs/metadata.py +0 -0
  74. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/langfuse/__init__.py +0 -0
  75. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/langfuse/callback.py +0 -0
  76. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/langfuse/prompts.py +0 -0
  77. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/llamaindex/__init__.py +0 -0
  78. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/llamaindex/generate.py +0 -0
  79. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/llamaindex/get_files.py +0 -0
  80. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/logging.py +0 -0
  81. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/lookup/__init__.py +0 -0
  82. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/lookup/model_lookup.yaml +0 -0
  83. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/patches/__init__.py +0 -0
  84. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/patches/langchain/__init__.py +0 -0
  85. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/patches/langchain/lancedb.py +0 -0
  86. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/patches/langchain/vertexai.py +0 -0
  87. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/pubsub/__init__.py +0 -0
  88. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/pubsub/process_pubsub.py +0 -0
  89. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/pubsub/pubsub_manager.py +0 -0
  90. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/qna/__init__.py +0 -0
  91. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/qna/parsers.py +0 -0
  92. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/qna/retry.py +0 -0
  93. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/streaming/__init__.py +0 -0
  94. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/streaming/content_buffer.py +0 -0
  95. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/streaming/langserve.py +0 -0
  96. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/streaming/stream_lookup.py +0 -0
  97. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/streaming/streaming.py +0 -0
  98. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/summarise/__init__.py +0 -0
  99. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/summarise/summarise.py +0 -0
  100. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/utils/__init__.py +0 -0
  101. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/utils/big_context.py +0 -0
  102. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/utils/config.py +0 -0
  103. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/utils/config_schema.py +0 -0
  104. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/utils/gcp.py +0 -0
  105. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/utils/gcp_project.py +0 -0
  106. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/utils/parsers.py +0 -0
  107. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/utils/timedelta.py +0 -0
  108. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/utils/user_ids.py +0 -0
  109. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/utils/version.py +0 -0
  110. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/vertex/__init__.py +0 -0
  111. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/vertex/init.py +0 -0
  112. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/vertex/memory_tools.py +0 -0
  113. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo/vertex/safety.py +0 -0
  114. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo.egg-info/SOURCES.txt +0 -0
  115. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo.egg-info/dependency_links.txt +0 -0
  116. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo.egg-info/entry_points.txt +0 -0
  117. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo.egg-info/requires.txt +0 -0
  118. {sunholo-0.66.0 → sunholo-0.66.2}/sunholo.egg-info/top_level.txt +0 -0
  119. {sunholo-0.66.0 → sunholo-0.66.2}/tests/test_chat_history.py +0 -0
  120. {sunholo-0.66.0 → sunholo-0.66.2}/tests/test_chunker.py +0 -0
  121. {sunholo-0.66.0 → sunholo-0.66.2}/tests/test_config.py +0 -0
  122. {sunholo-0.66.0 → sunholo-0.66.2}/tests/test_dispatch_to_qa.py +0 -0
  123. {sunholo-0.66.0 → sunholo-0.66.2}/tests/test_swagger.py +0 -0
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sunholo
3
- Version: 0.66.0
3
+ Version: 0.66.2
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.66.0.tar.gz
6
+ Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.66.2.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.66.0'
4
+ version = '0.66.2'
5
5
 
6
6
  setup(
7
7
  name='sunholo',
@@ -195,7 +195,8 @@ def generate_swagger(vac_config, agent_config):
195
195
  'operationId': operation_id,
196
196
  'x-google-backend': {
197
197
  'address': endpoint_address,
198
- 'protocol': 'h2'
198
+ 'protocol': 'h2',
199
+ 'deadline': 180000 # Timeout of 3 minutes (1,800,00 milliseconds)
199
200
  },
200
201
  'security': security,
201
202
  'responses': copy.deepcopy(agent_config_paths.get('response', {}).get(endpoint_key, {
@@ -252,7 +253,7 @@ def generate_swagger(vac_config, agent_config):
252
253
  swagger_template['paths'][endpoint_path] = {}
253
254
 
254
255
  operation_id = f"{method}_{agent_type}_{endpoint_key}_{vector_name}"
255
-
256
+
256
257
  security = [{'ApiKeyAuth': []}] if do_auth else [{'None': []}]
257
258
 
258
259
  swagger_template['paths'][endpoint_path][method] = {
@@ -260,7 +261,8 @@ def generate_swagger(vac_config, agent_config):
260
261
  'operationId': operation_id,
261
262
  'x-google-backend': {
262
263
  'address': endpoint_address,
263
- 'protocol': 'h2'
264
+ 'protocol': 'h2',
265
+ 'deadline': 180000 # Timeout of 3 minutes (1,800,00 milliseconds)
264
266
  },
265
267
  'security': security,
266
268
  'responses': copy.deepcopy(default_agent_config.get('response', {}).get(endpoint_key, {
@@ -7,6 +7,7 @@ from ..logging import log
7
7
  from ..utils.config import load_config_key
8
8
  from ..vertex import init_vertex
9
9
  from .get_files import fetch_corpus
10
+ from ..components import load_memories
10
11
 
11
12
 
12
13
  def do_llamaindex(message_data, metadata, vector_name):
@@ -45,30 +46,60 @@ def do_llamaindex(message_data, metadata, vector_name):
45
46
  raise ValueError(f"Need config.{vector_name}.gcp_config to configure llamaindex on VertexAI")
46
47
 
47
48
  init_vertex(gcp_config)
48
- corpus = fetch_corpus(gcp_config)
49
- #display_name = load_config_key("display_name", vector_name=vector_name, filename="config/llm_config.yaml")
50
- #description = load_config_key("description", vector_name=vector_name, filename="config/llm_config.yaml")
51
49
 
50
+ global_project_id = gcp_config.get('project_id')
51
+ global_location = gcp_config.get('location')
52
+ global_rag_id = gcp_config.get('rag_id')
53
+ #global_data_store_id = gcp_config.get('data_store_id')
54
+
55
+ memories = load_memories(vector_name)
56
+ tools = []
57
+
58
+ if not memories:
59
+ return tools
60
+
61
+ corpuses = None
62
+ for memory in memories:
63
+ for key, value in memory.items(): # Now iterate over the dictionary
64
+ log.info(f"Found memory {key}")
65
+ vectorstore = value.get('vectorstore')
66
+ if vectorstore == "llamaindex":
67
+ log.info(f"Found vectorstore {vectorstore}")
68
+ rag_id = value.get('rag_id')
69
+ project_id = gcp_config.get('project_id')
70
+ location = gcp_config.get('location')
71
+ corpus = fetch_corpus(
72
+ project_id=project_id or global_project_id,
73
+ location=location or global_location,
74
+ rag_id=rag_id or global_rag_id
75
+ )
76
+ corpuses.append(corpus)
77
+ if not corpuses:
78
+ log.error("Could not find a RAG corpus to import data to")
79
+ return None
80
+
52
81
  try:
53
82
  corpura = rag.list_corpora()
54
- log.info(f"Corpora: {corpura} - {type(corpura)}")
83
+ log.info(f"All Corpora: {corpura} - {type(corpura)}")
55
84
  except Exception as err:
56
85
  log.warning(f"Could not list any corpora - {str(err)}")
57
86
 
58
- log.info(f"Found llamaindex corpus: {corpus}")
87
+ log.info(f"Found llamaindex corpus: {corpuses}")
59
88
 
60
89
  # native support for cloud storage and drive links
61
90
  chunker_config = load_config_key("chunker", vector_name=vector_name, kind="vacConfig")
62
91
 
92
+
63
93
  if message_data.startswith("gs://") or message_data.startswith("https://drive.google.com"):
64
94
  log.info(f"rag.import_files for {message_data}")
65
- response = rag.import_files(
66
- corpus_name=corpus.name,
67
- paths=[message_data],
68
- chunk_size=chunker_config.get("chunk_size"), # Optional
69
- chunk_overlap=chunker_config.get("overlap"), # Optional
70
- )
71
- log.info(f"Imported file to corpus: {response} with metadata: {metadata}")
95
+ for corp in corpuses:
96
+ response = rag.import_files(
97
+ corpus_name=corp.name,
98
+ paths=[message_data],
99
+ chunk_size=chunker_config.get("chunk_size"), # Optional
100
+ chunk_overlap=chunker_config.get("overlap"), # Optional
101
+ )
102
+ log.info(f"Imported file to corpus: {response} with metadata: {metadata}")
72
103
 
73
104
  metadata["source"] = message_data
74
105
  return metadata
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sunholo
3
- Version: 0.66.0
3
+ Version: 0.66.2
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.66.0.tar.gz
6
+ Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.66.2.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