sunholo 0.89.9__tar.gz → 0.90.1__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 (160) hide show
  1. {sunholo-0.89.9 → sunholo-0.90.1}/PKG-INFO +2 -2
  2. {sunholo-0.89.9 → sunholo-0.90.1}/setup.py +1 -1
  3. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/agents/flask/vac_routes.py +16 -11
  4. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/langfuse/evals.py +6 -2
  5. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/streaming/streaming.py +1 -1
  6. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/utils/parsers.py +2 -2
  7. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo.egg-info/PKG-INFO +2 -2
  8. {sunholo-0.89.9 → sunholo-0.90.1}/LICENSE.txt +0 -0
  9. {sunholo-0.89.9 → sunholo-0.90.1}/MANIFEST.in +0 -0
  10. {sunholo-0.89.9 → sunholo-0.90.1}/README.md +0 -0
  11. {sunholo-0.89.9 → sunholo-0.90.1}/setup.cfg +0 -0
  12. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/__init__.py +0 -0
  13. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/agents/__init__.py +0 -0
  14. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/agents/chat_history.py +0 -0
  15. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/agents/dispatch_to_qa.py +0 -0
  16. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/agents/fastapi/__init__.py +0 -0
  17. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/agents/fastapi/base.py +0 -0
  18. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/agents/fastapi/qna_routes.py +0 -0
  19. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/agents/flask/__init__.py +0 -0
  20. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/agents/flask/base.py +0 -0
  21. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/agents/flask/qna_routes.py +0 -0
  22. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/agents/langserve.py +0 -0
  23. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/agents/pubsub.py +0 -0
  24. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/agents/route.py +0 -0
  25. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/agents/special_commands.py +0 -0
  26. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/agents/swagger.py +0 -0
  27. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/archive/__init__.py +0 -0
  28. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/archive/archive.py +0 -0
  29. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/auth/__init__.py +0 -0
  30. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/auth/gcloud.py +0 -0
  31. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/auth/refresh.py +0 -0
  32. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/auth/run.py +0 -0
  33. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/azure/__init__.py +0 -0
  34. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/azure/auth.py +0 -0
  35. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/azure/blobs.py +0 -0
  36. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/azure/event_grid.py +0 -0
  37. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/bots/__init__.py +0 -0
  38. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/bots/discord.py +0 -0
  39. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/bots/github_webhook.py +0 -0
  40. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/bots/webapp.py +0 -0
  41. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/chunker/__init__.py +0 -0
  42. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/chunker/azure.py +0 -0
  43. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/chunker/doc_handling.py +0 -0
  44. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/chunker/encode_metadata.py +0 -0
  45. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/chunker/images.py +0 -0
  46. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/chunker/loaders.py +0 -0
  47. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/chunker/message_data.py +0 -0
  48. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/chunker/pdfs.py +0 -0
  49. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/chunker/process_chunker_data.py +0 -0
  50. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/chunker/publish.py +0 -0
  51. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/chunker/pubsub.py +0 -0
  52. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/chunker/splitter.py +0 -0
  53. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/cli/__init__.py +0 -0
  54. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/cli/chat_vac.py +0 -0
  55. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/cli/cli.py +0 -0
  56. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/cli/cli_init.py +0 -0
  57. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/cli/configs.py +0 -0
  58. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/cli/deploy.py +0 -0
  59. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/cli/embedder.py +0 -0
  60. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/cli/merge_texts.py +0 -0
  61. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/cli/run_proxy.py +0 -0
  62. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/cli/sun_rich.py +0 -0
  63. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/cli/swagger.py +0 -0
  64. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/cli/vertex.py +0 -0
  65. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/components/__init__.py +0 -0
  66. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/components/llm.py +0 -0
  67. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/components/retriever.py +0 -0
  68. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/components/vectorstore.py +0 -0
  69. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/custom_logging.py +0 -0
  70. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/database/__init__.py +0 -0
  71. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/database/alloydb.py +0 -0
  72. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/database/alloydb_client.py +0 -0
  73. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/database/database.py +0 -0
  74. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/database/lancedb.py +0 -0
  75. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/database/sql/sb/create_function.sql +0 -0
  76. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/database/sql/sb/create_function_time.sql +0 -0
  77. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/database/sql/sb/create_table.sql +0 -0
  78. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/database/sql/sb/delete_source_row.sql +0 -0
  79. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/database/sql/sb/return_sources.sql +0 -0
  80. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/database/sql/sb/setup.sql +0 -0
  81. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/database/static_dbs.py +0 -0
  82. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/database/uuid.py +0 -0
  83. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/discovery_engine/__init__.py +0 -0
  84. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/discovery_engine/chunker_handler.py +0 -0
  85. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/discovery_engine/create_new.py +0 -0
  86. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/discovery_engine/discovery_engine_client.py +0 -0
  87. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/discovery_engine/get_ai_search_chunks.py +0 -0
  88. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/embedder/__init__.py +0 -0
  89. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/embedder/embed_chunk.py +0 -0
  90. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/excel/__init__.py +0 -0
  91. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/excel/plugin.py +0 -0
  92. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/gcs/__init__.py +0 -0
  93. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/gcs/add_file.py +0 -0
  94. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/gcs/download_folder.py +0 -0
  95. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/gcs/download_url.py +0 -0
  96. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/gcs/metadata.py +0 -0
  97. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/genai/__init__.py +0 -0
  98. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/genai/init.py +0 -0
  99. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/genai/process_funcs_cls.py +0 -0
  100. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/genai/safety.py +0 -0
  101. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/invoke/__init__.py +0 -0
  102. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/invoke/async_class.py +0 -0
  103. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/invoke/direct_vac_func.py +0 -0
  104. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/invoke/invoke_vac_utils.py +0 -0
  105. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/langfuse/__init__.py +0 -0
  106. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/langfuse/callback.py +0 -0
  107. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/langfuse/prompts.py +0 -0
  108. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/llamaindex/__init__.py +0 -0
  109. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/llamaindex/get_files.py +0 -0
  110. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/llamaindex/import_files.py +0 -0
  111. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/llamaindex/llamaindex_class.py +0 -0
  112. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/llamaindex/user_history.py +0 -0
  113. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/lookup/__init__.py +0 -0
  114. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/lookup/model_lookup.yaml +0 -0
  115. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/patches/__init__.py +0 -0
  116. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/patches/langchain/__init__.py +0 -0
  117. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/patches/langchain/lancedb.py +0 -0
  118. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/patches/langchain/vertexai.py +0 -0
  119. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/pubsub/__init__.py +0 -0
  120. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/pubsub/process_pubsub.py +0 -0
  121. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/pubsub/pubsub_manager.py +0 -0
  122. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/qna/__init__.py +0 -0
  123. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/qna/parsers.py +0 -0
  124. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/qna/retry.py +0 -0
  125. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/streaming/__init__.py +0 -0
  126. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/streaming/content_buffer.py +0 -0
  127. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/streaming/langserve.py +0 -0
  128. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/streaming/stream_lookup.py +0 -0
  129. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/summarise/__init__.py +0 -0
  130. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/summarise/summarise.py +0 -0
  131. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/terraform/__init__.py +0 -0
  132. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/terraform/tfvars_editor.py +0 -0
  133. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/tools/__init__.py +0 -0
  134. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/tools/web_browser.py +0 -0
  135. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/utils/__init__.py +0 -0
  136. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/utils/api_key.py +0 -0
  137. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/utils/big_context.py +0 -0
  138. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/utils/config.py +0 -0
  139. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/utils/config_class.py +0 -0
  140. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/utils/config_schema.py +0 -0
  141. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/utils/gcp.py +0 -0
  142. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/utils/gcp_project.py +0 -0
  143. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/utils/timedelta.py +0 -0
  144. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/utils/user_ids.py +0 -0
  145. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/utils/version.py +0 -0
  146. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/vertex/__init__.py +0 -0
  147. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/vertex/extensions_call.py +0 -0
  148. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/vertex/extensions_class.py +0 -0
  149. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/vertex/genai_functions.py +0 -0
  150. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/vertex/init.py +0 -0
  151. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/vertex/memory_tools.py +0 -0
  152. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/vertex/safety.py +0 -0
  153. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/vertex/type_dict_to_json.py +0 -0
  154. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo.egg-info/SOURCES.txt +0 -0
  155. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo.egg-info/dependency_links.txt +0 -0
  156. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo.egg-info/entry_points.txt +0 -0
  157. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo.egg-info/requires.txt +0 -0
  158. {sunholo-0.89.9 → sunholo-0.90.1}/sunholo.egg-info/top_level.txt +0 -0
  159. {sunholo-0.89.9 → sunholo-0.90.1}/tests/test_chat_history.py +0 -0
  160. {sunholo-0.89.9 → sunholo-0.90.1}/tests/test_config.py +0 -0
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sunholo
3
- Version: 0.89.9
3
+ Version: 0.90.1
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.89.9.tar.gz
6
+ Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.90.1.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.89.9'
3
+ version = '0.90.1'
4
4
 
5
5
  setup(
6
6
  name='sunholo',
@@ -187,19 +187,20 @@ if __name__ == "__main__":
187
187
  def generate_response_content():
188
188
 
189
189
  for chunk in start_streaming_chat(question=all_input["user_input"],
190
- vector_name=vector_name,
191
- qna_func=observed_stream_interpreter,
192
- chat_history=all_input["chat_history"],
193
- wait_time=all_input["stream_wait_time"],
194
- timeout=all_input["stream_timeout"],
195
- #kwargs
196
- **all_input["kwargs"]
197
- ):
190
+ vector_name=vector_name,
191
+ qna_func=observed_stream_interpreter,
192
+ chat_history=all_input["chat_history"],
193
+ wait_time=all_input["stream_wait_time"],
194
+ timeout=all_input["stream_timeout"],
195
+ trace_id=trace.id,
196
+ #kwargs
197
+ **all_input["kwargs"]
198
+ ):
198
199
  if isinstance(chunk, dict) and 'answer' in chunk:
199
200
  # When we encounter the dictionary, we yield it as a JSON string
200
201
  # and stop the generator.
201
202
  if trace:
202
- chunk["trace"] = trace.id
203
+ chunk["trace_id"] = trace.id
203
204
  chunk["trace_url"] = trace.get_trace_url()
204
205
  archive_qa(chunk, vector_name)
205
206
  if trace:
@@ -281,6 +282,7 @@ if __name__ == "__main__":
281
282
  question=all_input["user_input"],
282
283
  vector_name=vector_name,
283
284
  chat_history=all_input["chat_history"],
285
+ trace_id=trace.id,
284
286
  **all_input["kwargs"]
285
287
  )
286
288
  if span:
@@ -288,7 +290,7 @@ if __name__ == "__main__":
288
290
  # {"answer": "The answer", "source_documents": [{"page_content": "The page content", "metadata": "The metadata"}]}
289
291
  bot_output = parse_output(bot_output)
290
292
  if trace:
291
- bot_output["trace"] = trace.id
293
+ bot_output["trace_id"] = trace.id
292
294
  bot_output["trace_url"] = trace.get_trace_url()
293
295
  archive_qa(bot_output, vector_name)
294
296
  log.info(f'==LLM Q:{all_input["user_input"]} - A:{bot_output}')
@@ -363,6 +365,8 @@ if __name__ == "__main__":
363
365
  image_uri = None
364
366
  mime_type = None
365
367
 
368
+
369
+
366
370
  for msg in reversed(messages):
367
371
  if msg['role'] == 'user':
368
372
  if isinstance(msg['content'], list):
@@ -409,6 +413,7 @@ if __name__ == "__main__":
409
413
  chat_history=all_input["chat_history"],
410
414
  wait_time=all_input.get("stream_wait_time", 1),
411
415
  timeout=all_input.get("stream_timeout", 60),
416
+ trace_id=all_input.get("trace_id"),
412
417
  **all_input["kwargs"]
413
418
  ):
414
419
  if isinstance(chunk, dict) and 'answer' in chunk:
@@ -522,7 +527,7 @@ if __name__ == "__main__":
522
527
 
523
528
  log.info(f"vac/{vector_name} got data: {data}")
524
529
 
525
- trace_id = data.get('trace_id')
530
+ trace_id = data.pop('trace_id')
526
531
  trace = self.create_langfuse_trace(request, vector_name, trace_id)
527
532
  span = None
528
533
 
@@ -68,13 +68,17 @@ def do_evals(trace_id, eval_funcs: list=[eval_length], **kwargs) -> dict:
68
68
  # Run the evaluation functions
69
69
  eval_results = []
70
70
  for eval_func in eval_funcs:
71
- eval_result = eval_func(trace) # Assuming eval_func returns a dict with 'score' and 'reason'
71
+ try:
72
+ eval_result = eval_func(trace) # Assuming eval_func returns a dict with 'score' and 'reason'
73
+ except Exception as e:
74
+ eval_result = {"score": 0, "reason":f"ERROR: {str(e)}"}
72
75
  eval_results.append(eval_result)
73
76
 
74
77
  eval_name = eval_func.__name__
75
78
 
76
79
  if 'score' and 'reason' not in eval_result:
77
- raise ValueError(f"Trace {trace.name} using {eval_name=} did not return a dict with 'score' and 'reason': {eval_result=}")
80
+ log.error(f"Trace {trace.name} using {eval_name=} did not return a dict with 'score' and 'reason': {eval_result=}")
81
+ eval_result = {"score": 0, "reason": f"malformed eval_result: {eval_result}"}
78
82
 
79
83
  log.info(f"TraceId {trace.id} with name {trace.name} had {eval_name=} with score {eval_result=}")
80
84
 
@@ -22,7 +22,7 @@ from .content_buffer import ContentBuffer, BufferStreamingStdOutCallbackHandler
22
22
  from ..qna.parsers import parse_output
23
23
 
24
24
  from ..custom_logging import log
25
- from ..utils import load_config_key, ConfigManager
25
+ from ..utils import ConfigManager
26
26
  from ..utils.parsers import check_kwargs_support
27
27
 
28
28
  from .langserve import parse_langserve_token, parse_langserve_token_async
@@ -217,10 +217,10 @@ def escape_braces(text):
217
217
  """
218
218
  # First, handle cases where there might be a mix of braces
219
219
  # Replace all `{` that are not followed by another `{` with `{{`
220
- text = re.sub(r'(?<!{){(?!{)', '{{', text)
220
+ text = re.sub(r'(?<!{){(?!{)', '<<', text)
221
221
 
222
222
  # Replace all `}` that are not preceded by another `}` with `}}`
223
- text = re.sub(r'(?<!})}(?!})', '}}', text)
223
+ text = re.sub(r'(?<!})}(?!})', '>>', text)
224
224
 
225
225
  # After escaping single braces, return the modified text
226
226
  return text
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sunholo
3
- Version: 0.89.9
3
+ Version: 0.90.1
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.89.9.tar.gz
6
+ Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.90.1.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