sunholo 0.101.0__tar.gz → 0.101.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 (164) hide show
  1. {sunholo-0.101.0 → sunholo-0.101.2}/PKG-INFO +2 -2
  2. {sunholo-0.101.0 → sunholo-0.101.2}/setup.py +1 -1
  3. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/genai/process_funcs_cls.py +27 -2
  4. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/langfuse/prompts.py +36 -4
  5. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo.egg-info/PKG-INFO +2 -2
  6. {sunholo-0.101.0 → sunholo-0.101.2}/LICENSE.txt +0 -0
  7. {sunholo-0.101.0 → sunholo-0.101.2}/MANIFEST.in +0 -0
  8. {sunholo-0.101.0 → sunholo-0.101.2}/README.md +0 -0
  9. {sunholo-0.101.0 → sunholo-0.101.2}/setup.cfg +0 -0
  10. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/__init__.py +0 -0
  11. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/agents/__init__.py +0 -0
  12. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/agents/chat_history.py +0 -0
  13. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/agents/dispatch_to_qa.py +0 -0
  14. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/agents/fastapi/__init__.py +0 -0
  15. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/agents/fastapi/base.py +0 -0
  16. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/agents/fastapi/qna_routes.py +0 -0
  17. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/agents/flask/__init__.py +0 -0
  18. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/agents/flask/base.py +0 -0
  19. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/agents/flask/qna_routes.py +0 -0
  20. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/agents/flask/vac_routes.py +0 -0
  21. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/agents/langserve.py +0 -0
  22. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/agents/pubsub.py +0 -0
  23. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/agents/route.py +0 -0
  24. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/agents/special_commands.py +0 -0
  25. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/agents/swagger.py +0 -0
  26. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/archive/__init__.py +0 -0
  27. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/archive/archive.py +0 -0
  28. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/auth/__init__.py +0 -0
  29. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/auth/gcloud.py +0 -0
  30. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/auth/refresh.py +0 -0
  31. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/auth/run.py +0 -0
  32. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/azure/__init__.py +0 -0
  33. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/azure/auth.py +0 -0
  34. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/azure/blobs.py +0 -0
  35. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/azure/event_grid.py +0 -0
  36. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/bots/__init__.py +0 -0
  37. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/bots/discord.py +0 -0
  38. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/bots/github_webhook.py +0 -0
  39. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/bots/webapp.py +0 -0
  40. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/chunker/__init__.py +0 -0
  41. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/chunker/azure.py +0 -0
  42. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/chunker/doc_handling.py +0 -0
  43. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/chunker/encode_metadata.py +0 -0
  44. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/chunker/images.py +0 -0
  45. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/chunker/loaders.py +0 -0
  46. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/chunker/message_data.py +0 -0
  47. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/chunker/pdfs.py +0 -0
  48. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/chunker/process_chunker_data.py +0 -0
  49. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/chunker/publish.py +0 -0
  50. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/chunker/pubsub.py +0 -0
  51. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/chunker/splitter.py +0 -0
  52. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/cli/__init__.py +0 -0
  53. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/cli/chat_vac.py +0 -0
  54. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/cli/cli.py +0 -0
  55. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/cli/cli_init.py +0 -0
  56. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/cli/configs.py +0 -0
  57. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/cli/deploy.py +0 -0
  58. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/cli/embedder.py +0 -0
  59. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/cli/merge_texts.py +0 -0
  60. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/cli/run_proxy.py +0 -0
  61. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/cli/sun_rich.py +0 -0
  62. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/cli/swagger.py +0 -0
  63. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/cli/vertex.py +0 -0
  64. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/components/__init__.py +0 -0
  65. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/components/llm.py +0 -0
  66. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/components/retriever.py +0 -0
  67. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/components/vectorstore.py +0 -0
  68. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/custom_logging.py +0 -0
  69. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/database/__init__.py +0 -0
  70. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/database/alloydb.py +0 -0
  71. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/database/alloydb_client.py +0 -0
  72. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/database/database.py +0 -0
  73. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/database/lancedb.py +0 -0
  74. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/database/sql/sb/create_function.sql +0 -0
  75. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/database/sql/sb/create_function_time.sql +0 -0
  76. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/database/sql/sb/create_table.sql +0 -0
  77. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/database/sql/sb/delete_source_row.sql +0 -0
  78. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/database/sql/sb/return_sources.sql +0 -0
  79. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/database/sql/sb/setup.sql +0 -0
  80. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/database/static_dbs.py +0 -0
  81. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/database/uuid.py +0 -0
  82. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/discovery_engine/__init__.py +0 -0
  83. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/discovery_engine/chunker_handler.py +0 -0
  84. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/discovery_engine/create_new.py +0 -0
  85. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/discovery_engine/discovery_engine_client.py +0 -0
  86. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/discovery_engine/get_ai_search_chunks.py +0 -0
  87. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/embedder/__init__.py +0 -0
  88. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/embedder/embed_chunk.py +0 -0
  89. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/excel/__init__.py +0 -0
  90. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/excel/plugin.py +0 -0
  91. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/gcs/__init__.py +0 -0
  92. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/gcs/add_file.py +0 -0
  93. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/gcs/download_folder.py +0 -0
  94. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/gcs/download_url.py +0 -0
  95. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/gcs/extract_and_sign.py +0 -0
  96. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/gcs/metadata.py +0 -0
  97. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/genai/__init__.py +0 -0
  98. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/genai/images.py +0 -0
  99. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/genai/init.py +0 -0
  100. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/genai/safety.py +0 -0
  101. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/invoke/__init__.py +0 -0
  102. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/invoke/async_class.py +0 -0
  103. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/invoke/direct_vac_func.py +0 -0
  104. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/invoke/invoke_vac_utils.py +0 -0
  105. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/langfuse/__init__.py +0 -0
  106. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/langfuse/callback.py +0 -0
  107. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/langfuse/evals.py +0 -0
  108. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/llamaindex/__init__.py +0 -0
  109. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/llamaindex/get_files.py +0 -0
  110. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/llamaindex/import_files.py +0 -0
  111. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/llamaindex/llamaindex_class.py +0 -0
  112. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/llamaindex/user_history.py +0 -0
  113. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/lookup/__init__.py +0 -0
  114. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/lookup/model_lookup.yaml +0 -0
  115. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/patches/__init__.py +0 -0
  116. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/patches/langchain/__init__.py +0 -0
  117. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/patches/langchain/lancedb.py +0 -0
  118. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/patches/langchain/vertexai.py +0 -0
  119. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/pubsub/__init__.py +0 -0
  120. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/pubsub/process_pubsub.py +0 -0
  121. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/pubsub/pubsub_manager.py +0 -0
  122. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/qna/__init__.py +0 -0
  123. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/qna/parsers.py +0 -0
  124. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/qna/retry.py +0 -0
  125. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/streaming/__init__.py +0 -0
  126. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/streaming/content_buffer.py +0 -0
  127. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/streaming/langserve.py +0 -0
  128. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/streaming/stream_lookup.py +0 -0
  129. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/streaming/streaming.py +0 -0
  130. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/summarise/__init__.py +0 -0
  131. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/summarise/summarise.py +0 -0
  132. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/terraform/__init__.py +0 -0
  133. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/terraform/tfvars_editor.py +0 -0
  134. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/tools/__init__.py +0 -0
  135. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/tools/web_browser.py +0 -0
  136. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/utils/__init__.py +0 -0
  137. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/utils/api_key.py +0 -0
  138. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/utils/big_context.py +0 -0
  139. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/utils/config.py +0 -0
  140. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/utils/config_class.py +0 -0
  141. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/utils/config_schema.py +0 -0
  142. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/utils/gcp.py +0 -0
  143. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/utils/gcp_project.py +0 -0
  144. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/utils/mime.py +0 -0
  145. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/utils/parsers.py +0 -0
  146. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/utils/timedelta.py +0 -0
  147. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/utils/user_ids.py +0 -0
  148. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/utils/version.py +0 -0
  149. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/vertex/__init__.py +0 -0
  150. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/vertex/extensions_call.py +0 -0
  151. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/vertex/extensions_class.py +0 -0
  152. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/vertex/genai_functions.py +0 -0
  153. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/vertex/init.py +0 -0
  154. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/vertex/memory_tools.py +0 -0
  155. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/vertex/safety.py +0 -0
  156. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo/vertex/type_dict_to_json.py +0 -0
  157. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo.egg-info/SOURCES.txt +0 -0
  158. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo.egg-info/dependency_links.txt +0 -0
  159. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo.egg-info/entry_points.txt +0 -0
  160. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo.egg-info/requires.txt +0 -0
  161. {sunholo-0.101.0 → sunholo-0.101.2}/sunholo.egg-info/top_level.txt +0 -0
  162. {sunholo-0.101.0 → sunholo-0.101.2}/tests/test_async.py +0 -0
  163. {sunholo-0.101.0 → sunholo-0.101.2}/tests/test_chat_history.py +0 -0
  164. {sunholo-0.101.0 → sunholo-0.101.2}/tests/test_config.py +0 -0
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sunholo
3
- Version: 0.101.0
3
+ Version: 0.101.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.101.0.tar.gz
6
+ Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.101.2.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.101.0'
3
+ version = '0.101.2'
4
4
 
5
5
  setup(
6
6
  name='sunholo',
@@ -14,13 +14,16 @@ try:
14
14
  import proto
15
15
  from google.generativeai.types import RequestOptions
16
16
  from google.api_core import retry
17
+ from google.generativeai import ChatSession
17
18
  except ImportError:
18
19
  genai = None
20
+ ChatSession = None
19
21
 
20
22
  from .images import extract_gs_images_and_genai_upload
21
23
 
22
24
  if TYPE_CHECKING:
23
25
  from google.generativeai.protos import Part
26
+ from google.generativeai import ChatSession
24
27
 
25
28
 
26
29
 
@@ -369,8 +372,28 @@ class GenAIFunctionProcessor:
369
372
  log.info(f"Cleaning:\n{string}\n > to >\n{clean}")
370
373
 
371
374
  return clean
375
+
376
+ def convert_composite_to_native(self, value):
377
+ """
378
+ Recursively converts a proto MapComposite or RepeatedComposite object to native Python types.
379
+
380
+ Args:
381
+ value: The proto object, which could be a MapComposite, RepeatedComposite, or a primitive.
382
+
383
+ Returns:
384
+ The equivalent Python dictionary, list, or primitive type.
385
+ """
386
+ if isinstance(value, proto.marshal.collections.maps.MapComposite):
387
+ # Convert MapComposite to a dictionary, recursively processing its values
388
+ return {key: self.convert_composite_to_native(val) for key, val in value.items()}
389
+ elif isinstance(value, proto.marshal.collections.repeated.RepeatedComposite):
390
+ # Convert RepeatedComposite to a list, recursively processing its elements
391
+ return [self.convert_composite_to_native(item) for item in value]
392
+ else:
393
+ # If it's a primitive value, return it as is
394
+ return value
372
395
 
373
- def run_agent_loop(self, chat, content, callback=None, guardrail_max=10, loop_return=3):
396
+ def run_agent_loop(self, chat:ChatSession, content:list, callback=None, guardrail_max=10, loop_return=3):
374
397
  """
375
398
  Runs the agent loop, sending messages to the orchestrator, processing responses, and executing functions.
376
399
 
@@ -488,7 +511,9 @@ class GenAIFunctionProcessor:
488
511
  fn_result_json = None
489
512
  # Convert MapComposite to a standard Python dictionary
490
513
  if isinstance(fn_result, proto.marshal.collections.maps.MapComposite):
491
- fn_result_json = dict(fn_result)
514
+ fn_result_json = self.convert_composite_to_native(fn_result)
515
+ elif isinstance(fn_result, proto.marshal.collections.repeated.RepeatedComposite):
516
+ fn_result = self.convert_composite_to_native(fn_result)
492
517
  elif isinstance(fn_result, dict):
493
518
  fn_result_json = fn_result
494
519
  elif isinstance(fn_result, str):
@@ -6,17 +6,49 @@ def load_prompt_from_yaml(key, prefix="sunholo", load_from_file=False, f_string=
6
6
  """
7
7
  Returns a string you can use with prompts.
8
8
 
9
- Will first try to load from the Langfuse prompt library, if unavailable will look in promptConfig type file.
9
+ If load_from_file=False, by default it will try to load from Langfuse, if fails (which is laggy so not ideal) then load from file.
10
+
11
+ Prompts on Langfuse should be specified with a name with {prefix}-{key} e.g. "sunholo-hello"
12
+
13
+ Prompts in files will use yaml:
14
+
15
+ ```yaml
16
+ kind: promptConfig
17
+ apiVersion: v1
18
+ prompts:
19
+ sunholo:
20
+ hello: |
21
+ Say hello to {name}
22
+ ```
23
+
24
+ And load via utils.ConfigManager:
25
+
26
+ ```python
27
+ # equivalent to load_prompt_from_yaml("hello", load_from_file=True)
28
+ config = ConfigManager("sunholo")
29
+ config.promptConfig("hello")
30
+ ```
10
31
 
11
32
  If f_string is True will be in a Langchain style prompt e.g. { one brace }
12
- If f_string is False will be Langfuse style prompt e.g. {{ two braces }}
33
+ If f_string is False will be Langfuse style prompt e.g. {{ two braces }} - see https://langfuse.com/docs/prompts/get-started
13
34
 
14
35
  Example:
15
36
 
16
37
  ```python
17
38
  from sunholo.langfuse.prompts import load_prompt_from_yaml
18
- from langchain_core.prompts import PromptTemplate
19
-
39
+ # f_string
40
+ hello_template = load_prompt_from_yaml("hello")
41
+ hello_template.format(name="Bob")
42
+
43
+ #langfuse style
44
+ hello_template = load_prompt_from_yaml("hello", f_string=False)
45
+ hello_template.compile(name="Bob")
46
+
47
+ # if prompt not available on langfuse, will attempt to load from local promptConfig file
48
+ hello_template = load_prompt_from_yaml("hello", load_from_file=True)
49
+
50
+ ```
51
+
20
52
  """
21
53
  config = ConfigManager(prefix)
22
54
  if load_from_file:
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sunholo
3
- Version: 0.101.0
3
+ Version: 0.101.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.101.0.tar.gz
6
+ Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.101.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