sunholo 0.71.16__tar.gz → 0.71.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 (134) hide show
  1. {sunholo-0.71.16 → sunholo-0.71.17}/PKG-INFO +2 -2
  2. {sunholo-0.71.16 → sunholo-0.71.17}/setup.py +1 -1
  3. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/cli/chat_vac.py +33 -2
  4. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/gcs/add_file.py +5 -5
  5. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/vertex/extensions_class.py +3 -0
  6. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo.egg-info/PKG-INFO +2 -2
  7. {sunholo-0.71.16 → sunholo-0.71.17}/LICENSE.txt +0 -0
  8. {sunholo-0.71.16 → sunholo-0.71.17}/MANIFEST.in +0 -0
  9. {sunholo-0.71.16 → sunholo-0.71.17}/README.md +0 -0
  10. {sunholo-0.71.16 → sunholo-0.71.17}/setup.cfg +0 -0
  11. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/__init__.py +0 -0
  12. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/agents/__init__.py +0 -0
  13. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/agents/chat_history.py +0 -0
  14. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/agents/dispatch_to_qa.py +0 -0
  15. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/agents/fastapi/__init__.py +0 -0
  16. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/agents/fastapi/base.py +0 -0
  17. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/agents/fastapi/qna_routes.py +0 -0
  18. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/agents/flask/__init__.py +0 -0
  19. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/agents/flask/base.py +0 -0
  20. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/agents/flask/qna_routes.py +0 -0
  21. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/agents/flask/vac_routes.py +0 -0
  22. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/agents/langserve.py +0 -0
  23. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/agents/pubsub.py +0 -0
  24. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/agents/route.py +0 -0
  25. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/agents/special_commands.py +0 -0
  26. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/agents/swagger.py +0 -0
  27. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/archive/__init__.py +0 -0
  28. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/archive/archive.py +0 -0
  29. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/auth/__init__.py +0 -0
  30. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/auth/run.py +0 -0
  31. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/bots/__init__.py +0 -0
  32. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/bots/discord.py +0 -0
  33. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/bots/github_webhook.py +0 -0
  34. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/bots/webapp.py +0 -0
  35. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/chunker/__init__.py +0 -0
  36. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/chunker/data_to_embed_pubsub.py +0 -0
  37. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/chunker/doc_handling.py +0 -0
  38. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/chunker/images.py +0 -0
  39. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/chunker/loaders.py +0 -0
  40. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/chunker/message_data.py +0 -0
  41. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/chunker/pdfs.py +0 -0
  42. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/chunker/publish.py +0 -0
  43. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/chunker/splitter.py +0 -0
  44. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/cli/__init__.py +0 -0
  45. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/cli/cli.py +0 -0
  46. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/cli/cli_init.py +0 -0
  47. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/cli/configs.py +0 -0
  48. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/cli/deploy.py +0 -0
  49. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/cli/embedder.py +0 -0
  50. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/cli/merge_texts.py +0 -0
  51. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/cli/run_proxy.py +0 -0
  52. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/cli/sun_rich.py +0 -0
  53. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/cli/swagger.py +0 -0
  54. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/components/__init__.py +0 -0
  55. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/components/llm.py +0 -0
  56. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/components/retriever.py +0 -0
  57. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/components/vectorstore.py +0 -0
  58. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/database/__init__.py +0 -0
  59. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/database/alloydb.py +0 -0
  60. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/database/alloydb_client.py +0 -0
  61. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/database/database.py +0 -0
  62. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/database/lancedb.py +0 -0
  63. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/database/sql/sb/create_function.sql +0 -0
  64. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/database/sql/sb/create_function_time.sql +0 -0
  65. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/database/sql/sb/create_table.sql +0 -0
  66. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/database/sql/sb/delete_source_row.sql +0 -0
  67. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/database/sql/sb/return_sources.sql +0 -0
  68. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/database/sql/sb/setup.sql +0 -0
  69. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/database/static_dbs.py +0 -0
  70. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/database/uuid.py +0 -0
  71. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/discovery_engine/__init__.py +0 -0
  72. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/discovery_engine/chunker_handler.py +0 -0
  73. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/discovery_engine/create_new.py +0 -0
  74. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/discovery_engine/discovery_engine_client.py +0 -0
  75. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/embedder/__init__.py +0 -0
  76. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/embedder/embed_chunk.py +0 -0
  77. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/gcs/__init__.py +0 -0
  78. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/gcs/download_url.py +0 -0
  79. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/gcs/metadata.py +0 -0
  80. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/langfuse/__init__.py +0 -0
  81. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/langfuse/callback.py +0 -0
  82. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/langfuse/prompts.py +0 -0
  83. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/llamaindex/__init__.py +0 -0
  84. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/llamaindex/generate.py +0 -0
  85. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/llamaindex/get_files.py +0 -0
  86. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/llamaindex/import_files.py +0 -0
  87. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/logging.py +0 -0
  88. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/lookup/__init__.py +0 -0
  89. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/lookup/model_lookup.yaml +0 -0
  90. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/patches/__init__.py +0 -0
  91. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/patches/langchain/__init__.py +0 -0
  92. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/patches/langchain/lancedb.py +0 -0
  93. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/patches/langchain/vertexai.py +0 -0
  94. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/pubsub/__init__.py +0 -0
  95. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/pubsub/process_pubsub.py +0 -0
  96. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/pubsub/pubsub_manager.py +0 -0
  97. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/qna/__init__.py +0 -0
  98. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/qna/parsers.py +0 -0
  99. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/qna/retry.py +0 -0
  100. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/streaming/__init__.py +0 -0
  101. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/streaming/content_buffer.py +0 -0
  102. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/streaming/langserve.py +0 -0
  103. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/streaming/stream_lookup.py +0 -0
  104. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/streaming/streaming.py +0 -0
  105. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/summarise/__init__.py +0 -0
  106. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/summarise/summarise.py +0 -0
  107. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/tools/__init__.py +0 -0
  108. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/tools/web_browser.py +0 -0
  109. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/utils/__init__.py +0 -0
  110. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/utils/api_key.py +0 -0
  111. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/utils/big_context.py +0 -0
  112. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/utils/config.py +0 -0
  113. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/utils/config_schema.py +0 -0
  114. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/utils/gcp.py +0 -0
  115. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/utils/gcp_project.py +0 -0
  116. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/utils/parsers.py +0 -0
  117. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/utils/timedelta.py +0 -0
  118. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/utils/user_ids.py +0 -0
  119. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/utils/version.py +0 -0
  120. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/vertex/__init__.py +0 -0
  121. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/vertex/extensions.py +0 -0
  122. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/vertex/init.py +0 -0
  123. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/vertex/memory_tools.py +0 -0
  124. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo/vertex/safety.py +0 -0
  125. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo.egg-info/SOURCES.txt +0 -0
  126. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo.egg-info/dependency_links.txt +0 -0
  127. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo.egg-info/entry_points.txt +0 -0
  128. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo.egg-info/requires.txt +0 -0
  129. {sunholo-0.71.16 → sunholo-0.71.17}/sunholo.egg-info/top_level.txt +0 -0
  130. {sunholo-0.71.16 → sunholo-0.71.17}/tests/test_chat_history.py +0 -0
  131. {sunholo-0.71.16 → sunholo-0.71.17}/tests/test_chunker.py +0 -0
  132. {sunholo-0.71.16 → sunholo-0.71.17}/tests/test_config.py +0 -0
  133. {sunholo-0.71.16 → sunholo-0.71.17}/tests/test_dispatch_to_qa.py +0 -0
  134. {sunholo-0.71.16 → sunholo-0.71.17}/tests/test_swagger.py +0 -0
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sunholo
3
- Version: 0.71.16
3
+ Version: 0.71.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.71.16.tar.gz
6
+ Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.71.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.71.16'
4
+ version = '0.71.17'
5
5
 
6
6
  setup(
7
7
  name='sunholo',
@@ -5,9 +5,11 @@ from ..utils.config import load_config_key
5
5
  from ..utils.api_key import has_multivac_api_key
6
6
  from ..logging import log
7
7
  from ..qna.parsers import parse_output
8
+ from ..gcs.add_file import add_file_to_gcs
8
9
  from .run_proxy import clean_proxy_list, start_proxy, stop_proxy
9
10
 
10
11
  import uuid
12
+ import os
11
13
  import sys
12
14
  import subprocess
13
15
  import json
@@ -44,6 +46,17 @@ def get_service_url(vac_name, project, region, no_config=False):
44
46
 
45
47
  return url
46
48
 
49
+ def handle_file_upload(file, vector_name):
50
+ if not Path(file).is_file():
51
+ return None
52
+
53
+ file_url = add_file_to_gcs(file,
54
+ vector_name=vector_name,
55
+ metadata={"type": "cli"},
56
+ bucket_filepath=f"{vector_name}/uploads/{os.path.basename(file)}")
57
+
58
+ return file_url
59
+
47
60
  def stream_chat_session(service_url, service_name, stream=True):
48
61
 
49
62
  user_id = generate_user_id()
@@ -62,7 +75,25 @@ def stream_chat_session(service_url, service_name, stream=True):
62
75
 
63
76
  if special_reply:
64
77
  console.print(f"[bold yellow]{service_name}:[/bold yellow] {special_reply}", end='\n')
65
- continue
78
+ continue
79
+
80
+ if user_input.lower().startswith("upload"):
81
+ file_path = user_input.split(" ", 1)[1] if " " in user_input else None
82
+ if not file_path:
83
+ console.print("[bold red]Please provide a valid file path.[/bold red]")
84
+ continue
85
+
86
+ try:
87
+ file_reply = handle_file_upload(file_path, vector_name=service_name)
88
+ if not file_reply:
89
+ console.print("[bold red]Invalid file upload[/bold red]")
90
+ continue
91
+
92
+ console.print(f"[bold yellow]{service_name}:[/bold yellow] Uploaded {file_path} to {file_reply}", end='\n')
93
+
94
+ except FileNotFoundError:
95
+ console.print("[bold red]File not found. Please check the path and try again.[/bold red]")
96
+ continue
66
97
 
67
98
  if not stream:
68
99
  vac_response = send_to_qa(user_input,
@@ -70,7 +101,7 @@ def stream_chat_session(service_url, service_name, stream=True):
70
101
  chat_history=chat_history,
71
102
  message_author=user_id,
72
103
  #TODO: populate these
73
- image_url=None,
104
+ image_url=file_reply,
74
105
  source_filters=None,
75
106
  search_kwargs=None,
76
107
  private_docs=None,
@@ -72,10 +72,10 @@ def resolve_bucket(vector_name):
72
72
  if bucket_config:
73
73
  if bucket_config.get("buckets"):
74
74
  bucket_name = bucket_config.get("buckets").get("all")
75
-
76
- bucket_name = bucket_name if bucket_name else os.getenv('GCS_BUCKET', None)
77
- if bucket_name is None:
78
- raise ValueError("No bucket found to upload to: GCS_BUCKET returned None")
75
+ else:
76
+ bucket_name = os.getenv('GCS_BUCKET')
77
+ if not bucket_name:
78
+ raise ValueError("No bucket found to upload to: GCS_BUCKET returned None")
79
79
 
80
80
  if bucket_name.startswith("gs://"):
81
81
  bucket_name = bucket_name.removeprefix("gs://")
@@ -93,7 +93,7 @@ def add_file_to_gcs(filename: str, vector_name:str, bucket_name: str=None, metad
93
93
  log.error(f"Error creating storage client: {str(err)}")
94
94
  return None
95
95
 
96
- if bucket_name is None:
96
+ if not bucket_name:
97
97
  bucket_name = resolve_bucket(vector_name)
98
98
 
99
99
  bucket = storage_client.get_bucket(bucket_name)
@@ -160,6 +160,9 @@ class VertexAIExtensions:
160
160
  "fileOutputGcsBucket": f"{bucket_name}/extensions/output/",
161
161
  }
162
162
  }
163
+ else:
164
+ runtime_config = {}
165
+
163
166
  extension_code_interpreter = extensions.Extension.from_hub("code_interpreter", runtime_config=runtime_config)
164
167
 
165
168
  # This field is only applicable when `file_output_gcs_bucket` is specified in `Extension.CodeInterpreterRuntimeConfig`.
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sunholo
3
- Version: 0.71.16
3
+ Version: 0.71.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.71.16.tar.gz
6
+ Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.71.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