unique_toolkit 1.14.8__tar.gz → 1.14.10__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 (159) hide show
  1. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/CHANGELOG.md +6 -0
  2. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/PKG-INFO +7 -1
  3. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/pyproject.toml +1 -1
  4. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +3 -4
  5. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/services/knowledge_base.py +14 -1
  6. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/LICENSE +0 -0
  7. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/README.md +0 -0
  8. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/__init__.py +0 -0
  9. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/_common/_base_service.py +0 -0
  10. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/_common/_time_utils.py +0 -0
  11. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
  12. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
  13. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
  14. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
  15. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
  16. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
  17. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
  18. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/_common/default_language_model.py +0 -0
  19. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/_common/endpoint_builder.py +0 -0
  20. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/_common/endpoint_requestor.py +0 -0
  21. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/_common/exception.py +0 -0
  22. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/_common/feature_flags/schema.py +0 -0
  23. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
  24. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/_common/pydantic_helpers.py +0 -0
  25. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/_common/string_utilities.py +0 -0
  26. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/_common/token/image_token_counting.py +0 -0
  27. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/_common/token/token_counting.py +0 -0
  28. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/_common/utils/__init__.py +0 -0
  29. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/_common/utils/files.py +0 -0
  30. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
  31. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
  32. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/_common/utils/write_configuration.py +0 -0
  33. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/_common/validate_required_values.py +0 -0
  34. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/_common/validators.py +0 -0
  35. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/__init__.py +0 -0
  36. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
  37. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/evaluation/config.py +0 -0
  38. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/evaluation/context_relevancy/prompts.py +0 -0
  39. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
  40. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
  41. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
  42. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/evaluation/exception.py +0 -0
  43. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
  44. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
  45. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/evaluation/hallucination/prompts.py +0 -0
  46. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
  47. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
  48. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
  49. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
  50. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
  51. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
  52. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
  53. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
  54. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/history_manager/utils.py +0 -0
  55. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
  56. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
  57. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
  58. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
  59. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/__init__.py +0 -0
  60. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
  61. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
  62. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
  63. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
  64. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
  65. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
  66. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
  67. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
  68. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
  69. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/a2a/postprocessing/_display.py +0 -0
  70. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/a2a/postprocessing/_utils.py +0 -0
  71. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
  72. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/a2a/postprocessing/postprocessor.py +0 -0
  73. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_consolidate_references.py +0 -0
  74. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
  75. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_postprocessor_reference_functions.py +0 -0
  76. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
  77. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
  78. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
  79. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
  80. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
  81. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
  82. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
  83. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/config.py +0 -0
  84. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/factory.py +0 -0
  85. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
  86. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
  87. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
  88. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
  89. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/schemas.py +0 -0
  90. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
  91. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
  92. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/tool.py +0 -0
  93. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
  94. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
  95. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
  96. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/utils/execution/__init__.py +0 -0
  97. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/utils/execution/execution.py +0 -0
  98. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
  99. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
  100. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
  101. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
  102. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/app/__init__.py +0 -0
  103. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/app/dev_util.py +0 -0
  104. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/app/init_logging.py +0 -0
  105. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/app/init_sdk.py +0 -0
  106. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/app/performance/async_tasks.py +0 -0
  107. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/app/performance/async_wrapper.py +0 -0
  108. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/app/schemas.py +0 -0
  109. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/app/unique_settings.py +0 -0
  110. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/app/verification.py +0 -0
  111. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/chat/__init__.py +0 -0
  112. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/chat/constants.py +0 -0
  113. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/chat/deprecated/service.py +0 -0
  114. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/chat/functions.py +0 -0
  115. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/chat/schemas.py +0 -0
  116. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/chat/service.py +0 -0
  117. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/chat/state.py +0 -0
  118. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/chat/utils.py +0 -0
  119. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/content/__init__.py +0 -0
  120. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/content/constants.py +0 -0
  121. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/content/functions.py +0 -0
  122. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/content/schemas.py +0 -0
  123. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/content/service.py +0 -0
  124. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/content/smart_rules.py +0 -0
  125. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/content/utils.py +0 -0
  126. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/embedding/__init__.py +0 -0
  127. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/embedding/constants.py +0 -0
  128. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/embedding/functions.py +0 -0
  129. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/embedding/schemas.py +0 -0
  130. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/embedding/service.py +0 -0
  131. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/embedding/utils.py +0 -0
  132. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/framework_utilities/__init__.py +0 -0
  133. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
  134. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
  135. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
  136. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/framework_utilities/openai/client.py +0 -0
  137. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
  138. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/framework_utilities/utils.py +0 -0
  139. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/language_model/__init__.py +0 -0
  140. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/language_model/builder.py +0 -0
  141. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/language_model/constants.py +0 -0
  142. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/language_model/default_language_model.py +0 -0
  143. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/language_model/functions.py +0 -0
  144. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/language_model/infos.py +0 -0
  145. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/language_model/prompt.py +0 -0
  146. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/language_model/reference.py +0 -0
  147. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/language_model/schemas.py +0 -0
  148. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/language_model/service.py +0 -0
  149. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/language_model/utils.py +0 -0
  150. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/protocols/support.py +0 -0
  151. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/services/chat_service.py +0 -0
  152. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/short_term_memory/__init__.py +0 -0
  153. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/short_term_memory/constants.py +0 -0
  154. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/short_term_memory/functions.py +0 -0
  155. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/short_term_memory/schemas.py +0 -0
  156. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/short_term_memory/service.py +0 -0
  157. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/smart_rules/__init__.py +0 -0
  158. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/smart_rules/compile.py +0 -0
  159. {unique_toolkit-1.14.8 → unique_toolkit-1.14.10}/unique_toolkit/test_utilities/events.py +0 -0
@@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.14.10] - 2025-10-13
9
+ - Fix token counter if images in history
10
+
11
+ ## [1.14.9] - 2025-10-13
12
+ - Fix removal of metadata
13
+
8
14
  ## [1.14.8] - 2025-10-13
9
15
  - Use default tool icon on validation error
10
16
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: unique_toolkit
3
- Version: 1.14.8
3
+ Version: 1.14.10
4
4
  Summary:
5
5
  License: Proprietary
6
6
  Author: Cedric Klinkert
@@ -118,6 +118,12 @@ All notable changes to this project will be documented in this file.
118
118
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
119
119
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
120
120
 
121
+ ## [1.14.10] - 2025-10-13
122
+ - Fix token counter if images in history
123
+
124
+ ## [1.14.9] - 2025-10-13
125
+ - Fix removal of metadata
126
+
121
127
  ## [1.14.8] - 2025-10-13
122
128
  - Use default tool icon on validation error
123
129
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "unique_toolkit"
3
- version = "1.14.8"
3
+ version = "1.14.10"
4
4
  description = ""
5
5
  authors = [
6
6
  "Cedric Klinkert <cedric.klinkert@unique.ch>",
@@ -266,7 +266,9 @@ class LoopTokenReducer:
266
266
  selected_messages = []
267
267
  token_count = 0
268
268
  for msg in messages[::-1]:
269
- msg_token_count = self._count_tokens(str(msg.content))
269
+ msg_token_count = self._count_message_tokens(
270
+ LanguageModelMessages(root=[msg])
271
+ )
270
272
  if token_count + msg_token_count > token_limit:
271
273
  break
272
274
  selected_messages.append(msg)
@@ -293,9 +295,6 @@ class LoopTokenReducer:
293
295
  )
294
296
  return messages
295
297
 
296
- def _count_tokens(self, text: str) -> int:
297
- return len(self._encoder.encode(text))
298
-
299
298
  def ensure_last_message_is_user_message(self, limited_history_messages):
300
299
  """
301
300
  As the token limit can be reached in the middle of a gpt_request,
@@ -637,6 +637,8 @@ class KnowledgeBaseService:
637
637
  ) -> ContentInfo:
638
638
  """
639
639
  Removes the specified keys irreversibly from the content metadata.
640
+
641
+ Note: Keys are camelized before being removed as metadata keys are stored in camelCase.
640
642
  """
641
643
 
642
644
  if content_info.metadata is None:
@@ -644,7 +646,7 @@ class KnowledgeBaseService:
644
646
  return content_info
645
647
 
646
648
  for key in keys_to_remove:
647
- content_info.metadata.pop(key, None)
649
+ content_info.metadata[humps.camelize(key)] = None
648
650
 
649
651
  return update_content(
650
652
  user_id=self._user_id,
@@ -673,6 +675,11 @@ class KnowledgeBaseService:
673
675
  metadata_filter: dict[str, Any] | None = None,
674
676
  content_infos: list[ContentInfo] | None = None,
675
677
  ) -> list[ContentInfo]:
678
+ """Update the metadata of the contents matching the metadata filter.
679
+
680
+ Note: Keys are camelized before being updated as metadata keys are stored in camelCase.
681
+ """
682
+
676
683
  additional_metadata_camelized = humps.camelize(additional_metadata)
677
684
  additional_metadata_camelized = self._pop_forbidden_metadata_keys(
678
685
  additional_metadata_camelized
@@ -710,6 +717,12 @@ class KnowledgeBaseService:
710
717
  metadata_filter: dict[str, Any] | None = None,
711
718
  content_infos: list[ContentInfo] | None = None,
712
719
  ) -> list[ContentInfo]:
720
+ """Remove the specified keys irreversibly from the content metadata.
721
+
722
+ Note: Keys are camelized before being removed as metadata keys are stored in camelCase.
723
+
724
+ """
725
+
713
726
  if content_infos is None:
714
727
  content_infos = self.get_paginated_content_infos(
715
728
  metadata_filter=metadata_filter,