sunholo 0.84.8__tar.gz → 0.84.9__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 (154) hide show
  1. {sunholo-0.84.8 → sunholo-0.84.9}/PKG-INFO +2 -2
  2. {sunholo-0.84.8 → sunholo-0.84.9}/setup.py +1 -1
  3. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/genai/process_funcs_cls.py +98 -21
  4. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo.egg-info/PKG-INFO +2 -2
  5. {sunholo-0.84.8 → sunholo-0.84.9}/LICENSE.txt +0 -0
  6. {sunholo-0.84.8 → sunholo-0.84.9}/MANIFEST.in +0 -0
  7. {sunholo-0.84.8 → sunholo-0.84.9}/README.md +0 -0
  8. {sunholo-0.84.8 → sunholo-0.84.9}/setup.cfg +0 -0
  9. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/__init__.py +0 -0
  10. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/agents/__init__.py +0 -0
  11. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/agents/chat_history.py +0 -0
  12. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/agents/dispatch_to_qa.py +0 -0
  13. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/agents/fastapi/__init__.py +0 -0
  14. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/agents/fastapi/base.py +0 -0
  15. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/agents/fastapi/qna_routes.py +0 -0
  16. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/agents/flask/__init__.py +0 -0
  17. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/agents/flask/base.py +0 -0
  18. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/agents/flask/qna_routes.py +0 -0
  19. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/agents/flask/vac_routes.py +0 -0
  20. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/agents/langserve.py +0 -0
  21. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/agents/pubsub.py +0 -0
  22. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/agents/route.py +0 -0
  23. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/agents/special_commands.py +0 -0
  24. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/agents/swagger.py +0 -0
  25. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/archive/__init__.py +0 -0
  26. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/archive/archive.py +0 -0
  27. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/auth/__init__.py +0 -0
  28. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/auth/gcloud.py +0 -0
  29. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/auth/refresh.py +0 -0
  30. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/auth/run.py +0 -0
  31. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/azure/__init__.py +0 -0
  32. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/azure/auth.py +0 -0
  33. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/azure/blobs.py +0 -0
  34. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/azure/event_grid.py +0 -0
  35. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/bots/__init__.py +0 -0
  36. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/bots/discord.py +0 -0
  37. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/bots/github_webhook.py +0 -0
  38. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/bots/webapp.py +0 -0
  39. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/chunker/__init__.py +0 -0
  40. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/chunker/azure.py +0 -0
  41. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/chunker/doc_handling.py +0 -0
  42. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/chunker/encode_metadata.py +0 -0
  43. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/chunker/images.py +0 -0
  44. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/chunker/loaders.py +0 -0
  45. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/chunker/message_data.py +0 -0
  46. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/chunker/pdfs.py +0 -0
  47. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/chunker/process_chunker_data.py +0 -0
  48. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/chunker/publish.py +0 -0
  49. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/chunker/pubsub.py +0 -0
  50. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/chunker/splitter.py +0 -0
  51. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/cli/__init__.py +0 -0
  52. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/cli/chat_vac.py +0 -0
  53. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/cli/cli.py +0 -0
  54. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/cli/cli_init.py +0 -0
  55. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/cli/configs.py +0 -0
  56. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/cli/deploy.py +0 -0
  57. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/cli/embedder.py +0 -0
  58. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/cli/merge_texts.py +0 -0
  59. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/cli/run_proxy.py +0 -0
  60. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/cli/sun_rich.py +0 -0
  61. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/cli/swagger.py +0 -0
  62. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/cli/vertex.py +0 -0
  63. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/components/__init__.py +0 -0
  64. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/components/llm.py +0 -0
  65. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/components/retriever.py +0 -0
  66. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/components/vectorstore.py +0 -0
  67. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/custom_logging.py +0 -0
  68. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/database/__init__.py +0 -0
  69. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/database/alloydb.py +0 -0
  70. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/database/alloydb_client.py +0 -0
  71. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/database/database.py +0 -0
  72. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/database/lancedb.py +0 -0
  73. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/database/sql/sb/create_function.sql +0 -0
  74. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/database/sql/sb/create_function_time.sql +0 -0
  75. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/database/sql/sb/create_table.sql +0 -0
  76. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/database/sql/sb/delete_source_row.sql +0 -0
  77. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/database/sql/sb/return_sources.sql +0 -0
  78. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/database/sql/sb/setup.sql +0 -0
  79. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/database/static_dbs.py +0 -0
  80. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/database/uuid.py +0 -0
  81. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/discovery_engine/__init__.py +0 -0
  82. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/discovery_engine/chunker_handler.py +0 -0
  83. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/discovery_engine/create_new.py +0 -0
  84. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/discovery_engine/discovery_engine_client.py +0 -0
  85. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/discovery_engine/get_ai_search_chunks.py +0 -0
  86. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/embedder/__init__.py +0 -0
  87. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/embedder/embed_chunk.py +0 -0
  88. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/gcs/__init__.py +0 -0
  89. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/gcs/add_file.py +0 -0
  90. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/gcs/download_folder.py +0 -0
  91. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/gcs/download_url.py +0 -0
  92. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/gcs/metadata.py +0 -0
  93. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/genai/__init__.py +0 -0
  94. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/genai/safety.py +0 -0
  95. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/invoke/__init__.py +0 -0
  96. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/invoke/async_class.py +0 -0
  97. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/invoke/direct_vac_func.py +0 -0
  98. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/invoke/invoke_vac_utils.py +0 -0
  99. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/langfuse/__init__.py +0 -0
  100. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/langfuse/callback.py +0 -0
  101. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/langfuse/prompts.py +0 -0
  102. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/llamaindex/__init__.py +0 -0
  103. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/llamaindex/get_files.py +0 -0
  104. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/llamaindex/import_files.py +0 -0
  105. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/llamaindex/llamaindex_class.py +0 -0
  106. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/llamaindex/user_history.py +0 -0
  107. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/lookup/__init__.py +0 -0
  108. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/lookup/model_lookup.yaml +0 -0
  109. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/patches/__init__.py +0 -0
  110. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/patches/langchain/__init__.py +0 -0
  111. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/patches/langchain/lancedb.py +0 -0
  112. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/patches/langchain/vertexai.py +0 -0
  113. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/pubsub/__init__.py +0 -0
  114. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/pubsub/process_pubsub.py +0 -0
  115. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/pubsub/pubsub_manager.py +0 -0
  116. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/qna/__init__.py +0 -0
  117. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/qna/parsers.py +0 -0
  118. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/qna/retry.py +0 -0
  119. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/streaming/__init__.py +0 -0
  120. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/streaming/content_buffer.py +0 -0
  121. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/streaming/langserve.py +0 -0
  122. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/streaming/stream_lookup.py +0 -0
  123. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/streaming/streaming.py +0 -0
  124. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/summarise/__init__.py +0 -0
  125. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/summarise/summarise.py +0 -0
  126. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/tools/__init__.py +0 -0
  127. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/tools/web_browser.py +0 -0
  128. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/utils/__init__.py +0 -0
  129. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/utils/api_key.py +0 -0
  130. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/utils/big_context.py +0 -0
  131. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/utils/config.py +0 -0
  132. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/utils/config_class.py +0 -0
  133. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/utils/config_schema.py +0 -0
  134. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/utils/gcp.py +0 -0
  135. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/utils/gcp_project.py +0 -0
  136. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/utils/parsers.py +0 -0
  137. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/utils/timedelta.py +0 -0
  138. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/utils/user_ids.py +0 -0
  139. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/utils/version.py +0 -0
  140. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/vertex/__init__.py +0 -0
  141. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/vertex/extensions_call.py +0 -0
  142. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/vertex/extensions_class.py +0 -0
  143. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/vertex/genai_functions.py +0 -0
  144. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/vertex/init.py +0 -0
  145. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/vertex/memory_tools.py +0 -0
  146. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/vertex/safety.py +0 -0
  147. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo/vertex/type_dict_to_json.py +0 -0
  148. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo.egg-info/SOURCES.txt +0 -0
  149. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo.egg-info/dependency_links.txt +0 -0
  150. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo.egg-info/entry_points.txt +0 -0
  151. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo.egg-info/requires.txt +0 -0
  152. {sunholo-0.84.8 → sunholo-0.84.9}/sunholo.egg-info/top_level.txt +0 -0
  153. {sunholo-0.84.8 → sunholo-0.84.9}/tests/test_chat_history.py +0 -0
  154. {sunholo-0.84.8 → sunholo-0.84.9}/tests/test_config.py +0 -0
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sunholo
3
- Version: 0.84.8
3
+ Version: 0.84.9
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.84.8.tar.gz
6
+ Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.84.9.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.84.8'
4
+ version = '0.84.9'
5
5
 
6
6
  setup(
7
7
  name='sunholo',
@@ -59,6 +59,7 @@ class GenAIFunctionProcessor:
59
59
  self.config = config
60
60
  self.funcs = self.construct_tools()
61
61
  self.model_name = config.vacConfig("model") or "gemini-1.5-flash"
62
+ self.last_api_requests_and_responses = []
62
63
  self._validate_functions()
63
64
 
64
65
  def construct_tools(self) -> dict:
@@ -91,6 +92,84 @@ class GenAIFunctionProcessor:
91
92
  if not func.__doc__:
92
93
  log.error(f"Function {func_name} is missing a docstring.")
93
94
  raise ValueError(f"Function {func_name} must have a docstring to be used as a genai tool.")
95
+
96
+
97
+ def parse_as_parts(self, api_requests_and_responses=[]):
98
+ if not api_requests_and_responses and not self.last_api_requests_and_responses:
99
+ log.info("No api_requests_and_responses found to parse to parts")
100
+ return None
101
+
102
+ if api_requests_and_responses:
103
+ self.last_api_requests_and_responses = api_requests_and_responses
104
+
105
+ from google.generativeai.protos import Part
106
+
107
+ work_on = api_requests_and_responses or self.last_api_requests_and_responses
108
+ parts = []
109
+ for part in work_on:
110
+ parts.append(
111
+ Part(
112
+ function_response=genai.protos.FunctionResponse(
113
+ name=part[0],
114
+ response={"result": part[2]}
115
+ )
116
+ )
117
+ )
118
+
119
+ return parts
120
+
121
+ def check_function_result(self, function_name, target_value, api_requests_and_responses=[]):
122
+ """
123
+ Checks if a specific function result in the api_requests_and_responses contains a certain value.
124
+
125
+ Args:
126
+ function_name (str): The name of the function to check.
127
+ target_value: The value to look for in the function result.
128
+ api_requests_and_responses (list, optional): List of function call results to check.
129
+ If not provided, the method will use `self.last_api_requests_and_responses`.
130
+
131
+ Returns:
132
+ bool: True if the target_value is found in the specified function's result, otherwise False.
133
+ """
134
+ if not api_requests_and_responses:
135
+ api_requests_and_responses = self.last_api_requests_and_responses
136
+
137
+ if not api_requests_and_responses:
138
+ log.info("No api_requests_and_responses found to check.")
139
+ return False
140
+
141
+ for part in api_requests_and_responses:
142
+ func_name = part[0]
143
+ result = part[2]
144
+
145
+ if func_name == function_name:
146
+ if isinstance(result, list) and target_value in result:
147
+ log.info(f"Target value '{target_value}' found in the result of function '{function_name}'.")
148
+ return True
149
+ elif result == target_value:
150
+ log.info(f"Target value '{target_value}' found in the result of function '{function_name}'.")
151
+ return True
152
+
153
+ log.info(f"Target value '{target_value}' not found in the result of function '{function_name}'.")
154
+ return False
155
+
156
+ def parse_as_string(self, api_requests_and_responses=[]):
157
+ if not api_requests_and_responses and not self.last_api_requests_and_responses:
158
+ log.info("No api_requests_and_response found to parse to string")
159
+ return None
160
+
161
+ if api_requests_and_responses:
162
+ self.last_api_requests_and_responses = api_requests_and_responses
163
+
164
+ work_on = api_requests_and_responses or self.last_api_requests_and_responses
165
+ strings = []
166
+ for part in work_on:
167
+ strings.append(
168
+ f"function tool {part[0]} was called with arguments: {part[1]} and got this result:\n"
169
+ f"<{part[0]}_result>{part[2]}</{part[0]}_result>"
170
+ )
171
+
172
+ return strings
94
173
 
95
174
  def process_funcs(self, full_response, output_parts=True) -> Union[list['Part'], str]:
96
175
  """
@@ -112,8 +191,6 @@ class GenAIFunctionProcessor:
112
191
  results = alloydb_processor.process_funcs(full_response)
113
192
  ```
114
193
  """
115
- from google.generativeai.protos import Part
116
-
117
194
  api_requests_and_responses = []
118
195
 
119
196
  # Loop through each part in the response to handle multiple function calls
@@ -144,30 +221,28 @@ class GenAIFunctionProcessor:
144
221
  log.error(f"Function {function_name} is not recognized")
145
222
 
146
223
  log.info(f"{api_requests_and_responses=}")
224
+ self.last_api_requests_and_responses = api_requests_and_responses
147
225
 
148
226
  if output_parts:
149
- parts = []
150
- for part in api_requests_and_responses:
151
- parts.append(
152
- Part(
153
- function_response=genai.protos.FunctionResponse(
154
- name=part[0],
155
- response={"result": part[2]}
156
- )
157
- )
158
- )
159
- return parts
227
+ return self.parse_as_parts()
228
+
229
+ return self.parse_as_string()
230
+
231
+ def tool_config_setting(self, mode:str):
232
+ from google.generativeai.types import content_types
160
233
 
161
- strings = []
162
- for part in api_requests_and_responses:
163
- strings.append(
164
- f"function tool {part[0]} was called with arguments: {part[1]} and got this result:\n"
165
- f"<{part[0]}_result>{part[2]}</{part[0]}_result>"
166
- )
234
+ fns = list(self.funcs.keys())
167
235
 
168
- return strings
236
+ return content_types.to_tool_config(
237
+ {"function_calling_config": {"mode": mode, "allowed_function_names": fns}}
238
+ )
169
239
 
170
- def get_model(self, system_instruction: str, generation_config=None, model_name: str=None):
240
+ def get_model(
241
+ self,
242
+ system_instruction: str,
243
+ generation_config=None,
244
+ model_name: str=None,
245
+ tool_config: str="auto"):
171
246
  """
172
247
  Constructs and returns the generative AI model configured with the tools.
173
248
 
@@ -178,6 +253,7 @@ class GenAIFunctionProcessor:
178
253
  model_name (str): The name of the model to use.
179
254
  system_instruction (str): Instructions for the AI system.
180
255
  generation_config (dict, optional): Configuration for generation, such as temperature.
256
+ tool_config (str, optional): Configuration for tool behaviour: 'auto' it decides, 'none' no tools, 'any' always use tools
181
257
 
182
258
  Returns:
183
259
  GenerativeModel: An instance of the GenerativeModel configured with the provided tools.
@@ -204,6 +280,7 @@ class GenAIFunctionProcessor:
204
280
  model = genai.GenerativeModel(
205
281
  model_name=model_name or self.model_name,
206
282
  tools=tools,
283
+ tool_config=self.tool_config_setting(tool_config),
207
284
  generation_config=generation_config,
208
285
  safety_settings=genai_safety(),
209
286
  system_instruction=system_instruction,
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sunholo
3
- Version: 0.84.8
3
+ Version: 0.84.9
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.84.8.tar.gz
6
+ Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.84.9.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