unique_toolkit 1.9.0__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.
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/CHANGELOG.md +9 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/PKG-INFO +12 -3
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/README.md +1 -1
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/pyproject.toml +2 -2
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/__init__.py +2 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +3 -3
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +1 -2
- unique_toolkit-1.10.0/unique_toolkit/_common/default_language_model.py +3 -0
- unique_toolkit-1.10.0/unique_toolkit/_common/utils/files.py +43 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/evaluation/config.py +3 -2
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +2 -2
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/history_manager/history_manager.py +3 -4
- unique_toolkit-1.10.0/unique_toolkit/chat/deprecated/service.py +232 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/chat/service.py +185 -330
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/content/functions.py +59 -1
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/content/schemas.py +23 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/content/service.py +5 -37
- unique_toolkit-1.10.0/unique_toolkit/knowledge_base.py +520 -0
- unique_toolkit-1.9.0/unique_toolkit/_common/default_language_model.py +0 -6
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/LICENSE +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/_common/_base_service.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/_common/_time_utils.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/_common/endpoint_builder.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/_common/endpoint_requestor.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/_common/exception.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/_common/feature_flags/schema.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/_common/pydantic_helpers.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/_common/string_utilities.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/_common/token/image_token_counting.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/_common/token/token_counting.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/_common/utils/__init__.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/_common/utils/write_configuration.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/_common/validate_required_values.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/_common/validators.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/__init__.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/evaluation/context_relevancy/prompts.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/evaluation/exception.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/evaluation/hallucination/prompts.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/history_manager/utils.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/__init__.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/postprocessing/_display.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/postprocessing/_utils.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/postprocessing/postprocessor.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_consolidate_references.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_postprocessor_reference_functions.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/config.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/factory.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/schemas.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/tool.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/utils/execution/__init__.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/utils/execution/execution.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/app/__init__.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/app/dev_util.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/app/init_logging.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/app/init_sdk.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/app/performance/async_tasks.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/app/performance/async_wrapper.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/app/schemas.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/app/unique_settings.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/app/verification.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/chat/__init__.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/chat/constants.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/chat/functions.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/chat/schemas.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/chat/state.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/chat/utils.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/content/__init__.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/content/constants.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/content/utils.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/embedding/__init__.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/embedding/constants.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/embedding/functions.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/embedding/schemas.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/embedding/service.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/embedding/utils.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/framework_utilities/__init__.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/framework_utilities/openai/client.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/framework_utilities/utils.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/language_model/__init__.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/language_model/builder.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/language_model/constants.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/language_model/functions.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/language_model/infos.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/language_model/prompt.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/language_model/reference.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/language_model/schemas.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/language_model/service.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/language_model/utils.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/protocols/support.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/short_term_memory/__init__.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/short_term_memory/constants.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/short_term_memory/functions.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/short_term_memory/schemas.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/short_term_memory/service.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/smart_rules/__init__.py +0 -0
- {unique_toolkit-1.9.0 → unique_toolkit-1.10.0}/unique_toolkit/smart_rules/compile.py +0 -0
@@ -5,6 +5,15 @@ 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
|
+
|
14
|
+
## [1.9.1] - 2025-10-06
|
15
|
+
- Switch default model used in evaluation service from `GPT-3.5-turbo (0125)` to `GPT-4o (1120)`
|
16
|
+
|
8
17
|
## [1.9.0] - 2026-10-04
|
9
18
|
- Define the RequestContext and add aihttp/httpx requestors
|
10
19
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: unique_toolkit
|
3
|
-
Version: 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.
|
27
|
+
Requires-Dist: unique-sdk (>=0.10.28,<0.11.0)
|
28
28
|
Description-Content-Type: text/markdown
|
29
29
|
|
30
30
|
# Unique Toolkit
|
@@ -88,7 +88,7 @@ The `unique_toolkit.embedding` module encompasses all embedding related function
|
|
88
88
|
The `unique_toolkit.language_model` module encompasses all language model related functionality and information on the different language models deployed through the
|
89
89
|
Unique platform.
|
90
90
|
|
91
|
-
- `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.
|
91
|
+
- `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.
|
92
92
|
- `functions.py` comprises the functions to complete and stream complete to chat.
|
93
93
|
- `service.py` comprises the LanguageModelService and provides an interface to interact with the language models, e.g., complete.
|
94
94
|
- `schemas.py` comprises all relevant schemas, e.g., LanguageModelResponse, used in the LanguageModelService.
|
@@ -118,6 +118,15 @@ 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
|
+
|
127
|
+
## [1.9.1] - 2025-10-06
|
128
|
+
- Switch default model used in evaluation service from `GPT-3.5-turbo (0125)` to `GPT-4o (1120)`
|
129
|
+
|
121
130
|
## [1.9.0] - 2026-10-04
|
122
131
|
- Define the RequestContext and add aihttp/httpx requestors
|
123
132
|
|
@@ -59,7 +59,7 @@ The `unique_toolkit.embedding` module encompasses all embedding related function
|
|
59
59
|
The `unique_toolkit.language_model` module encompasses all language model related functionality and information on the different language models deployed through the
|
60
60
|
Unique platform.
|
61
61
|
|
62
|
-
- `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.
|
62
|
+
- `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.
|
63
63
|
- `functions.py` comprises the functions to complete and stream complete to chat.
|
64
64
|
- `service.py` comprises the LanguageModelService and provides an interface to interact with the language models, e.g., complete.
|
65
65
|
- `schemas.py` comprises all relevant schemas, e.g., LanguageModelResponse, used in the LanguageModelService.
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[tool.poetry]
|
2
2
|
name = "unique_toolkit"
|
3
|
-
version = "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.
|
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
|
]
|
@@ -2,7 +2,7 @@ from typing import Annotated, Any
|
|
2
2
|
|
3
3
|
from pydantic import BaseModel, Field
|
4
4
|
|
5
|
-
from unique_toolkit._common.default_language_model import
|
5
|
+
from unique_toolkit._common.default_language_model import DEFAULT_GPT_4o
|
6
6
|
from unique_toolkit._common.validators import LMI, get_LMI_default_field
|
7
7
|
from unique_toolkit.agentic.evaluation.context_relevancy.schema import (
|
8
8
|
StructuredOutputConfig,
|
@@ -25,11 +25,11 @@ class ChunkRelevancySortConfig(BaseModel):
|
|
25
25
|
description="The relevancy level order.",
|
26
26
|
)
|
27
27
|
language_model: LMI = get_LMI_default_field(
|
28
|
-
|
28
|
+
DEFAULT_GPT_4o,
|
29
29
|
description="The language model to use for the chunk relevancy sort.",
|
30
30
|
)
|
31
31
|
fallback_language_model: LMI = get_LMI_default_field(
|
32
|
-
|
32
|
+
DEFAULT_GPT_4o,
|
33
33
|
description="The language model to use as a fallback.",
|
34
34
|
)
|
35
35
|
additional_llm_options: dict[str, Any] = Field(
|
@@ -14,7 +14,6 @@ from unique_toolkit._common.chunk_relevancy_sorter.schemas import (
|
|
14
14
|
)
|
15
15
|
from unique_toolkit._common.chunk_relevancy_sorter.service import ChunkRelevancySorter
|
16
16
|
from unique_toolkit._common.default_language_model import (
|
17
|
-
DEFAULT_GPT_35_TURBO,
|
18
17
|
DEFAULT_GPT_4o,
|
19
18
|
)
|
20
19
|
from unique_toolkit.agentic.evaluation.context_relevancy.schema import (
|
@@ -60,7 +59,7 @@ def config():
|
|
60
59
|
relevancy_levels_to_consider=["high", "medium", "low"],
|
61
60
|
relevancy_level_order={"high": 0, "medium": 1, "low": 2},
|
62
61
|
language_model=LanguageModelInfo.from_name(DEFAULT_GPT_4o),
|
63
|
-
fallback_language_model=LanguageModelInfo.from_name(
|
62
|
+
fallback_language_model=LanguageModelInfo.from_name(DEFAULT_GPT_4o),
|
64
63
|
structured_output_config=StructuredOutputConfig(
|
65
64
|
enabled=False,
|
66
65
|
extract_fact_list=False,
|
@@ -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()
|
@@ -3,8 +3,9 @@ from typing import Any
|
|
3
3
|
from humps import camelize
|
4
4
|
from pydantic import BaseModel, ConfigDict, Field
|
5
5
|
|
6
|
+
from unique_toolkit._common.default_language_model import DEFAULT_GPT_4o
|
6
7
|
from unique_toolkit._common.validators import LMI
|
7
|
-
from unique_toolkit.language_model.infos import LanguageModelInfo
|
8
|
+
from unique_toolkit.language_model.infos import LanguageModelInfo
|
8
9
|
|
9
10
|
from .schemas import (
|
10
11
|
EvaluationMetricName,
|
@@ -24,7 +25,7 @@ class EvaluationMetricConfig(BaseModel):
|
|
24
25
|
enabled: bool = False
|
25
26
|
name: EvaluationMetricName
|
26
27
|
language_model: LMI = LanguageModelInfo.from_name(
|
27
|
-
|
28
|
+
DEFAULT_GPT_4o,
|
28
29
|
)
|
29
30
|
additional_llm_options: dict[str, Any] = Field(
|
30
31
|
default={},
|
@@ -4,7 +4,7 @@ from typing import overload
|
|
4
4
|
from pydantic import BaseModel, ValidationError
|
5
5
|
from typing_extensions import deprecated
|
6
6
|
|
7
|
-
from unique_toolkit._common.default_language_model import
|
7
|
+
from unique_toolkit._common.default_language_model import DEFAULT_GPT_4o
|
8
8
|
from unique_toolkit._common.validate_required_values import (
|
9
9
|
validate_required_values,
|
10
10
|
)
|
@@ -49,7 +49,7 @@ USER_MSG_KEY = "userPrompt"
|
|
49
49
|
default_config = EvaluationMetricConfig(
|
50
50
|
enabled=False,
|
51
51
|
name=EvaluationMetricName.CONTEXT_RELEVANCY,
|
52
|
-
language_model=LanguageModelInfo.from_name(
|
52
|
+
language_model=LanguageModelInfo.from_name(DEFAULT_GPT_4o),
|
53
53
|
custom_prompts={
|
54
54
|
SYSTEM_MSG_KEY: CONTEXT_RELEVANCY_METRIC_SYSTEM_MSG,
|
55
55
|
USER_MSG_KEY: CONTEXT_RELEVANCY_METRIC_USER_MSG,
|
@@ -3,6 +3,7 @@ from typing import Annotated, Awaitable, Callable
|
|
3
3
|
|
4
4
|
from pydantic import BaseModel, Field
|
5
5
|
|
6
|
+
from unique_toolkit._common.default_language_model import DEFAULT_GPT_4o
|
6
7
|
from unique_toolkit._common.validators import LMI
|
7
8
|
from unique_toolkit.agentic.history_manager.loop_token_reducer import LoopTokenReducer
|
8
9
|
from unique_toolkit.agentic.history_manager.utils import transform_chunks_to_string
|
@@ -10,7 +11,7 @@ from unique_toolkit.agentic.reference_manager.reference_manager import Reference
|
|
10
11
|
from unique_toolkit.agentic.tools.config import get_configuration_dict
|
11
12
|
from unique_toolkit.agentic.tools.schemas import ToolCallResponse
|
12
13
|
from unique_toolkit.app.schemas import ChatEvent
|
13
|
-
from unique_toolkit.language_model.infos import LanguageModelInfo
|
14
|
+
from unique_toolkit.language_model.infos import LanguageModelInfo
|
14
15
|
from unique_toolkit.language_model.schemas import (
|
15
16
|
LanguageModelAssistantMessage,
|
16
17
|
LanguageModelFunction,
|
@@ -61,9 +62,7 @@ class HistoryManagerConfig(BaseModel):
|
|
61
62
|
description="The fraction of the max input tokens that will be reserved for the history.",
|
62
63
|
)
|
63
64
|
|
64
|
-
language_model: LMI = LanguageModelInfo.from_name(
|
65
|
-
LanguageModelName.AZURE_GPT_4o_2024_1120
|
66
|
-
)
|
65
|
+
language_model: LMI = LanguageModelInfo.from_name(DEFAULT_GPT_4o)
|
67
66
|
|
68
67
|
@property
|
69
68
|
def max_history_tokens(self) -> int:
|
@@ -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
|
+
)
|