sunholo 0.107.0__tar.gz → 0.108.0__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 (166) hide show
  1. {sunholo-0.107.0 → sunholo-0.108.0}/PKG-INFO +2 -2
  2. {sunholo-0.107.0 → sunholo-0.108.0}/setup.py +1 -1
  3. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/database/alloydb.py +6 -4
  4. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/senses/stream_voice.py +39 -0
  5. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo.egg-info/PKG-INFO +2 -2
  6. {sunholo-0.107.0 → sunholo-0.108.0}/LICENSE.txt +0 -0
  7. {sunholo-0.107.0 → sunholo-0.108.0}/MANIFEST.in +0 -0
  8. {sunholo-0.107.0 → sunholo-0.108.0}/README.md +0 -0
  9. {sunholo-0.107.0 → sunholo-0.108.0}/setup.cfg +0 -0
  10. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/__init__.py +0 -0
  11. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/agents/__init__.py +0 -0
  12. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/agents/chat_history.py +0 -0
  13. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/agents/dispatch_to_qa.py +0 -0
  14. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/agents/fastapi/__init__.py +0 -0
  15. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/agents/fastapi/base.py +0 -0
  16. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/agents/fastapi/qna_routes.py +0 -0
  17. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/agents/flask/__init__.py +0 -0
  18. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/agents/flask/base.py +0 -0
  19. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/agents/flask/qna_routes.py +0 -0
  20. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/agents/flask/vac_routes.py +0 -0
  21. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/agents/langserve.py +0 -0
  22. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/agents/pubsub.py +0 -0
  23. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/agents/route.py +0 -0
  24. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/agents/special_commands.py +0 -0
  25. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/agents/swagger.py +0 -0
  26. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/archive/__init__.py +0 -0
  27. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/archive/archive.py +0 -0
  28. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/auth/__init__.py +0 -0
  29. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/auth/gcloud.py +0 -0
  30. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/auth/refresh.py +0 -0
  31. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/auth/run.py +0 -0
  32. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/azure/__init__.py +0 -0
  33. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/azure/auth.py +0 -0
  34. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/azure/blobs.py +0 -0
  35. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/azure/event_grid.py +0 -0
  36. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/bots/__init__.py +0 -0
  37. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/bots/discord.py +0 -0
  38. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/bots/github_webhook.py +0 -0
  39. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/bots/webapp.py +0 -0
  40. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/chunker/__init__.py +0 -0
  41. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/chunker/azure.py +0 -0
  42. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/chunker/doc_handling.py +0 -0
  43. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/chunker/encode_metadata.py +0 -0
  44. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/chunker/images.py +0 -0
  45. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/chunker/loaders.py +0 -0
  46. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/chunker/message_data.py +0 -0
  47. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/chunker/pdfs.py +0 -0
  48. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/chunker/process_chunker_data.py +0 -0
  49. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/chunker/publish.py +0 -0
  50. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/chunker/pubsub.py +0 -0
  51. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/chunker/splitter.py +0 -0
  52. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/cli/__init__.py +0 -0
  53. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/cli/chat_vac.py +0 -0
  54. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/cli/cli.py +0 -0
  55. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/cli/cli_init.py +0 -0
  56. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/cli/configs.py +0 -0
  57. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/cli/deploy.py +0 -0
  58. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/cli/embedder.py +0 -0
  59. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/cli/merge_texts.py +0 -0
  60. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/cli/run_proxy.py +0 -0
  61. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/cli/sun_rich.py +0 -0
  62. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/cli/swagger.py +0 -0
  63. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/cli/vertex.py +0 -0
  64. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/components/__init__.py +0 -0
  65. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/components/llm.py +0 -0
  66. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/components/retriever.py +0 -0
  67. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/components/vectorstore.py +0 -0
  68. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/custom_logging.py +0 -0
  69. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/database/__init__.py +0 -0
  70. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/database/alloydb_client.py +0 -0
  71. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/database/database.py +0 -0
  72. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/database/lancedb.py +0 -0
  73. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/database/sql/sb/create_function.sql +0 -0
  74. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/database/sql/sb/create_function_time.sql +0 -0
  75. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/database/sql/sb/create_table.sql +0 -0
  76. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/database/sql/sb/delete_source_row.sql +0 -0
  77. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/database/sql/sb/return_sources.sql +0 -0
  78. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/database/sql/sb/setup.sql +0 -0
  79. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/database/static_dbs.py +0 -0
  80. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/database/uuid.py +0 -0
  81. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/discovery_engine/__init__.py +0 -0
  82. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/discovery_engine/chunker_handler.py +0 -0
  83. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/discovery_engine/create_new.py +0 -0
  84. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/discovery_engine/discovery_engine_client.py +0 -0
  85. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/discovery_engine/get_ai_search_chunks.py +0 -0
  86. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/embedder/__init__.py +0 -0
  87. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/embedder/embed_chunk.py +0 -0
  88. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/excel/__init__.py +0 -0
  89. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/excel/plugin.py +0 -0
  90. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/gcs/__init__.py +0 -0
  91. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/gcs/add_file.py +0 -0
  92. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/gcs/download_folder.py +0 -0
  93. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/gcs/download_url.py +0 -0
  94. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/gcs/extract_and_sign.py +0 -0
  95. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/gcs/metadata.py +0 -0
  96. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/genai/__init__.py +0 -0
  97. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/genai/images.py +0 -0
  98. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/genai/init.py +0 -0
  99. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/genai/process_funcs_cls.py +0 -0
  100. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/genai/safety.py +0 -0
  101. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/invoke/__init__.py +0 -0
  102. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/invoke/async_class.py +0 -0
  103. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/invoke/direct_vac_func.py +0 -0
  104. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/invoke/invoke_vac_utils.py +0 -0
  105. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/langfuse/__init__.py +0 -0
  106. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/langfuse/callback.py +0 -0
  107. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/langfuse/evals.py +0 -0
  108. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/langfuse/prompts.py +0 -0
  109. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/llamaindex/__init__.py +0 -0
  110. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/llamaindex/get_files.py +0 -0
  111. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/llamaindex/import_files.py +0 -0
  112. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/llamaindex/llamaindex_class.py +0 -0
  113. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/llamaindex/user_history.py +0 -0
  114. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/lookup/__init__.py +0 -0
  115. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/lookup/model_lookup.yaml +0 -0
  116. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/patches/__init__.py +0 -0
  117. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/patches/langchain/__init__.py +0 -0
  118. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/patches/langchain/lancedb.py +0 -0
  119. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/patches/langchain/vertexai.py +0 -0
  120. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/pubsub/__init__.py +0 -0
  121. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/pubsub/process_pubsub.py +0 -0
  122. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/pubsub/pubsub_manager.py +0 -0
  123. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/qna/__init__.py +0 -0
  124. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/qna/parsers.py +0 -0
  125. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/qna/retry.py +0 -0
  126. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/senses/__init__.py +0 -0
  127. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/streaming/__init__.py +0 -0
  128. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/streaming/content_buffer.py +0 -0
  129. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/streaming/langserve.py +0 -0
  130. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/streaming/stream_lookup.py +0 -0
  131. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/streaming/streaming.py +0 -0
  132. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/summarise/__init__.py +0 -0
  133. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/summarise/summarise.py +0 -0
  134. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/terraform/__init__.py +0 -0
  135. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/terraform/tfvars_editor.py +0 -0
  136. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/tools/__init__.py +0 -0
  137. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/tools/web_browser.py +0 -0
  138. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/utils/__init__.py +0 -0
  139. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/utils/api_key.py +0 -0
  140. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/utils/big_context.py +0 -0
  141. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/utils/config.py +0 -0
  142. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/utils/config_class.py +0 -0
  143. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/utils/config_schema.py +0 -0
  144. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/utils/gcp.py +0 -0
  145. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/utils/gcp_project.py +0 -0
  146. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/utils/mime.py +0 -0
  147. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/utils/parsers.py +0 -0
  148. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/utils/timedelta.py +0 -0
  149. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/utils/user_ids.py +0 -0
  150. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/utils/version.py +0 -0
  151. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/vertex/__init__.py +0 -0
  152. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/vertex/extensions_call.py +0 -0
  153. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/vertex/extensions_class.py +0 -0
  154. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/vertex/genai_functions.py +0 -0
  155. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/vertex/init.py +0 -0
  156. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/vertex/memory_tools.py +0 -0
  157. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/vertex/safety.py +0 -0
  158. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo/vertex/type_dict_to_json.py +0 -0
  159. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo.egg-info/SOURCES.txt +0 -0
  160. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo.egg-info/dependency_links.txt +0 -0
  161. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo.egg-info/entry_points.txt +0 -0
  162. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo.egg-info/requires.txt +0 -0
  163. {sunholo-0.107.0 → sunholo-0.108.0}/sunholo.egg-info/top_level.txt +0 -0
  164. {sunholo-0.107.0 → sunholo-0.108.0}/tests/test_async.py +0 -0
  165. {sunholo-0.107.0 → sunholo-0.108.0}/tests/test_chat_history.py +0 -0
  166. {sunholo-0.107.0 → sunholo-0.108.0}/tests/test_config.py +0 -0
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sunholo
3
- Version: 0.107.0
3
+ Version: 0.108.0
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.107.0.tar.gz
6
+ Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.108.0.tar.gz
7
7
  Author: Holosun ApS
8
8
  Author-email: multivac@sunholo.com
9
9
  License: Apache License, Version 2.0
@@ -1,6 +1,6 @@
1
1
  from setuptools import setup, find_packages
2
2
 
3
- version = '0.107.0'
3
+ version = '0.108.0'
4
4
 
5
5
  setup(
6
6
  name='sunholo',
@@ -275,17 +275,19 @@ def _list_sources_from_docstore(sources, vector_name, search_type="OR"):
275
275
  if sources:
276
276
  conditions = and_or_ilike(sources, search_type=search_type)
277
277
  query = f"""
278
- SELECT DISTINCT langchain_metadata->>'objectId' AS objectId
278
+ SELECT source AS objectId
279
279
  FROM {table_name}
280
280
  WHERE {conditions}
281
- ORDER BY langchain_metadata->>'objectId' ASC
281
+ GROUP BY source
282
+ ORDER BY source ASC
282
283
  LIMIT 500;
283
284
  """
284
285
  else:
285
286
  query = f"""
286
- SELECT DISTINCT langchain_metadata->>'objectId' AS objectId
287
+ SELECT source AS objectId
287
288
  FROM {table_name}
288
- ORDER BY langchain_metadata->>'objectId' ASC
289
+ GROUP BY source
290
+ ORDER BY source ASC
289
291
  LIMIT 500;
290
292
  """
291
293
 
@@ -23,6 +23,8 @@ import queue
23
23
  import threading
24
24
  import time
25
25
  from concurrent.futures import ThreadPoolExecutor
26
+ import io
27
+ import wave
26
28
 
27
29
  import argparse
28
30
  import json
@@ -131,6 +133,43 @@ class StreamingTTS:
131
133
  # Convert audio bytes to numpy array for playback
132
134
  audio_np = np.frombuffer(response.audio_content, dtype=np.int16)
133
135
  return audio_np
136
+
137
+ def generate_audio_stream(self, text):
138
+ """
139
+ Generate a stream of audio data from a text chunk.
140
+ Returns audio in WAV format for streaming.
141
+
142
+ Args:
143
+ text (str): Text to convert to speech
144
+
145
+ Yields:
146
+ bytes: WAV-formatted audio data
147
+ """
148
+ try:
149
+ # Convert text to audio using existing method
150
+ audio_chunk = self.text_to_audio(text)
151
+
152
+ # Process audio chunk with fading
153
+ processed_chunk = self._apply_fade(
154
+ audio_chunk,
155
+ fade_duration=self.file_fade_duration,
156
+ fade_in=True,
157
+ fade_out=True
158
+ )
159
+
160
+ # Convert to WAV format
161
+ wav_buffer = io.BytesIO()
162
+ with wave.open(wav_buffer, 'wb') as wav_file:
163
+ wav_file.setnchannels(1)
164
+ wav_file.setsampwidth(2)
165
+ wav_file.setframerate(self.sample_rate)
166
+ wav_file.writeframes(processed_chunk.tobytes())
167
+
168
+ yield wav_buffer.getvalue()
169
+
170
+ except Exception as e:
171
+ log.error(f"Error generating audio stream: {e}")
172
+ yield b''
134
173
 
135
174
  def _initialize_audio_device(self):
136
175
  """Initialize audio device with proper settings."""
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sunholo
3
- Version: 0.107.0
3
+ Version: 0.108.0
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.107.0.tar.gz
6
+ Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.108.0.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