unique_toolkit 0.7.9__py3-none-any.whl → 1.33.3__py3-none-any.whl

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 (190) hide show
  1. unique_toolkit/__init__.py +36 -3
  2. unique_toolkit/_common/api_calling/human_verification_manager.py +357 -0
  3. unique_toolkit/_common/base_model_type_attribute.py +303 -0
  4. unique_toolkit/_common/chunk_relevancy_sorter/config.py +49 -0
  5. unique_toolkit/_common/chunk_relevancy_sorter/exception.py +5 -0
  6. unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +46 -0
  7. unique_toolkit/_common/chunk_relevancy_sorter/service.py +374 -0
  8. unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +275 -0
  9. unique_toolkit/_common/default_language_model.py +12 -0
  10. unique_toolkit/_common/docx_generator/__init__.py +7 -0
  11. unique_toolkit/_common/docx_generator/config.py +12 -0
  12. unique_toolkit/_common/docx_generator/schemas.py +80 -0
  13. unique_toolkit/_common/docx_generator/service.py +225 -0
  14. unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
  15. unique_toolkit/_common/endpoint_builder.py +368 -0
  16. unique_toolkit/_common/endpoint_requestor.py +480 -0
  17. unique_toolkit/_common/exception.py +24 -0
  18. unique_toolkit/_common/experimental/endpoint_builder.py +368 -0
  19. unique_toolkit/_common/experimental/endpoint_requestor.py +488 -0
  20. unique_toolkit/_common/feature_flags/schema.py +9 -0
  21. unique_toolkit/_common/pydantic/rjsf_tags.py +936 -0
  22. unique_toolkit/_common/pydantic_helpers.py +174 -0
  23. unique_toolkit/_common/referencing.py +53 -0
  24. unique_toolkit/_common/string_utilities.py +140 -0
  25. unique_toolkit/_common/tests/test_referencing.py +521 -0
  26. unique_toolkit/_common/tests/test_string_utilities.py +506 -0
  27. unique_toolkit/_common/token/image_token_counting.py +67 -0
  28. unique_toolkit/_common/token/token_counting.py +204 -0
  29. unique_toolkit/_common/utils/__init__.py +1 -0
  30. unique_toolkit/_common/utils/files.py +43 -0
  31. unique_toolkit/_common/utils/image/encode.py +25 -0
  32. unique_toolkit/_common/utils/jinja/helpers.py +10 -0
  33. unique_toolkit/_common/utils/jinja/render.py +18 -0
  34. unique_toolkit/_common/utils/jinja/schema.py +65 -0
  35. unique_toolkit/_common/utils/jinja/utils.py +80 -0
  36. unique_toolkit/_common/utils/structured_output/__init__.py +1 -0
  37. unique_toolkit/_common/utils/structured_output/schema.py +5 -0
  38. unique_toolkit/_common/utils/write_configuration.py +51 -0
  39. unique_toolkit/_common/validators.py +101 -4
  40. unique_toolkit/agentic/__init__.py +1 -0
  41. unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +28 -0
  42. unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +278 -0
  43. unique_toolkit/agentic/evaluation/config.py +36 -0
  44. unique_toolkit/{evaluators → agentic/evaluation}/context_relevancy/prompts.py +25 -0
  45. unique_toolkit/agentic/evaluation/context_relevancy/schema.py +80 -0
  46. unique_toolkit/agentic/evaluation/context_relevancy/service.py +273 -0
  47. unique_toolkit/agentic/evaluation/evaluation_manager.py +218 -0
  48. unique_toolkit/agentic/evaluation/hallucination/constants.py +61 -0
  49. unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +112 -0
  50. unique_toolkit/{evaluators → agentic/evaluation}/hallucination/prompts.py +1 -1
  51. unique_toolkit/{evaluators → agentic/evaluation}/hallucination/service.py +20 -16
  52. unique_toolkit/{evaluators → agentic/evaluation}/hallucination/utils.py +32 -21
  53. unique_toolkit/{evaluators → agentic/evaluation}/output_parser.py +20 -2
  54. unique_toolkit/{evaluators → agentic/evaluation}/schemas.py +27 -7
  55. unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +253 -0
  56. unique_toolkit/agentic/evaluation/tests/test_output_parser.py +87 -0
  57. unique_toolkit/agentic/history_manager/history_construction_with_contents.py +298 -0
  58. unique_toolkit/agentic/history_manager/history_manager.py +241 -0
  59. unique_toolkit/agentic/history_manager/loop_token_reducer.py +484 -0
  60. unique_toolkit/agentic/history_manager/utils.py +96 -0
  61. unique_toolkit/agentic/message_log_manager/__init__.py +5 -0
  62. unique_toolkit/agentic/message_log_manager/service.py +93 -0
  63. unique_toolkit/agentic/postprocessor/postprocessor_manager.py +212 -0
  64. unique_toolkit/agentic/reference_manager/reference_manager.py +103 -0
  65. unique_toolkit/agentic/responses_api/__init__.py +19 -0
  66. unique_toolkit/agentic/responses_api/postprocessors/code_display.py +71 -0
  67. unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +297 -0
  68. unique_toolkit/agentic/responses_api/stream_handler.py +15 -0
  69. unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +141 -0
  70. unique_toolkit/agentic/thinking_manager/thinking_manager.py +103 -0
  71. unique_toolkit/agentic/tools/__init__.py +1 -0
  72. unique_toolkit/agentic/tools/a2a/__init__.py +36 -0
  73. unique_toolkit/agentic/tools/a2a/config.py +17 -0
  74. unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +15 -0
  75. unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +66 -0
  76. unique_toolkit/agentic/tools/a2a/evaluation/config.py +55 -0
  77. unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +260 -0
  78. unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +9 -0
  79. unique_toolkit/agentic/tools/a2a/manager.py +55 -0
  80. unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +21 -0
  81. unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +240 -0
  82. unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +84 -0
  83. unique_toolkit/agentic/tools/a2a/postprocessing/config.py +78 -0
  84. unique_toolkit/agentic/tools/a2a/postprocessing/display.py +264 -0
  85. unique_toolkit/agentic/tools/a2a/postprocessing/references.py +101 -0
  86. unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +421 -0
  87. unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +2103 -0
  88. unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +603 -0
  89. unique_toolkit/agentic/tools/a2a/prompts.py +46 -0
  90. unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +6 -0
  91. unique_toolkit/agentic/tools/a2a/response_watcher/service.py +91 -0
  92. unique_toolkit/agentic/tools/a2a/tool/__init__.py +4 -0
  93. unique_toolkit/agentic/tools/a2a/tool/_memory.py +26 -0
  94. unique_toolkit/agentic/tools/a2a/tool/_schema.py +9 -0
  95. unique_toolkit/agentic/tools/a2a/tool/config.py +158 -0
  96. unique_toolkit/agentic/tools/a2a/tool/service.py +393 -0
  97. unique_toolkit/agentic/tools/agent_chunks_hanlder.py +65 -0
  98. unique_toolkit/agentic/tools/config.py +128 -0
  99. unique_toolkit/agentic/tools/factory.py +44 -0
  100. unique_toolkit/agentic/tools/mcp/__init__.py +4 -0
  101. unique_toolkit/agentic/tools/mcp/manager.py +71 -0
  102. unique_toolkit/agentic/tools/mcp/models.py +28 -0
  103. unique_toolkit/agentic/tools/mcp/tool_wrapper.py +234 -0
  104. unique_toolkit/agentic/tools/openai_builtin/__init__.py +11 -0
  105. unique_toolkit/agentic/tools/openai_builtin/base.py +46 -0
  106. unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +8 -0
  107. unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +88 -0
  108. unique_toolkit/agentic/tools/openai_builtin/code_interpreter/service.py +250 -0
  109. unique_toolkit/agentic/tools/openai_builtin/manager.py +79 -0
  110. unique_toolkit/agentic/tools/schemas.py +145 -0
  111. unique_toolkit/agentic/tools/test/test_mcp_manager.py +536 -0
  112. unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +445 -0
  113. unique_toolkit/agentic/tools/tool.py +187 -0
  114. unique_toolkit/agentic/tools/tool_manager.py +492 -0
  115. unique_toolkit/agentic/tools/tool_progress_reporter.py +285 -0
  116. unique_toolkit/agentic/tools/utils/__init__.py +19 -0
  117. unique_toolkit/agentic/tools/utils/execution/__init__.py +1 -0
  118. unique_toolkit/agentic/tools/utils/execution/execution.py +286 -0
  119. unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
  120. unique_toolkit/agentic/tools/utils/source_handling/schema.py +21 -0
  121. unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +207 -0
  122. unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +216 -0
  123. unique_toolkit/app/__init__.py +9 -0
  124. unique_toolkit/app/dev_util.py +180 -0
  125. unique_toolkit/app/fast_api_factory.py +131 -0
  126. unique_toolkit/app/init_sdk.py +32 -1
  127. unique_toolkit/app/schemas.py +206 -31
  128. unique_toolkit/app/unique_settings.py +367 -0
  129. unique_toolkit/app/webhook.py +77 -0
  130. unique_toolkit/chat/__init__.py +8 -1
  131. unique_toolkit/chat/deprecated/service.py +232 -0
  132. unique_toolkit/chat/functions.py +648 -78
  133. unique_toolkit/chat/rendering.py +34 -0
  134. unique_toolkit/chat/responses_api.py +461 -0
  135. unique_toolkit/chat/schemas.py +134 -2
  136. unique_toolkit/chat/service.py +115 -767
  137. unique_toolkit/content/functions.py +353 -8
  138. unique_toolkit/content/schemas.py +128 -15
  139. unique_toolkit/content/service.py +321 -45
  140. unique_toolkit/content/smart_rules.py +301 -0
  141. unique_toolkit/content/utils.py +10 -3
  142. unique_toolkit/data_extraction/README.md +96 -0
  143. unique_toolkit/data_extraction/__init__.py +11 -0
  144. unique_toolkit/data_extraction/augmented/__init__.py +5 -0
  145. unique_toolkit/data_extraction/augmented/service.py +93 -0
  146. unique_toolkit/data_extraction/base.py +25 -0
  147. unique_toolkit/data_extraction/basic/__init__.py +11 -0
  148. unique_toolkit/data_extraction/basic/config.py +18 -0
  149. unique_toolkit/data_extraction/basic/prompt.py +13 -0
  150. unique_toolkit/data_extraction/basic/service.py +55 -0
  151. unique_toolkit/embedding/service.py +103 -12
  152. unique_toolkit/framework_utilities/__init__.py +1 -0
  153. unique_toolkit/framework_utilities/langchain/__init__.py +10 -0
  154. unique_toolkit/framework_utilities/langchain/client.py +71 -0
  155. unique_toolkit/framework_utilities/langchain/history.py +19 -0
  156. unique_toolkit/framework_utilities/openai/__init__.py +6 -0
  157. unique_toolkit/framework_utilities/openai/client.py +84 -0
  158. unique_toolkit/framework_utilities/openai/message_builder.py +229 -0
  159. unique_toolkit/framework_utilities/utils.py +23 -0
  160. unique_toolkit/language_model/__init__.py +3 -0
  161. unique_toolkit/language_model/_responses_api_utils.py +93 -0
  162. unique_toolkit/language_model/builder.py +27 -11
  163. unique_toolkit/language_model/default_language_model.py +3 -0
  164. unique_toolkit/language_model/functions.py +345 -43
  165. unique_toolkit/language_model/infos.py +1288 -46
  166. unique_toolkit/language_model/reference.py +242 -0
  167. unique_toolkit/language_model/schemas.py +481 -49
  168. unique_toolkit/language_model/service.py +229 -28
  169. unique_toolkit/protocols/support.py +145 -0
  170. unique_toolkit/services/__init__.py +7 -0
  171. unique_toolkit/services/chat_service.py +1631 -0
  172. unique_toolkit/services/knowledge_base.py +1094 -0
  173. unique_toolkit/short_term_memory/service.py +178 -41
  174. unique_toolkit/smart_rules/__init__.py +0 -0
  175. unique_toolkit/smart_rules/compile.py +56 -0
  176. unique_toolkit/test_utilities/events.py +197 -0
  177. unique_toolkit-1.33.3.dist-info/METADATA +1145 -0
  178. unique_toolkit-1.33.3.dist-info/RECORD +205 -0
  179. unique_toolkit/evaluators/__init__.py +0 -1
  180. unique_toolkit/evaluators/config.py +0 -35
  181. unique_toolkit/evaluators/constants.py +0 -1
  182. unique_toolkit/evaluators/context_relevancy/constants.py +0 -32
  183. unique_toolkit/evaluators/context_relevancy/service.py +0 -53
  184. unique_toolkit/evaluators/context_relevancy/utils.py +0 -142
  185. unique_toolkit/evaluators/hallucination/constants.py +0 -41
  186. unique_toolkit-0.7.9.dist-info/METADATA +0 -413
  187. unique_toolkit-0.7.9.dist-info/RECORD +0 -64
  188. /unique_toolkit/{evaluators → agentic/evaluation}/exception.py +0 -0
  189. {unique_toolkit-0.7.9.dist-info → unique_toolkit-1.33.3.dist-info}/LICENSE +0 -0
  190. {unique_toolkit-0.7.9.dist-info → unique_toolkit-1.33.3.dist-info}/WHEEL +0 -0
@@ -0,0 +1,1145 @@
1
+ Metadata-Version: 2.1
2
+ Name: unique_toolkit
3
+ Version: 1.33.3
4
+ Summary:
5
+ License: Proprietary
6
+ Author: Cedric Klinkert
7
+ Author-email: cedric.klinkert@unique.ch
8
+ Requires-Python: >=3.12,<4.0
9
+ Classifier: License :: Other/Proprietary License
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Programming Language :: Python :: 3.12
12
+ Requires-Dist: docxtpl (>=0.20.1,<0.21.0)
13
+ Requires-Dist: jambo (>=0.1.2,<0.2.0)
14
+ Requires-Dist: jinja2 (>=3.1.6,<4.0.0)
15
+ Requires-Dist: markdown-it-py (>=4.0.0,<5.0.0)
16
+ Requires-Dist: mkdocs-mermaid2-plugin (>=1.2.2,<2.0.0)
17
+ Requires-Dist: mkdocs-multirepo-plugin (>=0.8.3,<0.9.0)
18
+ Requires-Dist: numpy (>=2.1.0,<3.0.0)
19
+ Requires-Dist: openai (>=1.99.9,<2.0.0)
20
+ Requires-Dist: pillow (>=10.4.0,<11.0.0)
21
+ Requires-Dist: platformdirs (>=4.0.0,<5.0.0)
22
+ Requires-Dist: pydantic (>=2.8.2,<3.0.0)
23
+ Requires-Dist: pydantic-settings (>=2.10.1,<3.0.0)
24
+ Requires-Dist: pyhumps (>=3.8.0,<4.0.0)
25
+ Requires-Dist: python-dotenv (>=1.0.1,<2.0.0)
26
+ Requires-Dist: regex (>=2024.5.15,<2025.0.0)
27
+ Requires-Dist: sseclient (>=0.0.27,<0.0.28)
28
+ Requires-Dist: tiktoken (>=0.12.0,<0.13.0)
29
+ Requires-Dist: typing-extensions (>=4.9.0,<5.0.0)
30
+ Requires-Dist: unique-sdk (>=0.10.48,<0.11.0)
31
+ Description-Content-Type: text/markdown
32
+
33
+ # Unique Toolkit
34
+
35
+ This package provides highlevel abstractions and methods on top of `unique_sdk` to ease application development for the Unique Platform.
36
+
37
+ The Toolkit is structured along the following domains:
38
+ - `unique_toolkit.chat`
39
+ - `unique_toolkit.content`
40
+ - `unique_toolkit.embedding`
41
+ - `unique_toolkit.language_model`
42
+ - `unique_toolkit.short_term_memory`
43
+
44
+ Each domain comprises a set of functions (in `functions.py`) and a service class (in `service.py`) which encapsulates the basic functionalities to interact with the domain entities, the schemas (in `schemas.py`) used in the service and required for interacting with the service functions, utility functions (in `utils.py`) which give additional functionality to interact with the domain entities (all domains except embedding) and other domain specific functionalities which are explained in the respective domain documentation.
45
+
46
+ In addition, the `unique_toolkit.app` module provides functions to initialize apps that interact with the Unique platform. It also includes some utility functions to run async tasks in parallel (async webserver and app implementation required).
47
+
48
+ ## Changelog
49
+
50
+ See the [CHANGELOG.md](https://github.com/Unique-AG/ai/blob/main/unique_toolkit/CHANGELOG.md) file for details on changes and version history.
51
+
52
+ # Domains
53
+
54
+ ## App
55
+
56
+ The `unique_toolkit.app` module encompasses functions for initializing and securing apps that will interact with the Unique platform.
57
+
58
+ - `init_logging.py` can be used to initalize the logger either with unique dictConfig or an any other dictConfig.
59
+ - `init_sdk.py` can be used to initialize the sdk using the correct env variables and retrieving the endpoint secret.
60
+ - `schemas.py` contains the Event schema which can be used to parse and validate the unique.chat.external-module.chosen event.
61
+ - `verification.py` can be used to verify the endpoint secret and construct the event.
62
+
63
+ ## Chat
64
+
65
+ The `unique_toolkit.chat` module encompasses all chat related functionality.
66
+
67
+ - `functions.py` comprises the functions to manage and load the chat history and interact with the chat ui, e.g., creating a new assistant message.
68
+ - `service.py` comprises the ChatService and provides an interface to manage and load the chat history and interact with the chat ui, e.g., creating a new assistant message and stream complete.
69
+ - `schemas.py` comprises all relevant schemas, e.g., ChatMessage, used in the ChatService.
70
+ - `utils.py` comprises utility functions to use and convert ChatMessage objects in assistants, e.g., convert_chat_history_to_injectable_string converts the chat history to a string that can be injected into a prompt.
71
+
72
+ ## Content
73
+
74
+ The `unique_toolkit.content` module encompasses all content related functionality. Content can be any type of textual data that is stored in the Knowledgebase on the Unique platform. During the ingestion of the content, the content is parsed, split in chunks, indexed, and stored in the database.
75
+
76
+ - `functions.py` comprises the functions to manage and load the chat history and interact with the chat ui, e.g., creating a new assistant message.
77
+ - `service.py` comprises the ContentService and provides an interface to interact with the content, e.g., search content, search content chunks, upload and download content.
78
+ - `schemas.py` comprises all relevant schemas, e.g., Content and ContentChunk, used in the ContentService.
79
+ - `utils.py` comprise utility functions to manipulate Content and ContentChunk objects, e.g., sort_content_chunks and merge_content_chunks.
80
+
81
+ ## Embedding
82
+
83
+ The `unique_toolkit.embedding` module encompasses all embedding related functionality. Embeddings are used to represent textual data in a high-dimensional space. The embeddings can be used to calculate the similarity between two texts, for instance.
84
+
85
+ - `functions.py` comprises the functions to embed text and calculate the similarity between two texts.
86
+ - `service.py` encompasses the EmbeddingService and provides an interface to interact with the embeddings, e.g., embed text and calculate the similarity between two texts.
87
+ - `schemas.py` comprises all relevant schemas, e.g., Embeddings, used in the EmbeddingService.
88
+
89
+ ## Language Model
90
+
91
+ The `unique_toolkit.language_model` module encompasses all language model related functionality and information on the different language models deployed through the
92
+ Unique platform.
93
+
94
+ - `infos.py` comprises the information on all language models deployed through the Unique platform. We recommend to use the LanguageModel class, initialized with the LanguageModelName, e.g., LanguageModel(LanguageModelName.AZURE_GPT_4o_2024_1120) to get the information on the specific language model like the name, version, token limits or retirement date.
95
+ - `functions.py` comprises the functions to complete and stream complete to chat.
96
+ - `service.py` comprises the LanguageModelService and provides an interface to interact with the language models, e.g., complete.
97
+ - `schemas.py` comprises all relevant schemas, e.g., LanguageModelResponse, used in the LanguageModelService.
98
+ - `utils.py` comprises utility functions to parse the output of the language model, e.g., convert_string_to_json finds and parses the last json object in a string.
99
+
100
+ ## Short Term Memory
101
+
102
+ The `unique_toolkit.short_term_memory` module encompasses all short term memory related functionality.
103
+
104
+ - `functions.py` comprises the functions to manage and load the chat history and interact with the chat ui, e.g., creating a new assistant message.
105
+ - `service.py` comprises the ShortTermMemoryService and provides an interface to interact with the short term memory, e.g., create memory.
106
+ - `schemas.py` comprises all relevant schemas, e.g., ShortTermMemory, used in the ShortTermMemoryService.
107
+
108
+ # Development instructions
109
+
110
+ 1. Install poetry on your system (through `brew` or `pipx`).
111
+
112
+ 2. Install `pyenv` and install python 3.11. `pyenv` is recommended as otherwise poetry uses the python version used to install itself and not the user preferred python version.
113
+
114
+ 3. If you then run `python --version` in your terminal, you should be able to see python version as specified in `.python-version`.
115
+
116
+ 4. Then finally run `poetry install` to install the package and all dependencies.
117
+ # Changelog
118
+
119
+ All notable changes to this project will be documented in this file.
120
+
121
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
122
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
123
+
124
+ ## [1.33.3] - 2025-12-02
125
+ - Fix serialization of ToolBuildConfig `configuration` field.
126
+
127
+ ## [1.33.2] - 2025-12-01
128
+ - Upgrade numpy to >2.1.0 to ensure compatibility with langchain library
129
+
130
+ ## [1.33.1] - 2025-12-01
131
+ - Add `data_extraction` to unique_toolkit
132
+
133
+ ## [1.33.0] - 2025-11-28
134
+ - Add support for system reminders in sub agent responses.
135
+
136
+ ## [1.32.1] - 2025-12-01
137
+ - Added documentation for the toolkit,some missing type hints and doc string fixes.
138
+
139
+ ## [1.32.0] - 2025-11-28
140
+ - Add option to filter duplicate sub agent answers.
141
+
142
+ ## [1.31.2] - 2025-11-27
143
+ - Added the function `filter_tool_calls_by_max_tool_calls_allowed` in `tool_manager` to limit the number of parallel tool calls permitted per loop iteration.
144
+
145
+ ## [1.31.1] - 2025-11-27
146
+ - Various fixes to sub agent answers.
147
+
148
+ ## [1.31.0] - 2025-11-20
149
+ - Adding model `litellm:anthropic-claude-opus-4-5` to `language_model/info.py`
150
+
151
+ ## [1.30.0] - 2025-11-26
152
+ - Add option to only display parts of sub agent responses.
153
+
154
+ ## [1.29.4] - 2025-11-25
155
+ - Add display name to openai builtin tools
156
+
157
+ ## [1.29.3] - 2025-11-24
158
+ - Fix jinja utility helpers import
159
+
160
+ ## [1.29.2] - 2025-11-21
161
+ - Add `jinja` utility helpers to `_common`
162
+
163
+ ## [1.29.1] - 2025-11-21
164
+ - Add early return in `create_message_log_entry` if chat_service doesn't have assistant_message_id (relevant for agentic table)
165
+
166
+ ## [1.29.0] - 2025-11-21
167
+ - Add option to force include references in sub agent responses even if unused by main agent response.
168
+
169
+ ## [1.28.9] - 2025-11-21
170
+ - Remove `knolwedge_base_service` from DocXGeneratorService
171
+
172
+ ## [1.28.8] - 2025-11-20
173
+ - Add query params to api operation
174
+ - Add query params to endpoint builder
175
+
176
+ ## [1.28.7] - 2025-11-20
177
+ - Adding Message Step Logger Class to the agentic tools.
178
+
179
+ ## [1.28.6] - 2025-11-20
180
+ - Adding tests for message role filtering in chat functions
181
+
182
+ ## [1.28.5] - 2025-11-20
183
+ - Including `expired_at` parameter in content schema
184
+ - Including chatRole `SYSTEM` into chat schema
185
+
186
+ ## [1.28.4] - 2025-11-20
187
+ - Bump tiktoken to 0.12.0
188
+
189
+ ## [1.28.3] - 2025-11-20
190
+ - Add batch upload of files to knowledgebase
191
+ - Add create folders utilities
192
+
193
+ ## [1.28.2] - 2025-11-20
194
+ - Adding model `litellm:gemini-3-pro-preview` to `language_model/info.py`
195
+
196
+ ## [1.28.1] - 2025-11-19
197
+ - Remove `chat_service` from DocXGeneratorService
198
+
199
+ ## [1.28.1] - 2025-11-19
200
+ - Set review standards in pyright for toolkit
201
+ - Refactor type check pipeline
202
+
203
+ ## [1.28.0] - 2025-11-19
204
+ - Add option to interpret sub agent responses as content chunks.
205
+ - Add option to specify a custom JSON schema for sub agent tool input.
206
+
207
+ ## [1.27.2] - 2025-11-19
208
+ - Add test to token counting
209
+
210
+ ## [1.27.1] - 2025-11-18
211
+ - Add missing `create_query_params_from_model` in experimental endoint_builder.py
212
+
213
+ ## [1.27.0] - 2025-11-18
214
+ - Add `session_config` field to `ChatEventPayload` schema for chat session configuration support
215
+ - Add `ingestion_state` field to `Content` model for tracking content ingestion status
216
+ - Add `include_failed_content` parameter to content search functions in `KnowledgeBaseService`, `search_contents`, and `search_contents_async`
217
+ - Experimental:
218
+ - Fix HTTP GET requests in `build_request_requestor` to use query parameters (`params`) instead of JSON body
219
+ - `build_requestor` to properly pass kwargs to `build_request_requestor`
220
+
221
+ ## [1.26.2] - 2025-11-17
222
+ - Adding tool format information for MCP tools
223
+
224
+ ## [1.26.1] - 2025-11-17
225
+ - Fix bug where forcing a tool still sends builtin tools to the LLM when using the responses api.
226
+
227
+ ## [1.26.0] - 2025-11-17
228
+ - Adding model `AZURE_GPT_51_2025_1113`, `AZURE_GPT_51_THINKING_2025_1113`, `AZURE_GPT_51_CHAT_2025_1113`, `AZURE_GPT_51_CODEX_2025_1113`, `AZURE_GPT_51_CODEX_MINI_2025_1113` and `litellm:openai-gpt-51` and `litellm:openai-gpt-51-thinking` to `language_model/info.py`
229
+
230
+ ## [1.25.2] - 2025-11-12
231
+ - Standardize paths in unique toolkit settings
232
+
233
+ ## [1.25.1] - 2025-11-12
234
+ - Make pipeline steps reusable
235
+ - Add pipeline checks for type errors
236
+ - Add pipeline checks for coverage
237
+
238
+ ## [1.25.0] - 2025-11-10
239
+ - Download files generated by code execution in parrallel.
240
+ - Better display of files in the chat while loading.
241
+
242
+ ## [1.24.5] - 2025-11-10
243
+ - Fix bug where images were not properly converted to responses api format.
244
+
245
+ ## [1.24.4] - 2025-11-07
246
+ - Add `user_id` to language service for tracking
247
+ - Track `user_id` in hallucination check
248
+
249
+ ## [1.24.3] - 2025-11-07
250
+ - Adding litellm models `litellm:gemini-2-5-flash-lite`
251
+
252
+ ## [1.24.2] - 2025-11-06
253
+ - Fix build_requestor typehints
254
+
255
+ ## [1.24.1] - 2025-11-06
256
+ - Add IconChartBar Icon to ToolIcon
257
+
258
+ ## [1.24.0] - 2025-11-04
259
+ - Introduce ability to include system reminders in tools to be appended when the response is included in the tool call history
260
+
261
+ ## [1.23.0] - 2025-11-04
262
+ - Refactor sub agent tools implementation for clarity and testability.
263
+
264
+ ## [1.22.2] - 2025-11-03
265
+ - Updated `unique_ai_how-it-works.md` and `plan_processing.md` to document how new assistant messages are generated when the orchestrator produces output text and triggers tool calls within the same loop iteration.
266
+
267
+ ## [1.22.1] - 2025-11-03
268
+ - Add missing package required markdown-it-py
269
+
270
+ ## [1.22.0] - 2025-10-31
271
+ - Add `DocxGeneratorService` for generating Word documents from markdown with template support
272
+ - Fix documentation for `update_message_execution`, `update_message_execution_async`, `update_assistant_message_execution`, and `update_assistant_message_execution_async` functions to correctly reflect that the `status` parameter is now optional
273
+
274
+ ## [1.21.2] - 2025-10-30
275
+ - Fixing that system format info is only appended to system prompt if tool is called
276
+
277
+ ## [1.21.1] - 2025-10-30
278
+ - Improve Spaces 2.0 display of tool progress reporter configuration.
279
+
280
+ ## [1.21.0] - 2025-10-30
281
+ - Add option to customize the display of tool progress statuses.
282
+
283
+ ## [1.20.1] - 2025-10-30
284
+ - Fix typing issues in `LanguageModelFunction`.
285
+
286
+ ## [1.20.0] - 2025-10-30
287
+ - Fix bug where async tasks executed with `SafeTaskExecutor` did not log exceptions.
288
+ - Add option to customize sub agent response display title.
289
+ - Add option to display sub agent responses after the main agent response.
290
+ - Add option to specify postprocessors to run before or after the others in the `PostprocessorManager`.
291
+
292
+ ## [1.19.3] - 2025-10-29
293
+ - More documentation on advanced rendering
294
+
295
+ ## [1.19.2] - 2025-10-29
296
+ - Removing unused tool specific `get_tool_call_result_for_loop_history` function
297
+ - Removing unused experimental config `full_sources_serialize_dump` in `history_manager`
298
+
299
+ ## [1.19.1] - 2025-10-29
300
+ - Make api operations more flexible
301
+ - Make verification button text adaptable
302
+
303
+ ## [1.19.0] - 2025-10-28
304
+ - Enable additional headers on openai and langchain client
305
+
306
+
307
+ ## [1.18.1] - 2025-10-28
308
+ - Fix bug where sub agent references were not properly displayed in the main agent response when the sub agent response was hidden.
309
+
310
+ ## [1.18.0] - 2025-10-27
311
+ - Temporary fix to rendering of sub agent responses.
312
+ - Add config option `stop_condition` to `SubAgentToolConfig`
313
+ - Add config option `tool_choices` to `SubAgentToolConfig`
314
+ - Make sub agent evaluation use the name of the sub agent name if only one assessment is valid
315
+
316
+ ## [1.17.3] - 2025-10-27
317
+ - Update Hallucination check citation regex parsing pattern
318
+
319
+ ## [1.17.2] - 2025-10-23
320
+ - Adding model `AZURE_GPT_5_PRO_2025_1006` and `litellm:openai-gpt-5-pro` to `language_model/info.py`
321
+
322
+ ## [1.17.1] - 2025-10-23
323
+ - Fix hallucination check input with all cited reference chunks.
324
+
325
+ ## [1.17.0] - 2025-10-22
326
+ - Add more options to display sub agent answers in the chat.
327
+
328
+ ## [1.16.5] - 2025-10-16
329
+ - Adding litellm models `litellm:anthropic-claude-haiku-4-5`
330
+
331
+ ## [1.16.4] - 2025-10-18
332
+ - Fix bug with MCP tool parameters schema
333
+
334
+ ## [1.16.3] - 2025-10-18
335
+ - Add logging of MCP tool schema and constructed parameters
336
+
337
+ ## [1.16.2] - 2025-10-16
338
+ - Reduce operation dependency on path instead of full url
339
+
340
+ ## [1.16.1] - 2025-10-16
341
+ - Update debug info for better tool call tracking
342
+
343
+ ## [1.16.0] - 2025-10-16
344
+ - Add responses api support.
345
+ - Add utilities for code execution.
346
+
347
+ ## [1.15.0] - 2025-10-15
348
+ - Enable to distinguish between environment and modifiable payload parameters in human verification
349
+
350
+ ## [1.14.11] - 2025-10-13
351
+ - Introduce testing guidelines for AI
352
+ - Add AI tests to `tool_config` and `tool_factory.py`
353
+
354
+ ## [1.14.10] - 2025-10-13
355
+ - Fix token counter if images in history
356
+
357
+ ## [1.14.9] - 2025-10-13
358
+ - Fix removal of metadata
359
+
360
+ ## [1.14.8] - 2025-10-13
361
+ - Use default tool icon on validation error
362
+
363
+ ## [1.14.7] - 2025-10-13
364
+ - Update of token_limit parameters for Claude models
365
+
366
+ ## [1.14.6] - 2025-10-10
367
+ - Fix circular import appearing in orchestrator
368
+
369
+ ## [1.14.5] - 2025-10-09
370
+ - Move `DEFAULT_GPT_4o` constant from `_common/default_language_model.py` to `language_model/constants.py` and deprecate old import path
371
+
372
+ ## [1.14.4] - 2025-10-09
373
+ - Small fixes when deleting content
374
+ - Fixes in documentation
375
+
376
+ ## [1.14.3] - 2025-10-08
377
+ - Reorganizes documentation
378
+ - All service interface towards a single folder
379
+ - Add main imports to __init__
380
+
381
+ ## [1.14.2] - 2025-10-08
382
+ - Add utilities for testing and fix external import issue
383
+
384
+ ## [1.14.1] - 2025-10-08
385
+ - Add utilities for testing
386
+
387
+ ## [1.14.0] - 2025-10-07
388
+ - Manipulate Metadata with knowledge base service
389
+
390
+ ## [1.13.0] - 2025-10-07
391
+ - Delete contents with knowledge base service
392
+
393
+ ## [1.12.1] - 2025-10-07
394
+ - Fix bug where failed evaluations did not show an error to the user.
395
+
396
+ ## [1.12.0] - 2026-10-07
397
+ - Add the `OpenAIUserMessageBuilder` for complex user messages with images
398
+ - More examples with documents/images on the chat
399
+
400
+ ## [1.11.4] - 2026-10-07
401
+ - Make newer `MessageExecution` and `MessageLog` method keyword only
402
+
403
+ ## [1.11.3] - 2026-10-07
404
+ - Move smart rules to content
405
+ - Add to documentation
406
+
407
+ ## [1.11.2] - 2025-10-07
408
+ - Fix for empty metadata filter at info retrieval
409
+
410
+ ## [1.11.1] - 2025-10-07
411
+ - Fix bug where hallucination check was taking all of the chunks as input instead of only the referenced ones.
412
+
413
+ ## [1.11.0] - 2025-10-07
414
+ - Add sub-agent response referencing.
415
+
416
+ ## [1.10.0] - 2025-10-07
417
+ - Introduce future proof knowledgebase service decoupled from chat
418
+ - Extend chat service to download contents in the chat
419
+ - Update documentation
420
+
421
+ ## [1.9.1] - 2025-10-06
422
+ - Switch default model used in evaluation service from `GPT-3.5-turbo (0125)` to `GPT-4o (1120)`
423
+
424
+
425
+ ## [1.9.0] - 2026-10-04
426
+ - Define the RequestContext and add aihttp/httpx requestors
427
+
428
+ ## [1.8.1] - 2026-10-03
429
+ - Fix bug where sub agent evaluation config variable `include_evaluation` did not include aliases for previous names.
430
+
431
+ ## [1.8.0] - 2026-10-03
432
+ - Sub Agents now block when executing the same sub-agent multiple times with `reuse_chat` set to `True`.
433
+ - Sub Agents tool, evaluation and post-processing refactored and tests added.
434
+
435
+ ## [1.7.0] - 2025-10-01
436
+ - Add functionality to remove text in `get_user_visible_chat_history`
437
+
438
+ ## [1.6.0] - 2025-10-01
439
+ - revert and simplify 1.5.0
440
+
441
+ ## [1.5.1] - 2025-10-01
442
+ - Fix filtering logic to raise a ConfigurationException if chat event filters are not specified
443
+
444
+ ## [1.5.0] - 2025-10-01
445
+ - Allow history manager to fetch only ui visible text
446
+
447
+ ## [1.4.4] - 2025-09-30
448
+ - Fix bugs with display of sub-agent answers and evaluations when multiple sub-agent from the same assistant run concurrently.
449
+
450
+ ## [1.4.3] - 2025-09-30
451
+ - Fix bug with sub-agent post-processing reference numbers.
452
+
453
+ ## [1.4.2] - 2025-09-30
454
+ - Adding litellm models `litellm:anthropic-claude-sonnet-4-5` and `litellm:anthropic-claude-opus-4-1`
455
+
456
+ ## [1.4.1] - 2025-09-30
457
+ - Handle sub agent failed assessments better in sub agent evaluator.
458
+
459
+ ## [1.4.0] - 2025-09-29
460
+ - Add ability to consolidate sub agent's assessments.
461
+
462
+ ## [1.3.3] - 2025-09-30
463
+ - fix bug in exclusive tools not making them selectable
464
+
465
+ ## [1.3.2] - 2025-09-29
466
+ - Auto-update unique settings on event arrival in SSE client
467
+
468
+ ## [1.3.1] - 2025-09-29
469
+ - More documentation on referencing
470
+
471
+ ## [1.3.0] - 2025-09-28
472
+ - Add utilitiy to enhance pydantic model with metadata
473
+ - Add capability to collect this metadata with same hierarchy as nested pydantic models
474
+
475
+ ## [1.2.1] - 2025-09-28
476
+ - Fix bug where camel case arguments were not properly validated.
477
+
478
+ ## [1.2.0] - 2025-09-24
479
+ - Add ability to display sub agent responses in the chat.
480
+
481
+ ## [1.1.9] - 2025-09-24
482
+ - Fix bug in `LanguageModelFunction` to extend support mistral tool calling.
483
+
484
+ ## [1.1.8] - 2025-09-23
485
+ - Revert last to version 1.1.6
486
+
487
+ ## [1.1.7] - 2025-09-23
488
+ - Introduce keyword only functions in services for better backward compatibility
489
+ - Deprecatea functions that are using positional arguments in services
490
+
491
+ ## [1.1.6] - 2025-09-23
492
+ - Fix model_dump for `ToolBuildConfig`
493
+
494
+ ## [1.1.5] - 2025-09-23
495
+ - Fix a circular import and add tests for `ToolBuildConfig`
496
+
497
+ ## [1.1.4] - 2025-09-23
498
+ - First version human verification on api calls
499
+
500
+ ## [1.1.3] - 2025-09-23
501
+ - Updated LMI JSON schema input type to include annotated string field with title
502
+
503
+ ## [1.1.2] - 2025-09-22
504
+ - Fixed bug tool selection for exclusive tools
505
+
506
+ ## [1.1.1] - 2025-09-18
507
+ - Fixed bug on tool config added icon name
508
+
509
+ ## [1.1.0] - 2025-09-18
510
+ - Enable chat event filtering in SSE event generator via env variables
511
+
512
+ ## [1.0.0] - 2025-09-18
513
+ - Bump toolkit version to allow for both patch and minor updates
514
+
515
+ ## [0.9.1] - 2025-09-17
516
+ - update to python 3.12 due to security
517
+
518
+ ## [0.9.0] - 2025-09-14
519
+ - Moved agentic code into the `agentic` folder. This breaks imports of
520
+ - `debug_info_amanager`
521
+ - `evals`
522
+ - `history_manager`
523
+ - `post_processor`
524
+ - `reference-manager`
525
+ - `short_term_memory_manager`
526
+ - `thinking_manager`
527
+ - `tools`
528
+
529
+ ## [0.8.57] - 2025-09-14
530
+ - Added more utils to commons
531
+
532
+ ## [0.8.56] - 2025-09-12
533
+ - Fixed token counter in utils
534
+
535
+ ## [0.8.55] - 2025-09-10
536
+ - Update documentation with agentic managers
537
+
538
+ ## [0.8.54] - 2025-09-10
539
+ - HistoryManager: compute source numbering offset from prior serialized tool messages using `load_sources_from_string`
540
+ - LoopTokenReducer: serialize reduced tool messages as JSON arrays to keep offsets parsable
541
+
542
+ ## [0.8.53] - 2025-09-09
543
+ - Add support for skip ingestion for only excel files.
544
+
545
+ ## [0.8.52] - 2025-09-06
546
+ - Fix import error in token counting
547
+
548
+ ## [0.8.51] - 2025-09-06
549
+ - Update token counter to latest version of monorepo.
550
+
551
+ ## [0.8.50] - 2025-09-08
552
+ - Minor fix in documentation
553
+ - Updated examples
554
+
555
+ ## [0.8.49] - 2025-09-05
556
+ - Fixed token reducer now has a safety margin of 10% less did not work.
557
+
558
+ ## [0.8.48] - 2025-09-05
559
+ - Add documentation on language models to markdown
560
+
561
+ ## [0.8.47] - 2025-09-05
562
+ - Removed old code
563
+ - Fixed small bugs in history manager & set the hallucination to use gpt4o as default.
564
+
565
+ ## [0.8.46] - 2025-09-04
566
+ - Bugfix for hostname identification inside Unique cluster in `unique_settings.py`
567
+
568
+ ## [0.8.45] - 2025-09-04
569
+ - Introduce handoff capability to tools. with the `takes_control()` function.
570
+
571
+ ## [0.8.44] - 2025-09-03
572
+ - Refine `EndpointClass` and create `EndpointRequestor`
573
+
574
+ ## [0.8.43] - 2025-09-03
575
+ - Add alias for `UniqueSettings` api base `API_BASE`
576
+
577
+ ## [0.8.42] - 2025-09-02
578
+ - updated schema of `chunk_relevancy_sorter`
579
+
580
+ ## [0.8.41] - 2025-09-02
581
+ - Make A2A tool auto register with tool factory
582
+
583
+ ## [0.8.40] - 2025-09-02
584
+ - Add frontend compatible type for pydantic BaseModel types in pydantic BaseModels
585
+
586
+ ## [0.8.39] - 2025-09-02
587
+ - include `get_async_openai_client`
588
+
589
+ ## [0.8.38] - 2025-09-01
590
+ - Sanitize documentation
591
+
592
+ ## [0.8.37] - 2025-09-01
593
+ - Adapt defaults and json-schema in `LanguageModelInfo`
594
+
595
+ ## [0.8.36] - 2025-09-01
596
+ - Added dependency `Pillow` and `Platformsdir`
597
+
598
+ ## [0.8.35] - 2025-09-01
599
+ - Initial toolkit documentation (WIP)
600
+
601
+ ## [0.8.34] - 2025-09-01
602
+ - Automatic initializations of services and event generator
603
+
604
+ ## [0.8.33] - 2025-08-31
605
+ - fixed tool for `web_search`
606
+
607
+ ## [0.8.32] - 2025-08-30
608
+ - moved over general packages for `web_search`
609
+
610
+ ## [0.8.31] - 2025-08-29
611
+ - Add various openai models to supported model list
612
+ - o1
613
+ - o3
614
+ - o3-deep-research
615
+ - o3-pro
616
+ - o4-mini
617
+ - o4-mini-deep-research
618
+ - gpt-4-1-mini
619
+ - gpt-4-1-nano
620
+
621
+ ## [0.8.30] - 2025-08-28
622
+ - Added A2A manager
623
+
624
+ ## [0.8.29] - 2025-08-27
625
+ - Include `MessageExecution` and `MessageLog` in toolkit
626
+
627
+ ## [0.8.28] - 2025-08-28
628
+ - Fix paths for `sdk_url` and `openai_proxy` for localhost
629
+
630
+ ## [0.8.27] - 2025-08-28
631
+ - Fixed function "create_async" in language_model.functions : "user_id" argument should be optional.
632
+
633
+ ## [0.8.26] - 2025-08-27
634
+ - Optimized MCP manager
635
+
636
+ ## [0.8.26] - 2025-08-27
637
+ - Optimized MCP manager
638
+
639
+ ## [0.8.25] - 2025-08-27
640
+ - Load environment variables automatically from plattform dirs or environment
641
+ - General Endpoint definition utility
642
+ - Expose `LanguageModelToolDescription` and `LanguageModelName` directly
643
+ - Get initial debug information from chat payload
644
+
645
+ ## [0.8.24] - 2025-08-25
646
+ - Optimized hallucination manager
647
+
648
+ ## [0.8.23] - 2025-08-27
649
+ - Add MCP manager that handles MCP related logic
650
+
651
+
652
+ ## [0.8.22] - 2025-08-25
653
+ - Add DeepSeek-R1, DeepSeek-V3.1, Qwen3-235B-A22B and Qwen3-235B-A22B-Thinking-2507 to supported model list
654
+
655
+ ## [0.8.21] - 2025-08-26
656
+ - Fixed old (not used) function "create_async" in language_model.functions : The function always returns "Unauthorized" --> Added "user_id" argument to fix this.
657
+
658
+ ## [0.8.20] - 2025-08-24
659
+ - Fixed forced-tool-calls
660
+
661
+ ## [0.8.20] - 2025-08-05
662
+ - Bump SDK version to support the latest features.
663
+
664
+ ## [0.8.19] - 2025-08-24
665
+ - Enforce usage of ruff using pipeline
666
+
667
+ ## [0.8.18] - 2025-08-22
668
+ - moved class variables into instance variables
669
+
670
+ ## [0.8.17] - 2025-08-22
671
+ - fixed circular dependencies in tools
672
+
673
+ ## [0.8.16] - 2025-08-19
674
+ - moved Hallucination evaluator into toolkit
675
+
676
+ ## [0.8.15] - 2025-08-19
677
+ - Added history loading from database for History Manager
678
+
679
+ ## [0.8.14] - 2025-08-19
680
+ - Including GPT-5 series deployed via LiteLLM into language model info
681
+
682
+ ## [0.8.13] - 2025-08-18
683
+ - Adding initial versions of
684
+ - Evaluation Manager
685
+ - History Manager
686
+ - Postprocessor Manager
687
+ - Thinking Manager
688
+ - Updated tool manager
689
+
690
+ ## [0.8.12] - 2025-08-18
691
+ - Fix no tool call respoonse in ChatMessage -> Open Ai messages translation
692
+ - Add simple append method to OpenAIMessageBuilder
693
+
694
+ ## [0.8.11] - 2025-08-15
695
+ - Fix no tool call respoonse in ChatMessage -> Open Ai messages translation
696
+ - Add simple append method to OpenAIMessageBuilder
697
+
698
+ ## [0.8.10] - 2025-08-15
699
+ - Add min and max temperature to `LanguageModelInfo`: temperature will be clamped to the min and max temperature
700
+ - Add default options to `LanguageModelInfo`: These are used by default
701
+
702
+ ## [0.8.9] - 2025-08-15
703
+ - Reduce input token limits for `ANTHROPIC_CLAUDE_3_7_SONNET_THINKING`, `ANTHROPIC_CLAUDE_3_7_SONNET`, `ANTHROPIC_CLAUDE_OPUS_4` and `ANTHROPIC_CLAUDE_SONNET_4` to 180_000 from 200_000
704
+
705
+ ## [0.8.8] - 2025-08-11
706
+ - Make chat service openai stream response openai compatible
707
+ - Make `ChatMessage` openai compatible
708
+
709
+ ## [0.8.7] - 2025-08-11
710
+ - Make chat service openai compatible
711
+ - Fix some bugs
712
+ - Make OpenAIMessageBuilder more congruent to MessageBuilder
713
+
714
+ ## [0.8.6] - 2025-08-11
715
+ - Add GPT-5, GPT-5_MINI, GPT-5_NANO, GPT-5_CHAT to supported models list
716
+
717
+ ## [0.8.5] - 2025-08-06
718
+ - Refactored tools to be in the tool-kit
719
+
720
+ ## [0.8.4] - 2025-08-06
721
+ - Make unique settings compatible with legacy environment variables
722
+
723
+ ## [0.8.3] - 2025-08-05
724
+ - Expose threshold field for search.
725
+
726
+ ## [0.8.2] - 2025-08-05
727
+ - Implement overloads for services for clearer dev experience
728
+ - Proper typing for SSE event handling
729
+ - Enhanced unique settings. Expose usage of default values in logs
730
+ - SDK Initialization from unique settings
731
+ - Add utilities for to run llm/agent flows for devs
732
+
733
+ ## [0.8.1] - 2025-08-05
734
+ - Bump SDK version to support the latest features.
735
+
736
+ ## [0.8.0] - 2025-08-04
737
+ - Add MCP support
738
+
739
+ ## [0.7.42] - 2025-08-01
740
+ - Added tool definitions
741
+
742
+ ## [0.7.41] - 2025-07-31
743
+ - Add new chat event attribute indicating tools disabled on a company level
744
+
745
+ ## [0.7.40] - 2025-07-30
746
+ - Remove `GEMINI_2_5_FLASH_PREVIEW_0417` model
747
+
748
+ ## [0.7.39] - 2025-07-28
749
+ - Implement utitilites to work with openai client
750
+ - Implement utitilites to work with langchain llm
751
+
752
+ ## [0.7.38] - 2025-07-25
753
+ - Fix issues with secret strings in settings
754
+
755
+ ## [0.7.36] - 2025-07-25
756
+ - Fix issues with settings
757
+ - Add testing to unique settings
758
+
759
+ ## [0.7.35] - 2025-07-23
760
+ - Bump version of SDK to have access to the latest features and fixes
761
+
762
+ ## [0.7.34] - 2025-05-30
763
+ - Fix incorrect mapping in `ContentService` for the `search_content` function when mapping into `ContentChunk` object
764
+
765
+ ## [0.7.33] - 2025-06-25
766
+ - Update reference post-processing
767
+
768
+ ## [0.7.32] - 2025-06-24
769
+ - Create `classmethod` for `LanguageModelMessages` to load raw messages to root
770
+
771
+ ## [0.7.31] - 2025-06-19
772
+ - Add typings to references in payload from `LanguageModelStreamResponseMessage`
773
+ - Add `original_index` to the base reference to reflect updated api
774
+
775
+ ## [0.7.30] - 2025-06-20
776
+ - Adding litellm models `litellm:gemini-2-5-flash`, `gemini-2-5-flash-lite-preview-06-17`, `litellm:gemini-2-5-pro`, `litellm:gemini-2-5-pro-preview-06-05`
777
+
778
+ ## [0.7.29] - 2025-06-19
779
+ - Fix typehintin in services
780
+ - Error on invalid initialization
781
+
782
+ ## [0.7.28] - 2025-06-17
783
+ - Revert default factory change on `ChatEventPayload` for attribute `metadata_filter` due to error in `backend-ingestion` on empty dict
784
+
785
+ ## [0.7.27] - 2025-06-16
786
+ - Introduce a protocol for `complete_with_references` to enable testable services
787
+ - Rename/Create functions `stream_complete` in chat service and llm service accordingly
788
+
789
+ ## [0.7.26] - 2025-06-05
790
+ - Add `scope_rules` to `ChatEventPayload`
791
+ - Added `UniqueQL` compiler and pydantic classes for `UniqueQL`. Note this is functionally equivalent but not identical to `UQLOperator` or `UQLCombinator` in `unique_sdk`.
792
+
793
+ ## [0.7.25] - 2025-06-05
794
+ - Adding models `AZURE_GPT_41_MINI_2025_0414`, `AZURE_GPT_41_NANO_2025_0414`
795
+
796
+ ## [0.7.24] - 2025-05-30
797
+ - Adding litellm model `gemini-2-5-flash-preview-05-20`, `anthropic-claude-sonnet-4` and `anthropic-claude-opus-4`
798
+
799
+ ## [0.7.23] - 2025-05-22
800
+ - add encoder for `AZURE_GPT_4o_2024_1120` to be part of the encoder function returns.
801
+
802
+ ## [0.7.22] - 2025-05-22
803
+ - `messages` are now always serialized by alias. This affects `LanguageModelService.complete` and `LanguageModelService.complete_async`.
804
+
805
+ ## [0.7.21] - 2025-05-21
806
+ - Extend the update the `ChatMessage` object to include the `Reference` object introduced in the public api
807
+
808
+ ## [0.7.20] - 2025-05-21
809
+ - Deprecate `LanguageModelTool` and associated models in favor of `LanguageModelToolDescription`
810
+
811
+ ## [0.7.19] - 2025-05-20
812
+ - Extend the `MessageBuilder` to allow for appending any `LanguageModelMessage`
813
+
814
+ ## [0.7.18] - 2025-05-20
815
+ - Add the possibility to specify metadata when creating or updating a Content.
816
+
817
+ ## [0.7.17] - 2025-05-16
818
+ - Change inheritance hierarchy of events for easier deprecation
819
+
820
+ ## [0.7.16] - 2025-05-16
821
+ - Add classmethods to create LanguageModelAssistatnMessage from functions and stream response
822
+ - Add completion like method to chat
823
+ - Add protocol for completion like method
824
+
825
+ ## [0.7.15] - 2025-05-13
826
+ - Add the possibility to specify ingestionConfig when creating or updating a Content.
827
+
828
+ ## [0.7.14] - 2025-05-08
829
+ - Fix bug not selecting the correct llm
830
+ - Add LMI type for flexible init of LanguageModelInfo
831
+ - Replace LanguageModel with LanguageModelInfo in hallucination check
832
+
833
+ ## [0.7.13] - 2025-05-07
834
+ - Adding litellm models `litellm:anthropic-claude-3-7-sonnet`, `litellm:anthropic-claude-3-7-sonnet-thinking`, `litellm:gemini-2-0-flash`, `gemini-2-5-flash-preview-04-17` , `litellm:gemini-2-5-pro-exp-03-25`
835
+
836
+ ## [0.7.12] - 2025-05-02
837
+ - add `AZURE_o3_2025_0416` and `AZURE_o4_MINI_2025_0416` as part of the models
838
+
839
+ ## [0.7.11] - 2025-04-28
840
+ - Removing `STRUCTURED_OUTPUT` capability from `AZURE_GPT_35_TURBO_0125`, `AZURE_GPT_4_TURBO_2024_0409` and `AZURE_GPT_4o_2024_0513`
841
+
842
+ ## [0.7.10] - 2025-04-22
843
+ - Deprecate internal variables of services
844
+
845
+ ## [0.7.9] - 2025-04-17
846
+ - add `AZURE_GPT_41_2025_0414` as part of the models
847
+
848
+ ## [0.7.8] - 2025-04-08
849
+ - add `AZURE_GPT_4o_2024_1120` as part of the models
850
+
851
+ ## [0.7.7] - 2025-04-11
852
+ - Add tool choice parameter to chat event payload
853
+
854
+ ## [0.7.6] - 2025-04-08
855
+ - De provisioning o1-preview
856
+
857
+ ## [0.7.5] - 2025-04-07
858
+ - Skip None values when serializing to json schema for LanguageModelInfo
859
+
860
+ ## [0.7.4] - 2025-03-20
861
+ - add `AZURE_GPT_45_PREVIEW_2025_0227` as part of the models
862
+
863
+ ## [0.7.3] - 2025-03-20
864
+ - Enable handling tool calls in message builder
865
+
866
+ ## [0.7.2] - 2025-03-17
867
+ - HotFix `ContentService.search_content_chunks` to use `chat_id` from event if provided.
868
+
869
+ ## [0.7.1] - 2025-03-11
870
+ - Fix Breaking change: `ContentService.search_content_chunks` `ContentService.search_content_chunks` now accepts`chat_id` for the specific to handle chat_only instances
871
+
872
+ ## [0.7.0] - 2025-03-11
873
+ - Fix the issue with `ShortTermMemoryService.create_memory_async` adding `self.chat_id` and `self.message_id` as part of the parameter.
874
+ - Breaking change: `ContentService.search_content_on_chat` now requires you pass in a `chat_id` for the specific chat instance
875
+
876
+ ## [0.6.9] - 2025-03-11
877
+ - Add o1-preview as part of the language model info, make the name consistent across board.
878
+
879
+ ## [0.6.8] - 2025-03-11
880
+ - Add `verify_request_and_construct_event` to `verification.py`
881
+
882
+ ## [0.6.7] - 2025-03-10
883
+ - Extend language model message builder
884
+
885
+ ## [0.6.6] - 2025-03-10
886
+ - Add o1, o1-mini and o3-mini models
887
+ - Remove deprecated gpt4 models
888
+ - Make token_limits and encoder a required attribute of LanguageModelInfo
889
+
890
+ ## [0.6.5] - 2025-03-04
891
+ - Add `upload_content_from_bytes` to `ContentService`
892
+ - Add `download_content_to_bytes` to `ContentService`
893
+
894
+ ## [0.6.3] - 2025-02-27
895
+ - Simplified imports for services. `from unique_toolkit.language_model import LanguageModelService` -> `from unique_toolkit import LanguageModelService` to reduce number of import lines.
896
+
897
+ ## [0.6.3] - 2025-02-26
898
+ - Add `builder` method to `LanguageModelMessages` class
899
+
900
+ ## [0.6.2] - 2025-02-25
901
+ - Deprecate `LanguageModel` in favor of `LanguageModelInfo`
902
+ - `LanguageModelTokenLimits` properties become mandatory, initialization allows
903
+ - init with `token_limit` and `fraction_input` or `input_token_limit` and `output_token_limit`
904
+ - only `input_token_limit` and `output_token_limit` are members of model
905
+
906
+ ## [0.6.1] - 2025-02-25
907
+ - [BREAKING] `LanguageModelService.stream_complete` and `LanguageModelService.stream_complete_async` are now moved to `ChatService.stream_complete` and `ChatService.stream_complete_async`. Correspondingly `assistant_message_id` and `user_message_id` are removed from `LanguageModelService`.
908
+ - Add `create_user_message` and `create_user_message_async` to `ChatService` (similar to `create_assistant_message` and `create_assistant_message_async`)
909
+
910
+ ## [0.6.0] - 2025-02-21
911
+ - make for each domain, its base functionality accessible from `functions.py`
912
+ - make it possible to instantiate the domain services directly from different event types, inhereted from common `BaseEvent`
913
+ - extend the functionalities in the ShortTermMemoryService by adding the `find_latest_memory` and `create_memory` functions for sync and async usage
914
+ - remove logger dependency from service classes
915
+ - marked deprecated:
916
+ - `from_chat_event` in ShortTermMemoryService, use `ShortTermMemoryService(event=event)` instead
917
+ - `complete_async_util` in LanguageModelService, use `functions.complete_async` instead
918
+ - `stream_complete_async` in LanguageModelService, use `stream_complete_to_chat_async` instead
919
+ - `stream_complete` in LanguageModelService, use `stream_complete_to_chat` instead
920
+ - `Event` and nested schemas in `app`, use `ChatEvent` and `ChatEventUserMessage`, `ChatEventAssistantMessage` and `ChatEventToolMessage` instead
921
+
922
+ ## [0.5.56] - 2025-02-19
923
+ - Add `MessageAssessment` title field and change label values
924
+
925
+ ## [0.5.55] - 2025-02-18
926
+ - Log `contentId` for better debugging
927
+
928
+ ## [0.5.54] - 2025-02-10
929
+ - Add `created_at`, `completed_at`, `updated_at` and `gpt_request` to `ChatMessage` schema.
930
+
931
+ ## [0.5.53] - 2025-02-01
932
+ - Correct `MessageAssessment` schemas
933
+
934
+ ## [0.5.52] - 2025-02-01
935
+ - Add `MessageAssessment` schemas and functions to `ChatService` to handle message assessments.
936
+ - Fix `LanguageModelService.complete_async_util` to use the correct async method.
937
+
938
+ ## [0.5.51] - 2025-01-30
939
+ - Add missing structured output arguments in complete_async
940
+
941
+ ## [0.5.50] - 2025-01-30
942
+ - Add the possibility to define completion output structure through a pydantic class
943
+
944
+ ## [0.5.49] - 2025-01-24
945
+ - Add `parsed` and `refusal` to `LanguageModelAssistantMessage` to support structured output
946
+
947
+ ## [0.5.48] - 2025-01-19
948
+ - Added the possibility define tool parameters with a json schema (Useful when generating tool parameters from a pydantic object)
949
+
950
+ ## [0.5.47] - 2025-01-07
951
+ - Added a message builder to build language model messages conveniently without importing all different messages.
952
+ - Move tool_calls to assistant message as not needed anywhere else.
953
+
954
+ ## [0.5.46] - 2025-01-07
955
+ - Added `AZURE_GPT_35_TURBO_0125` as new model into toolkit.
956
+
957
+ ## [0.5.45] - 2025-01-03
958
+ - Added `ShortTermMemoryService` class to handle short term memory.
959
+
960
+ ## [0.5.44] - 2024-12-18
961
+ - Add `event_constructor` to `verify_signature_and_construct_event` to allow for custom event construction.
962
+
963
+ ## [0.5.43] - 2024-12-13
964
+ - Add `Prompt` class to handle templated prompts that can be formatted into LanguageModelSystemMessage and LanguageModelUserMessage.
965
+
966
+ ## [0.5.42] - 2024-12-11
967
+ - Update `LanguageModelTokenLimits` with fix avoiding floats for token
968
+
969
+ ## [0.5.41] - 2024-12-11
970
+ - Update `LanguageModelTokenLimits` includes a fraction_input now to always have input/output token limits available.
971
+
972
+ ## [0.5.40] - 2024-12-11
973
+ - Add `other_options` to `LanguageModelService.complete`, `LanguageModelService.complete_async`, `LanguageModelService.stream_complete` and `LanguageModelService.stream_complete_async`
974
+
975
+ ## [0.5.39] - 2024-12-09
976
+ - Add `contentIds` to `Search.create` and `Search.create_async`
977
+ - Use `metadata_filter` from event in `ContentService.search_content_chunks` and `ContentService.async_search_content_chunks` as default.
978
+
979
+ ## [0.5.38] - 2024-11-26
980
+ - Added string representation to `LanguageModelMessage` and `LanguageModelMessages` class
981
+
982
+ ## [0.5.37] - 2024-11-26
983
+ - `content` parameter in `ChatService.modify_assistant_message` and `ChatService.modify_assistant_message_async` is now optional
984
+ - Added optional parameter `original_content` to `ChatService.modify_assistant_message` and `ChatService.modify_assistant_message_async`
985
+ - Added optional parameter `original_content` to `ChatService.create_assistant_message` and `ChatService.create_assistant_message_async`
986
+
987
+ ## [0.5.36] - 2024-11-19
988
+ - Add possibility to return the response from the download file from chat request
989
+ - Add possibility to not specify a filename and use filename from response headers
990
+
991
+ ## [0.5.35] - 2024-11-18
992
+ - Add the possibilty to upload files without triggering ingestion by setting `skip_ingestion` to `True` in `ContentService.upload_content`
993
+
994
+ ## [0.5.34] - 2024-11-15
995
+ - Add `content_id_to_translate` to `EventAdditionalParameters`
996
+
997
+ ## [0.5.33] - 2024-10-30
998
+ - Force randomizing tool_call_id. This is helpful to better identify the tool_calls.
999
+
1000
+ ## [0.5.32] - 2024-10-30
1001
+ - Extending `LanguageModelName` with GPT-4o-2024-0806. This model is invoked using `AZURE_GPT_4o_2024_0806`.
1002
+
1003
+ ## [0.5.31] - 2024-10-29
1004
+ - Adding support for function calling. Assistant message for tool calls can be directly created with `LanguageModelFunctionCall.create_assistant_message_from_tool_calls`. Better separation of schemas for different types of `LanguageModelMessages`.
1005
+
1006
+ ## [0.5.30] - 2024-10-28
1007
+ - Correctly use `temperature` parameter in `LanguageModelService.complete` and `LanguageModelService.complete_async` methods
1008
+
1009
+ ## [0.5.29] - 2024-10-28
1010
+ - Allow numbers in `LanguageModelTool` name
1011
+
1012
+ ## [0.5.28] - 2024-10-23
1013
+ - Correctly use `temperature` parameter in `LanguageModelService.stream_complete` and `LanguageModelService.stream_complete_async` methods
1014
+
1015
+ ## [0.5.27] - 2024-10-22
1016
+ - Add encoder_name to to language model info
1017
+ - Verify tool name for `LanguageModelTool` to conform with frontent requirements.
1018
+ - Add `search_on_chat` to `ContentService`
1019
+
1020
+ ## [0.5.26] - 2024-10-16
1021
+ - Bump `unique_sdk` version
1022
+
1023
+ ## [0.5.25] - 2024-09-26
1024
+ - Add `evaluators` for hallucination and context relevancy evaluation
1025
+
1026
+ ## [0.5.24] - 2024-09-26
1027
+ - Add `originalText` to `_construct_message_modify_params` and `_construct_message_create_params`. This addition makes sure that the `originalText` on the database is populated with the `text`
1028
+
1029
+ ## [0.5.23] - 2024-09-23
1030
+ - Add `set_completed_at` as a boolen parameter to the following functions: `modify_user_message`, `modify_user_message_async`, `modify_assistant_message`, `modify_assistant_message_async`, `create_assistant_message` and `create_assistant_message`. This parameter allows the `completedAt` timestamp on the database to be updated when set to True.
1031
+
1032
+ ## [0.5.22] - 2024-09-17
1033
+ - Add `LanguageModelToolMessage` as additional `LanguageModelMessage`
1034
+
1035
+ ## [0.5.21] - 2024-09-16
1036
+ - Add `tool` as new role to `ChatMessage`, as well as `tool_calls` and `tool_call_id` as additional parameters
1037
+
1038
+ ## [0.5.20] - 2024-09-16
1039
+ - `LanguageModelService` now supports complete_util_async that can be called without instantiating the class, currently being used in the Hallucination service and evaluation API
1040
+
1041
+ ## [0.5.19] - 2024-09-11
1042
+ - `LanguageModelMessage` now supports content as a list of dictionary. Useful when adding image_url content along user message.
1043
+
1044
+ ## [0.5.18] - 2024-09-03
1045
+ - Adds option to use `metadata_filter` with search.
1046
+ - Adds `user_metadata`, `tool_parameters` and `metadata_filter` to `EventPayload`.
1047
+ - Adds `update_debug_info` and `modify_user_message` (and the corresponding `async` variants) to `ChatService`.
1048
+
1049
+ ## [0.5.17] - 2024-08-30
1050
+ - Add option to initiate `LanguageModel` with a string.
1051
+ - Add option to call `LanguageModelService` functions also with a string instead of `LanguageModelName` enum for parameter `model_name`.
1052
+
1053
+ ## [0.5.16] - 2024-08-29
1054
+ - Fix `ContentService.upload_content` function.
1055
+
1056
+ ## [0.5.15] - 2024-08-27
1057
+ - Possibility to specify root directory in `ContentService.download_content`
1058
+
1059
+ ## [0.5.14] - 2024-08-26
1060
+ - Add AZURE_GPT_4o_MINI_2024_0718 to language model infos
1061
+
1062
+ ## [0.5.13] - 2024-08-19
1063
+ - Added `items` to `LanguageModelToolParameterProperty` schema to add support for parameters with list types.
1064
+ - Added `returns` to `LanguageModelTool` schema to describe the return types of tool calls.
1065
+
1066
+ ## [0.5.12] - 2024-08-7
1067
+ - added `completedAt` datetime to `unique_sdk.Message.modify` and `unique_sdk.Message.modify_async`
1068
+ - added `original_text` and `language` to `EventUserMessage`
1069
+
1070
+ ## [0.5.11] - 2024-08-6
1071
+ - made all domain specific functions and classes directly importable from `unique_toolkit.[DOMAIN_NAME]`
1072
+ - renamed `RerankerConfig` to `ContentRerankerConfig`
1073
+ - renamed `get_cosine_similarity` to `calculate_cosine_similarity` and moved it to `unique_toolkit.embedding.utils`
1074
+ - moved `calculate_tokens` from `unique_toolkit.content.utils` to `unique_toolkit.embedding.utils`
1075
+ - disabled deprecation warning in `LanguageModel`
1076
+ - added `additional_parameters` to event
1077
+ - removed `ChatState` and use `Event` instead
1078
+
1079
+ ## [0.5.10] - 2024-08-6
1080
+ - fix content schema
1081
+
1082
+ ## [0.5.9] - 2024-08-6
1083
+ - added `created_at` and `updated_at` to content schema
1084
+
1085
+ ## [0.5.8] - 2024-08-1
1086
+ - `RerankerConfig` serialization alias added
1087
+
1088
+ ## [0.5.7] - 2024-07-31
1089
+ - Replace mocked async service calls with async calls in `unique_sdk`
1090
+ - Change async methods name from `async_*` to `*_async`
1091
+ - Remove `chat_only` and `scope_ids` attributes from `ChatState` class
1092
+ - Replace `AsyncExecutor` by simpler utility function `run_async_tasks_parallel`
1093
+
1094
+ ## [0.5.6] - 2024-07-30
1095
+ - Bug fix: `ContentService.search_content_chunks` and it's `async` equivalent now accept `None` as a valid parameter value for `scope_ids`.
1096
+
1097
+ ## [0.5.5] - 2024-07-30
1098
+ - Added parameters to `ContentService.search_content_chunks` and `ContentService.async_search_content_chunks`
1099
+ - `reranker_config` to optinally rerank the search results
1100
+ - `search_language` to specify a language for full-text-search
1101
+
1102
+ ## [0.5.4] - 2024-07-26
1103
+ - correct ChatMessage schema
1104
+
1105
+ ## [0.5.3] - 2024-07-25
1106
+ - downgrade numpy version to ^1.26.4 to be compatible with langchain libraries (require numpy<2.0)
1107
+
1108
+ ## [0.5.2] - 2024-07-25
1109
+ - correct event schema
1110
+
1111
+ ## [0.5.1] - 2024-07-23
1112
+ - correct documentation
1113
+
1114
+ ## [0.5.0] - 2024-07-23
1115
+ ### Added
1116
+ - Added `unique_toolkit.app` module with the following components:
1117
+ - `init_logging.py` for initializing the logger.
1118
+ - `init_sdk.py` for initializing the SDK with environment variables.
1119
+ - `schemas.py` containing the Event schema.
1120
+ - `verification.py` for verifying the endpoint secret and constructing the event.
1121
+
1122
+ - Added `unique_toolkit.chat` module with the following components:
1123
+ - `state.py` containing the `ChatState` class.
1124
+ - `service.py` containing the `ChatService` class for managing chat interactions.
1125
+ - `schemas.py` containing relevant schemas such as `ChatMessage`.
1126
+ - `utils.py` with utility functions for chat interactions.
1127
+
1128
+ - Added `unique_toolkit.content` module with the following components:
1129
+ - `service.py` containing the `ContentService` class for interacting with content.
1130
+ - `schemas.py` containing relevant schemas such as `Content` and `ContentChunk`.
1131
+ - `utils.py` with utility functions for manipulating content objects.
1132
+
1133
+ - Added `unique_toolkit.embedding` module with the following components:
1134
+ - `service.py` containing the `EmbeddingService` class for working with embeddings.
1135
+ - `schemas.py` containing relevant schemas such as `Embeddings`.
1136
+
1137
+ - Added `unique_toolkit.language_model` module with the following components:
1138
+ - `infos.py` containing information on language models deployed on the Unique platform.
1139
+ - `service.py` containing the `LanguageModelService` class for interacting with language models.
1140
+ - `schemas.py` containing relevant schemas such as `LanguageModelResponse`.
1141
+ - `utils.py` with utility functions for parsing language model output.
1142
+
1143
+ ## [0.0.2] - 2024-07-10
1144
+ - Initial release of `unique_toolkit`.
1145
+