sunholo 0.57.0__tar.gz → 0.57.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 (99) hide show
  1. {sunholo-0.57.0 → sunholo-0.57.2}/PKG-INFO +2 -2
  2. {sunholo-0.57.0 → sunholo-0.57.2}/setup.py +1 -1
  3. sunholo-0.57.2/sunholo/__init__.py +40 -0
  4. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/agents/flask/qna_routes.py +12 -5
  5. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/components/vectorstore.py +5 -1
  6. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/streaming/content_buffer.py +1 -4
  7. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/streaming/streaming.py +2 -2
  8. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo.egg-info/PKG-INFO +2 -2
  9. sunholo-0.57.0/sunholo/patches/langchain/__init__.py +0 -0
  10. {sunholo-0.57.0 → sunholo-0.57.2}/LICENSE.txt +0 -0
  11. {sunholo-0.57.0 → sunholo-0.57.2}/MANIFEST.in +0 -0
  12. {sunholo-0.57.0 → sunholo-0.57.2}/README.md +0 -0
  13. {sunholo-0.57.0 → sunholo-0.57.2}/setup.cfg +0 -0
  14. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/agents/__init__.py +0 -0
  15. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/agents/chat_history.py +0 -0
  16. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/agents/dispatch_to_qa.py +0 -0
  17. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/agents/fastapi/__init__.py +0 -0
  18. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/agents/fastapi/base.py +0 -0
  19. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/agents/fastapi/qna_routes.py +0 -0
  20. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/agents/flask/__init__.py +0 -0
  21. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/agents/flask/base.py +0 -0
  22. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/agents/langserve.py +0 -0
  23. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/agents/pubsub.py +0 -0
  24. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/agents/route.py +0 -0
  25. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/agents/special_commands.py +0 -0
  26. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/agents/test_chat_history.py +0 -0
  27. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/archive/__init__.py +0 -0
  28. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/archive/archive.py +0 -0
  29. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/auth/__init__.py +0 -0
  30. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/auth/run.py +0 -0
  31. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/bots/__init__.py +0 -0
  32. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/bots/discord.py +0 -0
  33. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/bots/webapp.py +0 -0
  34. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/chunker/__init__.py +0 -0
  35. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/chunker/data_to_embed_pubsub.py +0 -0
  36. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/chunker/doc_handling.py +0 -0
  37. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/chunker/images.py +0 -0
  38. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/chunker/loaders.py +0 -0
  39. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/chunker/message_data.py +0 -0
  40. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/chunker/pdfs.py +0 -0
  41. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/chunker/publish.py +0 -0
  42. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/chunker/splitter.py +0 -0
  43. {sunholo-0.57.0/sunholo → sunholo-0.57.2/sunholo/cli}/__init__.py +0 -0
  44. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/cli/cli.py +0 -0
  45. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/components/__init__.py +0 -0
  46. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/components/llm.py +0 -0
  47. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/components/prompt.py +0 -0
  48. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/components/retriever.py +0 -0
  49. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/database/__init__.py +0 -0
  50. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/database/alloydb.py +0 -0
  51. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/database/database.py +0 -0
  52. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/database/lancedb.py +0 -0
  53. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/database/sql/sb/create_function.sql +0 -0
  54. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/database/sql/sb/create_function_time.sql +0 -0
  55. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/database/sql/sb/create_table.sql +0 -0
  56. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/database/sql/sb/delete_source_row.sql +0 -0
  57. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/database/sql/sb/return_sources.sql +0 -0
  58. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/database/sql/sb/setup.sql +0 -0
  59. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/database/static_dbs.py +0 -0
  60. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/database/uuid.py +0 -0
  61. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/embedder/__init__.py +0 -0
  62. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/embedder/embed_chunk.py +0 -0
  63. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/gcs/__init__.py +0 -0
  64. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/gcs/add_file.py +0 -0
  65. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/gcs/download_url.py +0 -0
  66. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/gcs/metadata.py +0 -0
  67. {sunholo-0.57.0/sunholo/cli → sunholo-0.57.2/sunholo/langfuse}/__init__.py +0 -0
  68. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/langfuse/callback.py +0 -0
  69. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/langfuse/prompts.py +0 -0
  70. {sunholo-0.57.0/sunholo/langfuse → sunholo-0.57.2/sunholo/llamaindex}/__init__.py +0 -0
  71. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/llamaindex/generate.py +0 -0
  72. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/llamaindex/import_files.py +0 -0
  73. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/logging.py +0 -0
  74. {sunholo-0.57.0/sunholo/llamaindex → sunholo-0.57.2/sunholo/lookup}/__init__.py +0 -0
  75. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/lookup/model_lookup.yaml +0 -0
  76. {sunholo-0.57.0/sunholo/lookup → sunholo-0.57.2/sunholo/patches}/__init__.py +0 -0
  77. {sunholo-0.57.0/sunholo/patches → sunholo-0.57.2/sunholo/patches/langchain}/__init__.py +0 -0
  78. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/patches/langchain/lancedb.py +0 -0
  79. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/patches/langchain/vertexai.py +0 -0
  80. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/pubsub/__init__.py +0 -0
  81. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/pubsub/process_pubsub.py +0 -0
  82. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/pubsub/pubsub_manager.py +0 -0
  83. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/qna/__init__.py +0 -0
  84. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/qna/parsers.py +0 -0
  85. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/qna/retry.py +0 -0
  86. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/streaming/__init__.py +0 -0
  87. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/streaming/langserve.py +0 -0
  88. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/summarise/__init__.py +0 -0
  89. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/summarise/summarise.py +0 -0
  90. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/utils/__init__.py +0 -0
  91. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/utils/config.py +0 -0
  92. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/utils/gcp.py +0 -0
  93. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo/utils/parsers.py +0 -0
  94. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo.egg-info/SOURCES.txt +0 -0
  95. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo.egg-info/dependency_links.txt +0 -0
  96. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo.egg-info/entry_points.txt +0 -0
  97. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo.egg-info/requires.txt +0 -0
  98. {sunholo-0.57.0 → sunholo-0.57.2}/sunholo.egg-info/top_level.txt +0 -0
  99. {sunholo-0.57.0 → sunholo-0.57.2}/test/test_dispatch_to_qa.py +0 -0
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sunholo
3
- Version: 0.57.0
3
+ Version: 0.57.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.57.0.tar.gz
6
+ Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.57.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.57.0'
4
+ version = '0.57.2'
5
5
 
6
6
  setup(
7
7
  name='sunholo',
@@ -0,0 +1,40 @@
1
+ from . import agents
2
+ from . import archive
3
+ from . import auth
4
+ from . import bots
5
+ from . import chunker
6
+ from . import cli
7
+ from . import components
8
+ from . import database
9
+ from . import embedder
10
+ from . import gcs
11
+ from . import langfuse
12
+ from . import llamaindex
13
+ from . import lookup
14
+ from . import patches
15
+ from . import pubsub
16
+ from . import qna
17
+ from . import streaming
18
+ from . import utils
19
+ import logging
20
+
21
+ __all__ = ['agents',
22
+ 'archive',
23
+ 'auth',
24
+ 'bots',
25
+ 'chunker',
26
+ 'cli',
27
+ 'components',
28
+ 'database',
29
+ 'embedder',
30
+ 'gcs',
31
+ 'langfuse',
32
+ 'llamaindex',
33
+ 'lookup',
34
+ 'patches',
35
+ 'pubsub',
36
+ 'qna',
37
+ 'streaming',
38
+ 'utils',
39
+ 'logging']
40
+
@@ -29,9 +29,16 @@ try:
29
29
  except ImportError:
30
30
  print("No flask installed for agents.flask.register_qna_routes, install via `pip install sunholo[http]`")
31
31
 
32
+ try:
33
+ from langfuse.decorators import langfuse_context, observe
34
+ except ImportError as err:
35
+ print(f"No langfuse installed for agents.flask.register_qna_routes, install via `pip install sunholo[http]` - {str(err)}")
36
+
37
+
32
38
  def register_qna_routes(app, stream_interpreter, vac_interpreter):
33
39
 
34
40
  @app.route('/vac/streaming/<vector_name>', methods=['POST'])
41
+ @observe()
35
42
  def stream_qa(vector_name):
36
43
  prep = prep_vac(request, vector_name)
37
44
  log.debug(f"Processing prep: {prep}")
@@ -54,9 +61,9 @@ def register_qna_routes(app, stream_interpreter, vac_interpreter):
54
61
  model=vac_config.get("model") or vac_config.get("llm")
55
62
  )
56
63
 
64
+ @observe()
57
65
  def generate_response_content():
58
66
 
59
- chunks = ""
60
67
  for chunk in start_streaming_chat(question=all_input["user_input"],
61
68
  vector_name=vector_name,
62
69
  qna_func=stream_interpreter,
@@ -82,9 +89,6 @@ def register_qna_routes(app, stream_interpreter, vac_interpreter):
82
89
 
83
90
  else:
84
91
  # Otherwise, we yield the plain text chunks as they come in.
85
- if chunk:
86
- chunks += chunk
87
-
88
92
  yield chunk
89
93
 
90
94
  # Here, the generator function will handle streaming the content to the client.
@@ -100,6 +104,7 @@ def register_qna_routes(app, stream_interpreter, vac_interpreter):
100
104
  return response
101
105
 
102
106
  @app.route('/vac/<vector_name>', methods=['POST'])
107
+ @observe()
103
108
  def process_qna(vector_name):
104
109
  prep = prep_vac(request, vector_name)
105
110
  log.debug(f"Processing prep: {prep}")
@@ -177,7 +182,9 @@ def create_langfuse_trace(request, vector_name):
177
182
  )
178
183
 
179
184
  def prep_vac(request, vector_name):
180
- trace = create_langfuse_trace(request, vector_name)
185
+ #trace = create_langfuse_trace(request, vector_name)
186
+ trace = None
187
+ span = None
181
188
  data = request.get_json()
182
189
  log.info(f"vac/{vector_name} got data: {data}")
183
190
  config, _ = load_config("config/llm_config.yaml")
@@ -94,7 +94,11 @@ def pick_vectorstore(vs_str, vector_name, embeddings):
94
94
  log.error(f"Could not locate LANCEDB_BUCKET environment variable for {vector_name}")
95
95
  log.info(f"LANCEDB_BUCKET environment variable found for {vector_name} - {LANCEDB_BUCKET}")
96
96
 
97
- db = lancedb.connect(LANCEDB_BUCKET)
97
+ try:
98
+ log.info(f"Attempting LanceDB connection to {vector_name} for {LANCEDB_BUCKET}")
99
+ db = lancedb.connect(LANCEDB_BUCKET)
100
+ except Exception as err:
101
+ log.error(f"Could not connect to {LANCEDB_BUCKET} - {str(err)}")
98
102
 
99
103
  log.info(f"LanceDB Tables: {db.table_names()} using {LANCEDB_BUCKET}")
100
104
  log.info(f"Opening LanceDB table: {vector_name} using {LANCEDB_BUCKET}")
@@ -51,7 +51,6 @@ class ContentBuffer:
51
51
  Adds the given text to the existing content of the buffer.
52
52
  """
53
53
  self.content += text
54
- log.debug(f"Written {text} to buffer")
55
54
 
56
55
  def read(self) -> str:
57
56
  """
@@ -61,8 +60,7 @@ class ContentBuffer:
61
60
  str: The content of the buffer.
62
61
 
63
62
  Provides the entire content stored in the buffer.
64
- """
65
- log.debug(f"Read content from buffer")
63
+ """
66
64
  return self.content
67
65
 
68
66
  def clear(self):
@@ -71,7 +69,6 @@ class ContentBuffer:
71
69
 
72
70
  Empties the buffer content, resetting it to an empty string.
73
71
  """
74
- log.debug(f"Clearing content buffer")
75
72
  self.content = ""
76
73
 
77
74
 
@@ -306,8 +306,8 @@ async def generate_proxy_stream_async(stream_to_f, user_input, vector_name, chat
306
306
  ):
307
307
  print(output) # Process each streaming output chunk
308
308
  """
309
- agent = load_config_key("agent", vector_name=vector_name, filename="config/llm_config.yaml")
310
- agent_type = load_config_key("agent_type", vector_name=vector_name, filename="config/llm_config.yaml")
309
+ agent = load_config_key("agent", vector_name=vector_name, type = "vacConfig")
310
+ agent_type = load_config_key("agent_type", vector_name=vector_name, type = "vacConfig")
311
311
 
312
312
  async def generate():
313
313
  json_buffer = ""
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sunholo
3
- Version: 0.57.0
3
+ Version: 0.57.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.57.0.tar.gz
6
+ Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.57.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