unique_toolkit 1.14.11__tar.gz → 1.15.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.14.11 → unique_toolkit-1.15.0}/CHANGELOG.md +3 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/PKG-INFO +4 -1
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/pyproject.toml +1 -1
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/_common/api_calling/human_verification_manager.py +95 -15
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/LICENSE +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/README.md +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/__init__.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/_common/_base_service.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/_common/_time_utils.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/_common/default_language_model.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/_common/endpoint_builder.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/_common/endpoint_requestor.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/_common/exception.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/_common/feature_flags/schema.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/_common/pydantic_helpers.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/_common/string_utilities.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/_common/token/image_token_counting.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/_common/token/token_counting.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/_common/utils/__init__.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/_common/utils/files.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/_common/utils/write_configuration.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/_common/validate_required_values.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/_common/validators.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/__init__.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/evaluation/config.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/evaluation/context_relevancy/prompts.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/evaluation/exception.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/evaluation/hallucination/prompts.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/history_manager/utils.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/__init__.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/a2a/postprocessing/_display.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/a2a/postprocessing/_utils.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/a2a/postprocessing/postprocessor.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_consolidate_references.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_postprocessor_reference_functions.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/config.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/factory.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/schemas.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/tool.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/utils/execution/__init__.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/utils/execution/execution.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/app/__init__.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/app/dev_util.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/app/init_logging.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/app/init_sdk.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/app/performance/async_tasks.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/app/performance/async_wrapper.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/app/schemas.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/app/unique_settings.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/app/verification.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/chat/__init__.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/chat/constants.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/chat/deprecated/service.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/chat/functions.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/chat/schemas.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/chat/service.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/chat/state.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/chat/utils.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/content/__init__.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/content/constants.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/content/functions.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/content/schemas.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/content/service.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/content/smart_rules.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/content/utils.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/embedding/__init__.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/embedding/constants.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/embedding/functions.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/embedding/schemas.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/embedding/service.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/embedding/utils.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/framework_utilities/__init__.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/framework_utilities/openai/client.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/framework_utilities/utils.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/language_model/__init__.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/language_model/builder.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/language_model/constants.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/language_model/default_language_model.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/language_model/functions.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/language_model/infos.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/language_model/prompt.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/language_model/reference.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/language_model/schemas.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/language_model/service.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/language_model/utils.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/protocols/support.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/services/chat_service.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/services/knowledge_base.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/short_term_memory/__init__.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/short_term_memory/constants.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/short_term_memory/functions.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/short_term_memory/schemas.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/short_term_memory/service.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/smart_rules/__init__.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/smart_rules/compile.py +0 -0
- {unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/test_utilities/events.py +0 -0
@@ -5,6 +5,9 @@ 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.15.0] - 2025-10-15
|
9
|
+
- Enable to distinguish between environment and modifiable payload parameters in human verification
|
10
|
+
|
8
11
|
## [1.14.11] - 2025-10-13
|
9
12
|
- Introduce testing guidelines for AI
|
10
13
|
- Add AI tests to `tool_config` and `tool_factory.py`
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: unique_toolkit
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.15.0
|
4
4
|
Summary:
|
5
5
|
License: Proprietary
|
6
6
|
Author: Cedric Klinkert
|
@@ -118,6 +118,9 @@ 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.15.0] - 2025-10-15
|
122
|
+
- Enable to distinguish between environment and modifiable payload parameters in human verification
|
123
|
+
|
121
124
|
## [1.14.11] - 2025-10-13
|
122
125
|
- Introduce testing guidelines for AI
|
123
126
|
- Add AI tests to `tool_config` and `tool_factory.py`
|
@@ -19,7 +19,10 @@ from unique_toolkit._common.endpoint_requestor import (
|
|
19
19
|
RequestorType,
|
20
20
|
build_requestor,
|
21
21
|
)
|
22
|
-
from unique_toolkit._common.pydantic_helpers import
|
22
|
+
from unique_toolkit._common.pydantic_helpers import (
|
23
|
+
create_complement_model,
|
24
|
+
create_union_model,
|
25
|
+
)
|
23
26
|
from unique_toolkit._common.string_utilities import (
|
24
27
|
dict_to_markdown_table,
|
25
28
|
extract_dicts_from_string,
|
@@ -78,24 +81,67 @@ class HumanVerificationManagerForApiCalling(
|
|
78
81
|
]
|
79
82
|
],
|
80
83
|
requestor_type: RequestorType = RequestorType.REQUESTS,
|
84
|
+
environment_payload_params: BaseModel | None = None,
|
85
|
+
modifiable_payload_params_model: type[BaseModel] | None = None,
|
81
86
|
**kwargs: dict[str, Any],
|
82
87
|
):
|
88
|
+
"""
|
89
|
+
Manages human verification for api calling.
|
90
|
+
|
91
|
+
Args:
|
92
|
+
logger: The logger to use for logging.
|
93
|
+
operation: The operation to use for the api calling.
|
94
|
+
requestor_type: The requestor type to use for the api calling.
|
95
|
+
environment_payload_params: The environment payload params to use for the api calling.
|
96
|
+
If None, the modifiable params model will be the operation payload model.
|
97
|
+
This can be useful for parameters in the payload that should not be modified by the user.
|
98
|
+
modifiable_payload_params_model: The modifiable payload params model to use for the api calling.
|
99
|
+
If None, a complement model will be created using the operation payload model
|
100
|
+
and the environment payload params.
|
101
|
+
If provided, it will be used instead of the complement model.
|
102
|
+
This is necessary if the modifiable params model is required
|
103
|
+
to use custom validators or serializers.
|
104
|
+
**kwargs: Additional keyword arguments to pass to the requestor.
|
105
|
+
"""
|
83
106
|
self._logger = logger
|
84
107
|
self._operation = operation
|
85
|
-
|
108
|
+
self._environment_payload_params = environment_payload_params
|
86
109
|
# Create internal models for this manager instance
|
87
110
|
|
88
|
-
|
111
|
+
if self._environment_payload_params is None:
|
112
|
+
self._modifiable_payload_params_model = self._operation.payload_model()
|
113
|
+
else:
|
114
|
+
if modifiable_payload_params_model is None:
|
115
|
+
self._modifiable_payload_params_model = create_complement_model(
|
116
|
+
model_type_a=self._operation.payload_model(),
|
117
|
+
model_type_b=type(self._environment_payload_params),
|
118
|
+
)
|
119
|
+
else:
|
120
|
+
# This is necessary if the modifiable params model is required
|
121
|
+
# to use custom validators or serializers.
|
122
|
+
self._modifiable_payload_params_model = modifiable_payload_params_model
|
123
|
+
|
124
|
+
if self._environment_payload_params is not None:
|
125
|
+
combined_keys = set(
|
126
|
+
self._modifiable_payload_params_model.model_fields.keys()
|
127
|
+
) | set(type(self._environment_payload_params).model_fields.keys())
|
128
|
+
payload_keys = set(self._operation.payload_model().model_fields.keys())
|
129
|
+
if not payload_keys.issubset(combined_keys):
|
130
|
+
raise ValueError(
|
131
|
+
"The modifiable params model + the environment parameters do not have all the keys of the operation payload model."
|
132
|
+
)
|
133
|
+
|
134
|
+
class VerificationModel(BaseModel):
|
89
135
|
confirmation: HumanConfirmation
|
90
|
-
|
136
|
+
modifiable_params: self._modifiable_payload_params_model # type: ignore
|
91
137
|
|
92
|
-
self.
|
138
|
+
self._verification_model = VerificationModel
|
93
139
|
|
140
|
+
self._requestor_type = requestor_type
|
94
141
|
self._combined_params_model = create_union_model(
|
95
142
|
model_type_a=self._operation.path_params_model(),
|
96
143
|
model_type_b=self._operation.payload_model(),
|
97
144
|
)
|
98
|
-
self._requestor_type = requestor_type
|
99
145
|
self._requestor = build_requestor(
|
100
146
|
requestor_type=requestor_type,
|
101
147
|
operation_type=operation,
|
@@ -104,7 +150,10 @@ class HumanVerificationManagerForApiCalling(
|
|
104
150
|
)
|
105
151
|
|
106
152
|
def detect_api_calls_from_user_message(
|
107
|
-
self,
|
153
|
+
self,
|
154
|
+
*,
|
155
|
+
last_assistant_message: ChatMessage,
|
156
|
+
user_message: str,
|
108
157
|
) -> PayloadType | None:
|
109
158
|
user_message_dicts = extract_dicts_from_string(user_message)
|
110
159
|
if len(user_message_dicts) == 0:
|
@@ -114,13 +163,20 @@ class HumanVerificationManagerForApiCalling(
|
|
114
163
|
for user_message_dict in user_message_dicts:
|
115
164
|
try:
|
116
165
|
# Convert dict to payload model first, then create payload
|
117
|
-
|
166
|
+
verfication_data = self._verification_model.model_validate(
|
118
167
|
user_message_dict, by_alias=True, by_name=True
|
119
168
|
)
|
120
169
|
if self._verify_human_verification(
|
121
|
-
|
170
|
+
verfication_data.confirmation, last_assistant_message
|
122
171
|
):
|
123
|
-
|
172
|
+
payload_dict = verfication_data.modifiable_params.model_dump()
|
173
|
+
if self._environment_payload_params is not None:
|
174
|
+
payload_dict.update(
|
175
|
+
self._environment_payload_params.model_dump()
|
176
|
+
)
|
177
|
+
|
178
|
+
return self._operation.payload_model().model_validate(payload_dict)
|
179
|
+
|
124
180
|
except Exception as e:
|
125
181
|
self._logger.error(f"Error detecting api calls from user message: {e}")
|
126
182
|
|
@@ -141,11 +197,27 @@ class HumanVerificationManagerForApiCalling(
|
|
141
197
|
return confirmation.payload_hash in last_assistant_message.content
|
142
198
|
|
143
199
|
def _create_next_user_message(self, payload: PayloadType) -> str:
|
144
|
-
|
145
|
-
|
200
|
+
# Extract only the modifiable fields from the payload
|
201
|
+
payload_dict = payload.model_dump()
|
202
|
+
if self._environment_payload_params is not None:
|
203
|
+
# Remove environment params from payload to avoid validation errors
|
204
|
+
environment_fields = set(
|
205
|
+
type(self._environment_payload_params).model_fields.keys()
|
206
|
+
)
|
207
|
+
modifiable_dict = {
|
208
|
+
k: v for k, v in payload_dict.items() if k not in environment_fields
|
209
|
+
}
|
210
|
+
else:
|
211
|
+
modifiable_dict = payload_dict
|
212
|
+
|
213
|
+
modifiable_params = self._modifiable_payload_params_model.model_validate(
|
214
|
+
modifiable_dict
|
215
|
+
)
|
216
|
+
api_call = self._verification_model(
|
217
|
+
modifiable_params=modifiable_params,
|
146
218
|
confirmation=HumanConfirmation(
|
147
219
|
payload_hash=hashlib.sha256(
|
148
|
-
|
220
|
+
modifiable_params.model_dump_json().encode()
|
149
221
|
).hexdigest(),
|
150
222
|
time_stamp=datetime.now(),
|
151
223
|
),
|
@@ -168,6 +240,14 @@ class HumanVerificationManagerForApiCalling(
|
|
168
240
|
path_params: PathParamsType,
|
169
241
|
payload: PayloadType,
|
170
242
|
) -> ResponseType:
|
243
|
+
"""
|
244
|
+
Call the api with the given path params, payload and secured payload params.
|
245
|
+
|
246
|
+
The `secured payload params` are params that are enforced by the application.
|
247
|
+
It should generally be not possible for the user to adapt those but here we
|
248
|
+
ensure that the application has the last word.
|
249
|
+
|
250
|
+
"""
|
171
251
|
params = path_params.model_dump()
|
172
252
|
params.update(payload.model_dump())
|
173
253
|
|
@@ -217,8 +297,8 @@ if __name__ == "__main__":
|
|
217
297
|
|
218
298
|
payload = GetUserRequestBody(include_profile=True)
|
219
299
|
|
220
|
-
api_call = human_verification_manager.
|
221
|
-
|
300
|
+
api_call = human_verification_manager._verification_model(
|
301
|
+
modifiable_params=payload,
|
222
302
|
confirmation=HumanConfirmation(
|
223
303
|
payload_hash=hashlib.sha256(payload.model_dump_json().encode()).hexdigest(),
|
224
304
|
time_stamp=datetime.now(),
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/_common/base_model_type_attribute.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/_common/default_language_model.py
RENAMED
File without changes
|
File without changes
|
{unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/_common/endpoint_requestor.py
RENAMED
File without changes
|
File without changes
|
{unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/_common/feature_flags/schema.py
RENAMED
File without changes
|
{unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/_common/pydantic/rjsf_tags.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/_common/token/token_counting.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/_common/utils/write_configuration.py
RENAMED
File without changes
|
{unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/_common/validate_required_values.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/evaluation/config.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/evaluation/exception.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/evaluation/output_parser.py
RENAMED
File without changes
|
{unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/evaluation/schemas.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/history_manager/utils.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/a2a/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/a2a/manager.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/a2a/prompts.py
RENAMED
File without changes
|
{unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/a2a/tool/__init__.py
RENAMED
File without changes
|
{unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/a2a/tool/_memory.py
RENAMED
File without changes
|
{unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/a2a/tool/_schema.py
RENAMED
File without changes
|
{unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/a2a/tool/config.py
RENAMED
File without changes
|
{unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/a2a/tool/service.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/mcp/__init__.py
RENAMED
File without changes
|
{unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/mcp/manager.py
RENAMED
File without changes
|
File without changes
|
{unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/tool_manager.py
RENAMED
File without changes
|
File without changes
|
{unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/agentic/tools/utils/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/app/performance/async_tasks.py
RENAMED
File without changes
|
{unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/app/performance/async_wrapper.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/framework_utilities/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/framework_utilities/openai/client.py
RENAMED
File without changes
|
File without changes
|
{unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/framework_utilities/utils.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/short_term_memory/__init__.py
RENAMED
File without changes
|
{unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/short_term_memory/constants.py
RENAMED
File without changes
|
{unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/short_term_memory/functions.py
RENAMED
File without changes
|
{unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/short_term_memory/schemas.py
RENAMED
File without changes
|
{unique_toolkit-1.14.11 → unique_toolkit-1.15.0}/unique_toolkit/short_term_memory/service.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|