unique_toolkit 1.9.1__tar.gz → 1.10.0__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. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/CHANGELOG.md +6 -0
  2. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/PKG-INFO +8 -2
  3. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/pyproject.toml +2 -2
  4. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/__init__.py +2 -0
  5. unique_toolkit-1.10.0/unique_toolkit/_common/utils/files.py +43 -0
  6. unique_toolkit-1.10.0/unique_toolkit/chat/deprecated/service.py +232 -0
  7. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/chat/service.py +185 -330
  8. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/content/functions.py +59 -1
  9. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/content/schemas.py +23 -0
  10. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/content/service.py +5 -37
  11. unique_toolkit-1.10.0/unique_toolkit/knowledge_base.py +520 -0
  12. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/LICENSE +0 -0
  13. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/README.md +0 -0
  14. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/_common/_base_service.py +0 -0
  15. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/_common/_time_utils.py +0 -0
  16. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
  17. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
  18. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
  19. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
  20. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
  21. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
  22. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
  23. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/_common/default_language_model.py +0 -0
  24. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/_common/endpoint_builder.py +0 -0
  25. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/_common/endpoint_requestor.py +0 -0
  26. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/_common/exception.py +0 -0
  27. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/_common/feature_flags/schema.py +0 -0
  28. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
  29. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/_common/pydantic_helpers.py +0 -0
  30. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/_common/string_utilities.py +0 -0
  31. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/_common/token/image_token_counting.py +0 -0
  32. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/_common/token/token_counting.py +0 -0
  33. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/_common/utils/__init__.py +0 -0
  34. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
  35. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
  36. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/_common/utils/write_configuration.py +0 -0
  37. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/_common/validate_required_values.py +0 -0
  38. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/_common/validators.py +0 -0
  39. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/__init__.py +0 -0
  40. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
  41. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/evaluation/config.py +0 -0
  42. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/evaluation/context_relevancy/prompts.py +0 -0
  43. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
  44. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
  45. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
  46. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/evaluation/exception.py +0 -0
  47. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
  48. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
  49. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/evaluation/hallucination/prompts.py +0 -0
  50. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
  51. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
  52. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
  53. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
  54. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
  55. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
  56. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
  57. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
  58. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
  59. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/history_manager/utils.py +0 -0
  60. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
  61. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
  62. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
  63. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
  64. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/__init__.py +0 -0
  65. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
  66. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
  67. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
  68. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
  69. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
  70. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
  71. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
  72. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
  73. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
  74. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/postprocessing/_display.py +0 -0
  75. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/postprocessing/_utils.py +0 -0
  76. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
  77. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/postprocessing/postprocessor.py +0 -0
  78. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_consolidate_references.py +0 -0
  79. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
  80. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_postprocessor_reference_functions.py +0 -0
  81. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
  82. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
  83. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
  84. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
  85. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
  86. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
  87. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/config.py +0 -0
  88. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/factory.py +0 -0
  89. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
  90. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
  91. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
  92. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
  93. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/schemas.py +0 -0
  94. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
  95. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
  96. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/tool.py +0 -0
  97. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
  98. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
  99. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
  100. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/utils/execution/__init__.py +0 -0
  101. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/utils/execution/execution.py +0 -0
  102. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
  103. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
  104. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
  105. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
  106. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/app/__init__.py +0 -0
  107. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/app/dev_util.py +0 -0
  108. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/app/init_logging.py +0 -0
  109. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/app/init_sdk.py +0 -0
  110. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/app/performance/async_tasks.py +0 -0
  111. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/app/performance/async_wrapper.py +0 -0
  112. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/app/schemas.py +0 -0
  113. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/app/unique_settings.py +0 -0
  114. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/app/verification.py +0 -0
  115. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/chat/__init__.py +0 -0
  116. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/chat/constants.py +0 -0
  117. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/chat/functions.py +0 -0
  118. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/chat/schemas.py +0 -0
  119. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/chat/state.py +0 -0
  120. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/chat/utils.py +0 -0
  121. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/content/__init__.py +0 -0
  122. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/content/constants.py +0 -0
  123. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/content/utils.py +0 -0
  124. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/embedding/__init__.py +0 -0
  125. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/embedding/constants.py +0 -0
  126. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/embedding/functions.py +0 -0
  127. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/embedding/schemas.py +0 -0
  128. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/embedding/service.py +0 -0
  129. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/embedding/utils.py +0 -0
  130. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/framework_utilities/__init__.py +0 -0
  131. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
  132. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
  133. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
  134. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/framework_utilities/openai/client.py +0 -0
  135. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
  136. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/framework_utilities/utils.py +0 -0
  137. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/language_model/__init__.py +0 -0
  138. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/language_model/builder.py +0 -0
  139. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/language_model/constants.py +0 -0
  140. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/language_model/functions.py +0 -0
  141. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/language_model/infos.py +0 -0
  142. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/language_model/prompt.py +0 -0
  143. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/language_model/reference.py +0 -0
  144. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/language_model/schemas.py +0 -0
  145. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/language_model/service.py +0 -0
  146. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/language_model/utils.py +0 -0
  147. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/protocols/support.py +0 -0
  148. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/short_term_memory/__init__.py +0 -0
  149. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/short_term_memory/constants.py +0 -0
  150. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/short_term_memory/functions.py +0 -0
  151. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/short_term_memory/schemas.py +0 -0
  152. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/short_term_memory/service.py +0 -0
  153. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/smart_rules/__init__.py +0 -0
  154. {unique_toolkit-1.9.1 → unique_toolkit-1.10.0}/unique_toolkit/smart_rules/compile.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
+
9
+ ## 1.10.0 - 2025-10-07
10
+ - Introduce future proof knowledgebase service decoupled from chat
11
+ - Extend chat service to download contents in the chat
12
+ - Update documentation
13
+
8
14
  ## [1.9.1] - 2025-10-06
9
15
  - Switch default model used in evaluation service from `GPT-3.5-turbo (0125)` to `GPT-4o (1120)`
10
16
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: unique_toolkit
3
- Version: 1.9.1
3
+ Version: 1.10.0
4
4
  Summary:
5
5
  License: Proprietary
6
6
  Author: Cedric Klinkert
@@ -24,7 +24,7 @@ Requires-Dist: regex (>=2024.5.15,<2025.0.0)
24
24
  Requires-Dist: sseclient (>=0.0.27,<0.0.28)
25
25
  Requires-Dist: tiktoken (>=0.7.0,<0.8.0)
26
26
  Requires-Dist: typing-extensions (>=4.9.0,<5.0.0)
27
- Requires-Dist: unique-sdk (>=0.10.0,<0.11.0)
27
+ Requires-Dist: unique-sdk (>=0.10.28,<0.11.0)
28
28
  Description-Content-Type: text/markdown
29
29
 
30
30
  # Unique Toolkit
@@ -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
+
122
+ ## 1.10.0 - 2025-10-07
123
+ - Introduce future proof knowledgebase service decoupled from chat
124
+ - Extend chat service to download contents in the chat
125
+ - Update documentation
126
+
121
127
  ## [1.9.1] - 2025-10-06
122
128
  - Switch default model used in evaluation service from `GPT-3.5-turbo (0125)` to `GPT-4o (1120)`
123
129
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "unique_toolkit"
3
- version = "1.9.1"
3
+ version = "1.10.0"
4
4
  description = ""
5
5
  authors = [
6
6
  "Cedric Klinkert <cedric.klinkert@unique.ch>",
@@ -27,7 +27,7 @@ sseclient = "^0.0.27"
27
27
  openai = "^1.99.9"
28
28
  platformdirs = "^4.0.0"
29
29
  pillow = "^10.4.0"
30
- unique-sdk = "^0.10.0"
30
+ unique-sdk = "^0.10.28"
31
31
  jambo = "^0.1.2"
32
32
  mkdocs-multirepo-plugin = "^0.8.3"
33
33
  mkdocs-mermaid2-plugin = "^1.2.2"
@@ -2,6 +2,7 @@
2
2
  from unique_toolkit.chat import ChatService
3
3
  from unique_toolkit.content import ContentService
4
4
  from unique_toolkit.embedding import EmbeddingService
5
+ from unique_toolkit.knowledge_base import KnowledgeBaseService
5
6
  from unique_toolkit.language_model import (
6
7
  LanguageModelMessages,
7
8
  LanguageModelName,
@@ -21,4 +22,5 @@ __all__ = [
21
22
  "ContentService",
22
23
  "EmbeddingService",
23
24
  "ShortTermMemoryService",
25
+ "KnowledgeBaseService",
24
26
  ]
@@ -0,0 +1,43 @@
1
+ import mimetypes
2
+ from enum import StrEnum
3
+
4
+
5
+ class FileMimeType(StrEnum):
6
+ PDF = "application/pdf"
7
+ DOCX = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
8
+ DOC = "application/msword"
9
+ XLSX = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
10
+ XLS = "application/vnd.ms-excel"
11
+ PPTX = "application/vnd.openxmlformats-officedocument.presentationml.presentation"
12
+ CSV = "text/csv"
13
+ HTML = "text/html"
14
+ MD = "text/markdown"
15
+ TXT = "text/plain"
16
+
17
+
18
+ class ImageMimeType(StrEnum):
19
+ JPEG = "image/jpeg"
20
+ PNG = "image/png"
21
+ GIF = "image/gif"
22
+ BMP = "image/bmp"
23
+ WEBP = "image/webp"
24
+ TIFF = "image/tiff"
25
+ SVG = "image/svg+xml"
26
+
27
+
28
+ def is_file_content(filename: str) -> bool:
29
+ mimetype, _ = mimetypes.guess_type(filename)
30
+
31
+ if not mimetype:
32
+ return False
33
+
34
+ return mimetype in FileMimeType.__members__.values()
35
+
36
+
37
+ def is_image_content(filename: str) -> bool:
38
+ mimetype, _ = mimetypes.guess_type(filename)
39
+
40
+ if not mimetype:
41
+ return False
42
+
43
+ return mimetype in ImageMimeType.__members__.values()
@@ -0,0 +1,232 @@
1
+ from typing_extensions import deprecated
2
+
3
+ from unique_toolkit.app.schemas import ChatEvent, Event
4
+ from unique_toolkit.chat.functions import (
5
+ modify_message,
6
+ )
7
+
8
+
9
+ class ChatServiceDeprecated:
10
+ def __init__(self, event: ChatEvent | Event):
11
+ self._event = event
12
+ self._company_id: str = event.company_id
13
+ self._user_id: str = event.user_id
14
+ self._assistant_message_id: str = event.payload.assistant_message.id
15
+ self._user_message_id: str = event.payload.user_message.id
16
+ self._chat_id: str = event.payload.chat_id
17
+ self._assistant_id: str = event.payload.assistant_id
18
+ self._user_message_text: str = event.payload.user_message.text
19
+
20
+ @property
21
+ @deprecated(
22
+ "The event property is deprecated and will be removed in a future version.",
23
+ )
24
+ def event(self) -> Event | ChatEvent:
25
+ """Get the event object (deprecated).
26
+
27
+ Returns:
28
+ Event | BaseEvent | None: The event object.
29
+
30
+ """
31
+ return self._event
32
+
33
+ @property
34
+ @deprecated(
35
+ "The company_id property is deprecated and will be removed in a future version.",
36
+ )
37
+ def company_id(self) -> str:
38
+ """Get the company identifier (deprecated).
39
+
40
+ Returns:
41
+ str | None: The company identifier.
42
+
43
+ """
44
+ return self._company_id
45
+
46
+ @company_id.setter
47
+ @deprecated(
48
+ "The company_id setter is deprecated and will be removed in a future version.",
49
+ )
50
+ def company_id(self, value: str) -> None:
51
+ """Set the company identifier (deprecated).
52
+
53
+ Args:
54
+ value (str | None): The company identifier.
55
+
56
+ """
57
+ self._company_id = value
58
+
59
+ @property
60
+ @deprecated(
61
+ "The user_id property is deprecated and will be removed in a future version.",
62
+ )
63
+ def user_id(self) -> str:
64
+ """Get the user identifier (deprecated).
65
+
66
+ Returns:
67
+ str | None: The user identifier.
68
+
69
+ """
70
+ return self._user_id
71
+
72
+ @user_id.setter
73
+ @deprecated(
74
+ "The user_id setter is deprecated and will be removed in a future version.",
75
+ )
76
+ def user_id(self, value: str) -> None:
77
+ """Set the user identifier (deprecated).
78
+
79
+ Args:
80
+ value (str | None): The user identifier.
81
+
82
+ """
83
+ self._user_id = value
84
+
85
+ @property
86
+ @deprecated(
87
+ "The assistant_message_id property is deprecated and will be removed in a future version.",
88
+ )
89
+ def assistant_message_id(self) -> str:
90
+ """Get the assistant message identifier (deprecated).
91
+
92
+ Returns:
93
+ str | None: The assistant message identifier.
94
+
95
+ """
96
+ return self._assistant_message_id
97
+
98
+ @assistant_message_id.setter
99
+ @deprecated(
100
+ "The assistant_message_id setter is deprecated and will be removed in a future version.",
101
+ )
102
+ def assistant_message_id(self, value: str) -> None:
103
+ """Set the assistant message identifier (deprecated).
104
+
105
+ Args:
106
+ value (str | None): The assistant message identifier.
107
+
108
+ """
109
+ self._assistant_message_id = value
110
+
111
+ @property
112
+ @deprecated(
113
+ "The user_message_id property is deprecated and will be removed in a future version.",
114
+ )
115
+ def user_message_id(self) -> str:
116
+ """Get the user message identifier (deprecated).
117
+
118
+ Returns:
119
+ str | None: The user message identifier.
120
+
121
+ """
122
+ return self._user_message_id
123
+
124
+ @user_message_id.setter
125
+ @deprecated(
126
+ "The user_message_id setter is deprecated and will be removed in a future version.",
127
+ )
128
+ def user_message_id(self, value: str) -> None:
129
+ """Set the user message identifier (deprecated).
130
+
131
+ Args:
132
+ value (str | None): The user message identifier.
133
+
134
+ """
135
+ self._user_message_id = value
136
+
137
+ @property
138
+ @deprecated(
139
+ "The chat_id property is deprecated and will be removed in a future version.",
140
+ )
141
+ def chat_id(self) -> str:
142
+ """Get the chat identifier (deprecated).
143
+
144
+ Returns:
145
+ str | None: The chat identifier.
146
+
147
+ """
148
+ return self._chat_id
149
+
150
+ @chat_id.setter
151
+ @deprecated(
152
+ "The chat_id setter is deprecated and will be removed in a future version.",
153
+ )
154
+ def chat_id(self, value: str) -> None:
155
+ """Set the chat identifier (deprecated).
156
+
157
+ Args:
158
+ value (str | None): The chat identifier.
159
+
160
+ """
161
+ self._chat_id = value
162
+
163
+ @property
164
+ @deprecated(
165
+ "The assistant_id property is deprecated and will be removed in a future version.",
166
+ )
167
+ def assistant_id(self) -> str:
168
+ """Get the assistant identifier (deprecated).
169
+
170
+ Returns:
171
+ str | None: The assistant identifier.
172
+
173
+ """
174
+ return self._assistant_id
175
+
176
+ @assistant_id.setter
177
+ @deprecated(
178
+ "The assistant_id setter is deprecated and will be removed in a future version.",
179
+ )
180
+ def assistant_id(self, value: str) -> None:
181
+ """Set the assistant identifier (deprecated).
182
+
183
+ Args:
184
+ value (str | None): The assistant identifier.
185
+
186
+ """
187
+ self._assistant_id = value
188
+
189
+ @property
190
+ @deprecated(
191
+ "The user_message_text property is deprecated and will be removed in a future version.",
192
+ )
193
+ def user_message_text(self) -> str:
194
+ """Get the user message text (deprecated).
195
+
196
+ Returns:
197
+ str | None: The user message text.
198
+
199
+ """
200
+ return self._user_message_text
201
+
202
+ @user_message_text.setter
203
+ @deprecated(
204
+ "The user_message_text setter is deprecated and will be removed in a future version.",
205
+ )
206
+ def user_message_text(self, value: str) -> None:
207
+ """Set the user message text (deprecated).
208
+
209
+ Args:
210
+ value (str | None): The user message text.
211
+
212
+ """
213
+ self._user_message_text = value
214
+
215
+ @deprecated("Use `replace_debug_info`")
216
+ def update_debug_info(self, debug_info: dict):
217
+ """Updates the debug information for the chat session.
218
+
219
+ Args:
220
+ debug_info (dict): The new debug information.
221
+
222
+ """
223
+ return modify_message(
224
+ user_id=self._user_id,
225
+ company_id=self._company_id,
226
+ assistant_message_id=self._assistant_message_id,
227
+ chat_id=self._chat_id,
228
+ user_message_id=self._user_message_id,
229
+ user_message_text=self._user_message_text,
230
+ assistant=False,
231
+ debug_info=debug_info,
232
+ )