unique_toolkit 1.69.2__tar.gz → 1.69.4__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.69.2 → unique_toolkit-1.69.4}/PKG-INFO +1 -1
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/pyproject.toml +1 -1
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/api_calling/human_verification_manager.py +1 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/base_model_type_attribute.py +2 -2
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/app/unique_settings.py +5 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/chat/functions.py +3 -2
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/chat/schemas.py +9 -49
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/language_model/builder.py +36 -7
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/language_model/schemas.py +40 -19
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/services/chat_service.py +1 -1
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/README.md +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/_base_service.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/_time_utils.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/config_checker/README.md +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/config_checker/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/config_checker/__main__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/config_checker/cli.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/config_checker/differ.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/config_checker/exporter.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/config_checker/models.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/config_checker/registry.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/config_checker/validator.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/default_language_model.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/docx_generator/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/docx_generator/config.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/docx_generator/pandoc_converter.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/docx_generator/schemas.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/docx_generator/service.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/endpoint_builder.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/endpoint_requestor.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/event_bus.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/exception.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/execution.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/experimental/endpoint_builder.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/experimental/endpoint_requestor.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/experimental/write_up_agent/README.md +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/experimental/write_up_agent/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/experimental/write_up_agent/agent.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/experimental/write_up_agent/config.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/experimental/write_up_agent/examples/data.csv +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/experimental/write_up_agent/examples/example_usage.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/experimental/write_up_agent/schemas.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/experimental/write_up_agent/services/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/exceptions.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/service.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/utils.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/config.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/exceptions.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/config.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/service.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/default_template.j2 +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/exceptions.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/service.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/utils.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/experimental/write_up_agent/utils.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/feature_flags/schema.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/pydantic_helpers.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/referencing.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/string_utilities.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/tests/test_referencing.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/tests/test_string_utilities.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/token/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/token/image_token_counting.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/token/token_counting.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/token/tokenizers/deepseek/tokenizer.json +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/token/tokenizers/qwen/tokenizer.json +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/utils/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/utils/files.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/utils/image/encode.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/utils/jinja/helpers.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/utils/jinja/render.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/utils/jinja/schema.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/utils/jinja/utils.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/utils/write_configuration.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/validate_required_values.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/validators.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/evaluation/config.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/evaluation/exception.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/evaluation/hallucination/prompts/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/evaluation/hallucination/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/evaluation/hallucination/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/evaluation/tests/fixtures.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/evaluation/tests/test_config.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/evaluation/tests/test_hallucination_constants.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/evaluation/tests/test_hallucination_utils.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/evaluation/tests/test_prompt_loaders.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/evaluation/utils.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/feature_flags/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/feature_flags/feature_flags.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/history_manager/utils.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/loop_runner/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/loop_runner/_responses_iteration_handler_utils.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/loop_runner/_responses_stream_handler_utils.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/loop_runner/_stream_handler_utils.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/loop_runner/base.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/loop_runner/middleware/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/loop_runner/middleware/planning/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/loop_runner/middleware/planning/planning.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/loop_runner/middleware/planning/schema.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/loop_runner/runners/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/loop_runner/runners/basic.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/loop_runner/runners/mistral/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/loop_runner/runners/mistral/mistral_runner.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/loop_runner/runners/qwen/helpers.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/message_log_manager/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/message_log_manager/service.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/a2a/postprocessing/references.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/a2a/response_watcher/service.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/a2a/tool/test/test_service_utils.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/config.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/experimental/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/experimental/open_file_tool/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/experimental/open_file_tool/config.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/experimental/open_file_tool/runtime.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/experimental/open_file_tool/tool.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/factory.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/openai_builtin/base.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/code_display.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/generated_files.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/schemas.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/service.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/openai_builtin/manager.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/schemas.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/tool.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic_table/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic_table/schemas.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/agentic_table/service.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/app/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/app/dev_util.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/app/fast_api_factory.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/app/init_logging.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/app/init_sdk.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/app/performance/async_tasks.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/app/performance/async_wrapper.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/app/schemas.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/app/verification.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/app/webhook.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/chat/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/chat/cancellation.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/chat/constants.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/chat/deprecated/service.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/chat/rendering.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/chat/responses_api.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/chat/service.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/chat/state.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/chat/utils.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/content/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/content/constants.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/content/functions.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/content/schemas.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/content/service.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/content/smart_rules.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/content/utils.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/data_extraction/README.md +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/data_extraction/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/data_extraction/augmented/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/data_extraction/augmented/service.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/data_extraction/base.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/data_extraction/basic/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/data_extraction/basic/config.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/data_extraction/basic/prompt.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/data_extraction/basic/service.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/elicitation/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/elicitation/constants.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/elicitation/exceptions.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/elicitation/functions.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/elicitation/schemas.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/elicitation/service.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/embedding/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/embedding/constants.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/embedding/functions.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/embedding/schemas.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/embedding/service.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/embedding/utils.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/framework_utilities/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/framework_utilities/langchain/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/framework_utilities/openai/client.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/framework_utilities/utils.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/language_model/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/language_model/_responses_api_utils.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/language_model/constants.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/language_model/default_language_model.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/language_model/functions.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/language_model/infos.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/language_model/prompt.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/language_model/reference.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/language_model/service.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/language_model/stream_transform.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/language_model/utils.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/monitoring/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/monitoring/middleware.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/monitoring/registry.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/protocols/support.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/services/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/services/factory.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/services/knowledge_base.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/short_term_memory/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/short_term_memory/constants.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/short_term_memory/functions.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/short_term_memory/schemas.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/short_term_memory/service.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/smart_rules/__init__.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/smart_rules/compile.py +0 -0
- {unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/test_utilities/events.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: unique-toolkit
|
|
3
|
-
Version: 1.69.
|
|
3
|
+
Version: 1.69.4
|
|
4
4
|
Summary:
|
|
5
5
|
Author: Cedric Klinkert, Martin Fadler, Sadique Sheik, Fabian Schläpfer, Pascal Hauri, Ejiroghene Oki-Peter, Rami Azouz, Ricardo Visini, Sanzio Monti
|
|
6
6
|
Author-email: Cedric Klinkert <cedric.klinkert@unique.ch>, Martin Fadler <martin.fadler@unique.ch>, Sadique Sheik <sadique@unique.ch>, Fabian Schläpfer <fabian@unique.ch>, Pascal Hauri <pascal@unique.ch>, Ejiroghene Oki-Peter <oki-peter.ejiroghene@unique.ai>, Rami Azouz <rami.ext@unique.ch>, Ricardo Visini <ricardo.visini@unique.ch>, Sanzio Monti <sanzio.monti@unique.ai>
|
{unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/base_model_type_attribute.py
RENAMED
|
@@ -237,8 +237,8 @@ if __name__ == "__main__":
|
|
|
237
237
|
class ToolDescription(BaseModel, Generic[TModel]):
|
|
238
238
|
name: str = Field(
|
|
239
239
|
...,
|
|
240
|
-
pattern=r"^[a-zA-
|
|
241
|
-
description="Name must adhere to the pattern ^[a-zA-
|
|
240
|
+
pattern=r"^[a-zA-Z0-9_-]+$",
|
|
241
|
+
description="Name must adhere to the pattern ^[a-zA-Z0-9_-]+$",
|
|
242
242
|
)
|
|
243
243
|
description: str = Field(
|
|
244
244
|
...,
|
|
@@ -657,6 +657,11 @@ class UniqueSettings:
|
|
|
657
657
|
@property
|
|
658
658
|
@deprecated("Use authcontext instead")
|
|
659
659
|
def auth(self) -> UniqueAuth:
|
|
660
|
+
if isinstance(self._context.auth, AuthContext):
|
|
661
|
+
return UniqueAuth(
|
|
662
|
+
company_id=SecretStr(self._context.auth.get_confidential_company_id()),
|
|
663
|
+
user_id=SecretStr(self._context.auth.get_confidential_user_id()),
|
|
664
|
+
)
|
|
660
665
|
if not isinstance(self._context.auth, UniqueAuth):
|
|
661
666
|
raise ValueError("Auth context is not a UniqueAuth instance")
|
|
662
667
|
return self._context.auth
|
|
@@ -426,6 +426,7 @@ def get_selection_from_history(
|
|
|
426
426
|
)
|
|
427
427
|
|
|
428
428
|
|
|
429
|
+
@deprecated("Use ChatMessage directly")
|
|
429
430
|
def map_to_chat_messages(messages: list[dict]) -> list[ChatMessage]:
|
|
430
431
|
return [ChatMessage(**msg) for msg in messages]
|
|
431
432
|
|
|
@@ -502,7 +503,7 @@ def get_full_history(
|
|
|
502
503
|
messages = list_messages(event_user_id, event_company_id, event_payload_chat_id)
|
|
503
504
|
messages = filter_valid_messages(messages)
|
|
504
505
|
|
|
505
|
-
return
|
|
506
|
+
return [ChatMessage.model_validate(msg) for msg in messages]
|
|
506
507
|
|
|
507
508
|
|
|
508
509
|
async def get_full_history_async(
|
|
@@ -517,7 +518,7 @@ async def get_full_history_async(
|
|
|
517
518
|
)
|
|
518
519
|
messages = filter_valid_messages(messages)
|
|
519
520
|
|
|
520
|
-
return
|
|
521
|
+
return [ChatMessage.model_validate(msg) for msg in messages]
|
|
521
522
|
|
|
522
523
|
|
|
523
524
|
def filter_valid_messages(
|
|
@@ -9,9 +9,6 @@ from openai.types.chat import (
|
|
|
9
9
|
ChatCompletionMessageParam,
|
|
10
10
|
ChatCompletionUserMessageParam,
|
|
11
11
|
)
|
|
12
|
-
from openai.types.chat.chat_completion_message_function_tool_call_param import (
|
|
13
|
-
ChatCompletionMessageFunctionToolCallParam,
|
|
14
|
-
)
|
|
15
12
|
from openai.types.chat.chat_completion_message_function_tool_call_param import (
|
|
16
13
|
Function as OpenAIFunction,
|
|
17
14
|
)
|
|
@@ -20,7 +17,6 @@ from pydantic import (
|
|
|
20
17
|
ConfigDict,
|
|
21
18
|
Field,
|
|
22
19
|
field_validator,
|
|
23
|
-
model_validator,
|
|
24
20
|
)
|
|
25
21
|
|
|
26
22
|
from unique_toolkit.content.schemas import ContentReference
|
|
@@ -35,7 +31,6 @@ model_config = ConfigDict(
|
|
|
35
31
|
class ChatMessageRole(StrEnum):
|
|
36
32
|
USER = "user"
|
|
37
33
|
ASSISTANT = "assistant"
|
|
38
|
-
TOOL = "tool"
|
|
39
34
|
SYSTEM = "system" # Note: These messages are appended by the backend and should not be confused with the LLM's system message.
|
|
40
35
|
|
|
41
36
|
|
|
@@ -52,21 +47,6 @@ class Function(BaseModel):
|
|
|
52
47
|
)
|
|
53
48
|
|
|
54
49
|
|
|
55
|
-
class ToolCall(BaseModel):
|
|
56
|
-
model_config = model_config
|
|
57
|
-
|
|
58
|
-
id: str
|
|
59
|
-
type: str
|
|
60
|
-
function: Function
|
|
61
|
-
|
|
62
|
-
def to_openai_param(self) -> ChatCompletionMessageFunctionToolCallParam:
|
|
63
|
-
return ChatCompletionMessageFunctionToolCallParam(
|
|
64
|
-
id=self.id,
|
|
65
|
-
function=self.function.to_openai(),
|
|
66
|
-
type="function",
|
|
67
|
-
)
|
|
68
|
-
|
|
69
|
-
|
|
70
50
|
class ChatMessageToolResponse(BaseModel):
|
|
71
51
|
"""Persisted response for a single tool call."""
|
|
72
52
|
|
|
@@ -146,9 +126,9 @@ class ChatMessage(BaseModel):
|
|
|
146
126
|
# Fields previous_message_id, tool_calls, tool_call_id are internal extensions not in the DTO.
|
|
147
127
|
model_config = model_config
|
|
148
128
|
|
|
149
|
-
id: str
|
|
129
|
+
id: str
|
|
150
130
|
chat_id: str
|
|
151
|
-
object:
|
|
131
|
+
object: Literal["message"] = "message"
|
|
152
132
|
# alias="text" applies only to construction (model_validate / __init__).
|
|
153
133
|
# model_dump() uses the field name "content", not "text". Use model_dump(by_alias=True)
|
|
154
134
|
# to get "text" as the key, or access via the .text property.
|
|
@@ -157,7 +137,6 @@ class ChatMessage(BaseModel):
|
|
|
157
137
|
role: ChatMessageRole
|
|
158
138
|
previous_message_id: str | None = None
|
|
159
139
|
gpt_request: list[dict] | dict | None = None
|
|
160
|
-
tool_calls: list[ToolCall] | None = None
|
|
161
140
|
debug_info: dict | None = {}
|
|
162
141
|
created_at: datetime | None = None
|
|
163
142
|
completed_at: datetime | None = None
|
|
@@ -182,13 +161,6 @@ class ChatMessage(BaseModel):
|
|
|
182
161
|
def text(self, value: str | None) -> None:
|
|
183
162
|
self.content = value
|
|
184
163
|
|
|
185
|
-
# Ensure tool_call_id is required if role is 'tool'
|
|
186
|
-
@model_validator(mode="after")
|
|
187
|
-
def check_tool_call_ids_for_tool_role(self):
|
|
188
|
-
if self.role == ChatMessageRole.TOOL and not self.tool_call_id:
|
|
189
|
-
raise ValueError("tool_call_id is required when role is 'tool'")
|
|
190
|
-
return self
|
|
191
|
-
|
|
192
164
|
def to_openai_param(self) -> ChatCompletionMessageParam:
|
|
193
165
|
match self.role:
|
|
194
166
|
case ChatMessageRole.USER:
|
|
@@ -198,25 +170,13 @@ class ChatMessage(BaseModel):
|
|
|
198
170
|
)
|
|
199
171
|
|
|
200
172
|
case ChatMessageRole.ASSISTANT:
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
tool_calls=[t.to_openai_param() for t in self.tool_calls],
|
|
209
|
-
)
|
|
210
|
-
else:
|
|
211
|
-
assistant_message = ChatCompletionAssistantMessageParam(
|
|
212
|
-
role="assistant",
|
|
213
|
-
audio=None,
|
|
214
|
-
content=self.content or "",
|
|
215
|
-
function_call=None,
|
|
216
|
-
refusal=None,
|
|
217
|
-
)
|
|
218
|
-
|
|
219
|
-
return assistant_message
|
|
173
|
+
return ChatCompletionAssistantMessageParam(
|
|
174
|
+
role="assistant",
|
|
175
|
+
audio=None,
|
|
176
|
+
content=self.content or "",
|
|
177
|
+
function_call=None,
|
|
178
|
+
refusal=None,
|
|
179
|
+
)
|
|
220
180
|
|
|
221
181
|
case _:
|
|
222
182
|
raise NotImplementedError(
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import logging
|
|
1
2
|
from typing import Any, Self
|
|
2
3
|
|
|
3
4
|
from unique_toolkit.language_model import (
|
|
@@ -12,6 +13,8 @@ from unique_toolkit.language_model import (
|
|
|
12
13
|
LanguageModelUserMessage,
|
|
13
14
|
)
|
|
14
15
|
|
|
16
|
+
_LOGGER = logging.getLogger(__name__)
|
|
17
|
+
|
|
15
18
|
|
|
16
19
|
class MessagesBuilder:
|
|
17
20
|
def __init__(self):
|
|
@@ -22,8 +25,24 @@ class MessagesBuilder:
|
|
|
22
25
|
return self
|
|
23
26
|
|
|
24
27
|
def message_append(self, role: LanguageModelMessageRole, content: str):
|
|
25
|
-
message =
|
|
26
|
-
|
|
28
|
+
message = None
|
|
29
|
+
match role:
|
|
30
|
+
case LanguageModelMessageRole.SYSTEM:
|
|
31
|
+
message = LanguageModelSystemMessage(content=content)
|
|
32
|
+
case LanguageModelMessageRole.USER:
|
|
33
|
+
message = LanguageModelUserMessage(content=content)
|
|
34
|
+
case LanguageModelMessageRole.ASSISTANT:
|
|
35
|
+
message = LanguageModelAssistantMessage(content=content)
|
|
36
|
+
case LanguageModelMessageRole.TOOL:
|
|
37
|
+
logging.warning(
|
|
38
|
+
"Tool messages are not supported in the builder as messages"
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
if message:
|
|
42
|
+
self.messages.append(message)
|
|
43
|
+
else:
|
|
44
|
+
_LOGGER.warning(f"Invalid message role: {role}")
|
|
45
|
+
|
|
27
46
|
return self
|
|
28
47
|
|
|
29
48
|
def system_message_append(self, content: str) -> Self:
|
|
@@ -54,12 +73,22 @@ class MessagesBuilder:
|
|
|
54
73
|
for image in images
|
|
55
74
|
],
|
|
56
75
|
)
|
|
76
|
+
message = None
|
|
77
|
+
match role:
|
|
78
|
+
case LanguageModelMessageRole.SYSTEM:
|
|
79
|
+
message = LanguageModelSystemMessage(content=final_content)
|
|
80
|
+
case LanguageModelMessageRole.USER:
|
|
81
|
+
message = LanguageModelUserMessage(content=final_content)
|
|
82
|
+
case LanguageModelMessageRole.ASSISTANT:
|
|
83
|
+
message = LanguageModelAssistantMessage(content=final_content)
|
|
84
|
+
case LanguageModelMessageRole.TOOL:
|
|
85
|
+
pass
|
|
86
|
+
|
|
87
|
+
if message:
|
|
88
|
+
self.messages.append(message)
|
|
89
|
+
else:
|
|
90
|
+
_LOGGER.warning(f"Invalid message role: {role}")
|
|
57
91
|
|
|
58
|
-
message = LanguageModelMessage(
|
|
59
|
-
role=role,
|
|
60
|
-
content=final_content,
|
|
61
|
-
)
|
|
62
|
-
self.messages.append(message)
|
|
63
92
|
return self
|
|
64
93
|
|
|
65
94
|
def assistant_message_append(
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import json
|
|
2
2
|
import math
|
|
3
|
-
from
|
|
3
|
+
from abc import ABC, abstractmethod
|
|
4
|
+
from enum import StrEnum
|
|
5
|
+
from typing import Any, Literal, Self, TypeVar, override
|
|
4
6
|
from uuid import uuid4
|
|
5
7
|
|
|
6
8
|
from humps import camelize
|
|
7
9
|
from openai.types.chat import (
|
|
8
10
|
ChatCompletionAssistantMessageParam,
|
|
11
|
+
ChatCompletionMessageParam,
|
|
9
12
|
ChatCompletionSystemMessageParam,
|
|
10
13
|
ChatCompletionToolMessageParam,
|
|
11
14
|
ChatCompletionUserMessageParam,
|
|
@@ -20,6 +23,7 @@ from openai.types.responses import (
|
|
|
20
23
|
FunctionToolParam,
|
|
21
24
|
ResponseCodeInterpreterToolCall,
|
|
22
25
|
ResponseFunctionToolCallParam,
|
|
26
|
+
ResponseInputItemParam,
|
|
23
27
|
ResponseOutputItem,
|
|
24
28
|
ResponseOutputMessage,
|
|
25
29
|
)
|
|
@@ -40,7 +44,6 @@ from pydantic import (
|
|
|
40
44
|
from typing_extensions import deprecated, overload
|
|
41
45
|
|
|
42
46
|
from unique_toolkit.chat.schemas import ChatMessage
|
|
43
|
-
from unique_toolkit.chat.schemas import ChatMessageRole as LanguageModelMessageRole
|
|
44
47
|
from unique_toolkit.language_model._responses_api_utils import (
|
|
45
48
|
convert_user_message_content_to_responses_api,
|
|
46
49
|
)
|
|
@@ -54,6 +57,13 @@ model_config = ConfigDict(
|
|
|
54
57
|
)
|
|
55
58
|
|
|
56
59
|
|
|
60
|
+
class LanguageModelMessageRole(StrEnum):
|
|
61
|
+
ASSISTANT = "assistant"
|
|
62
|
+
SYSTEM = "system"
|
|
63
|
+
USER = "user"
|
|
64
|
+
TOOL = "tool"
|
|
65
|
+
|
|
66
|
+
|
|
57
67
|
# Backward compatibility alias — use ChatMessage directly.
|
|
58
68
|
# LanguageModelStreamResponseMessage was a toolkit-only subclass with stricter types
|
|
59
69
|
# (required id/content, non-null references). The backend DTOs (PublicMessageDto,
|
|
@@ -238,7 +248,7 @@ class LanguageModelFunctionCall(BaseModel):
|
|
|
238
248
|
return assistant_message
|
|
239
249
|
|
|
240
250
|
|
|
241
|
-
class LanguageModelMessage(BaseModel):
|
|
251
|
+
class LanguageModelMessage(BaseModel, ABC):
|
|
242
252
|
model_config = model_config
|
|
243
253
|
role: LanguageModelMessageRole
|
|
244
254
|
content: str | list[dict] | None = None
|
|
@@ -252,6 +262,14 @@ class LanguageModelMessage(BaseModel):
|
|
|
252
262
|
|
|
253
263
|
return format_message(self.role.capitalize(), message=message, num_tabs=1)
|
|
254
264
|
|
|
265
|
+
@abstractmethod
|
|
266
|
+
def to_openai(
|
|
267
|
+
self, mode: Literal["completions", "responses"] = "completions"
|
|
268
|
+
) -> ChatCompletionMessageParam | ResponseInputItemParam:
|
|
269
|
+
raise NotImplementedError(
|
|
270
|
+
"Subclasses must implement this. This class should not be used directly"
|
|
271
|
+
)
|
|
272
|
+
|
|
255
273
|
|
|
256
274
|
class LanguageModelSystemMessage(LanguageModelMessage):
|
|
257
275
|
role: LanguageModelMessageRole = LanguageModelMessageRole.SYSTEM
|
|
@@ -268,6 +286,7 @@ class LanguageModelSystemMessage(LanguageModelMessage):
|
|
|
268
286
|
@overload
|
|
269
287
|
def to_openai(self, mode: Literal["responses"]) -> EasyInputMessageParam: ...
|
|
270
288
|
|
|
289
|
+
@override
|
|
271
290
|
def to_openai(
|
|
272
291
|
self, mode: Literal["completions", "responses"] = "completions"
|
|
273
292
|
) -> ChatCompletionSystemMessageParam | EasyInputMessageParam:
|
|
@@ -296,11 +315,12 @@ class LanguageModelUserMessage(LanguageModelMessage):
|
|
|
296
315
|
) -> ChatCompletionUserMessageParam: ...
|
|
297
316
|
|
|
298
317
|
@overload
|
|
299
|
-
def to_openai(self, mode: Literal["responses"]) ->
|
|
318
|
+
def to_openai(self, mode: Literal["responses"]) -> ResponseInputItemParam: ...
|
|
300
319
|
|
|
320
|
+
@override
|
|
301
321
|
def to_openai(
|
|
302
322
|
self, mode: Literal["completions", "responses"] = "completions"
|
|
303
|
-
) -> ChatCompletionUserMessageParam |
|
|
323
|
+
) -> ChatCompletionUserMessageParam | ResponseInputItemParam:
|
|
304
324
|
if self.content is None:
|
|
305
325
|
content = ""
|
|
306
326
|
else:
|
|
@@ -370,16 +390,12 @@ class LanguageModelAssistantMessage(LanguageModelMessage):
|
|
|
370
390
|
) -> ChatCompletionAssistantMessageParam: ...
|
|
371
391
|
|
|
372
392
|
@overload
|
|
373
|
-
def to_openai(
|
|
374
|
-
self, mode: Literal["responses"]
|
|
375
|
-
) -> list[EasyInputMessageParam | ResponseFunctionToolCallParam]: ...
|
|
393
|
+
def to_openai(self, mode: Literal["responses"]) -> EasyInputMessageParam: ...
|
|
376
394
|
|
|
395
|
+
@override
|
|
377
396
|
def to_openai(
|
|
378
397
|
self, mode: Literal["completions", "responses"] = "completions"
|
|
379
|
-
) ->
|
|
380
|
-
ChatCompletionAssistantMessageParam
|
|
381
|
-
| list[EasyInputMessageParam | ResponseFunctionToolCallParam]
|
|
382
|
-
):
|
|
398
|
+
) -> ChatCompletionAssistantMessageParam | EasyInputMessageParam:
|
|
383
399
|
content = self.content or ""
|
|
384
400
|
if not isinstance(content, str):
|
|
385
401
|
raise ValueError("Content must be a string")
|
|
@@ -437,6 +453,7 @@ class LanguageModelToolMessage(LanguageModelMessage):
|
|
|
437
453
|
@overload
|
|
438
454
|
def to_openai(self, mode: Literal["responses"]) -> FunctionCallOutput: ...
|
|
439
455
|
|
|
456
|
+
@override
|
|
440
457
|
def to_openai(
|
|
441
458
|
self, mode: Literal["completions", "responses"] = "completions"
|
|
442
459
|
) -> ChatCompletionToolMessageParam | FunctionCallOutput:
|
|
@@ -463,7 +480,7 @@ class LanguageModelToolMessage(LanguageModelMessage):
|
|
|
463
480
|
# with the addition of the builder
|
|
464
481
|
|
|
465
482
|
LanguageModelMessageOptions = (
|
|
466
|
-
LanguageModelMessage
|
|
483
|
+
LanguageModelMessage # TODO: Ideally we remove this
|
|
467
484
|
| LanguageModelToolMessage
|
|
468
485
|
| LanguageModelAssistantMessage
|
|
469
486
|
| LanguageModelSystemMessage
|
|
@@ -501,8 +518,7 @@ class LanguageModelMessages(RootModel):
|
|
|
501
518
|
elif role == "tool":
|
|
502
519
|
converted_messages.append(LanguageModelToolMessage(**item))
|
|
503
520
|
else:
|
|
504
|
-
|
|
505
|
-
converted_messages.append(LanguageModelMessage(**item))
|
|
521
|
+
raise ValueError(f"Unknown message role: {item.get('role')!r}")
|
|
506
522
|
else:
|
|
507
523
|
# If it's already a message object, keep it as is
|
|
508
524
|
converted_messages.append(item)
|
|
@@ -525,6 +541,11 @@ class LanguageModelMessages(RootModel):
|
|
|
525
541
|
builder.messages = self.root.copy() # Start with existing messages
|
|
526
542
|
return builder
|
|
527
543
|
|
|
544
|
+
def to_openai(
|
|
545
|
+
self, mode: Literal["completions", "responses"] = "completions"
|
|
546
|
+
) -> list[ChatCompletionMessageParam | ResponseInputItemParam]:
|
|
547
|
+
return [message.to_openai(mode=mode) for message in self.root]
|
|
548
|
+
|
|
528
549
|
|
|
529
550
|
# This seems similar to
|
|
530
551
|
# from openai.types.completion_choice import CompletionChoice
|
|
@@ -643,8 +664,8 @@ class LanguageModelToolParameters(BaseModel):
|
|
|
643
664
|
class LanguageModelTool(BaseModel):
|
|
644
665
|
name: str = Field(
|
|
645
666
|
...,
|
|
646
|
-
pattern=r"^[a-zA-
|
|
647
|
-
description="Name must adhere to the pattern ^[a-zA-
|
|
667
|
+
pattern=r"^[a-zA-Z0-9_-]+$",
|
|
668
|
+
description="Name must adhere to the pattern ^[a-zA-Z0-9_-]+$",
|
|
648
669
|
)
|
|
649
670
|
description: str
|
|
650
671
|
parameters: (
|
|
@@ -658,8 +679,8 @@ class LanguageModelTool(BaseModel):
|
|
|
658
679
|
class LanguageModelToolDescription(BaseModel):
|
|
659
680
|
name: str = Field(
|
|
660
681
|
...,
|
|
661
|
-
pattern=r"^[a-zA-
|
|
662
|
-
description="Name must adhere to the pattern ^[a-zA-
|
|
682
|
+
pattern=r"^[a-zA-Z0-9_-]+$",
|
|
683
|
+
description="Name must adhere to the pattern ^[a-zA-Z0-9_-]+$",
|
|
663
684
|
)
|
|
664
685
|
description: str = Field(
|
|
665
686
|
...,
|
|
@@ -1133,7 +1133,7 @@ class ChatService(ChatServiceDeprecated):
|
|
|
1133
1133
|
seconds_remaining: int | None = None,
|
|
1134
1134
|
percentage_completed: int | None = None,
|
|
1135
1135
|
is_queueable: bool = True,
|
|
1136
|
-
execution_options: dict | None = None,
|
|
1136
|
+
execution_options: dict[str, Any] | None = None,
|
|
1137
1137
|
progress_title: str | None = None,
|
|
1138
1138
|
) -> MessageExecution:
|
|
1139
1139
|
"""Creates a message execution for tracking long-running operations synchronously.
|
|
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.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/config_checker/README.md
RENAMED
|
File without changes
|
{unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/config_checker/__init__.py
RENAMED
|
File without changes
|
{unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/config_checker/__main__.py
RENAMED
|
File without changes
|
{unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/config_checker/cli.py
RENAMED
|
File without changes
|
{unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/config_checker/differ.py
RENAMED
|
File without changes
|
{unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/config_checker/exporter.py
RENAMED
|
File without changes
|
{unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/config_checker/models.py
RENAMED
|
File without changes
|
{unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/config_checker/registry.py
RENAMED
|
File without changes
|
{unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/config_checker/validator.py
RENAMED
|
File without changes
|
{unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/default_language_model.py
RENAMED
|
File without changes
|
{unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/docx_generator/__init__.py
RENAMED
|
File without changes
|
{unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/docx_generator/config.py
RENAMED
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/docx_generator/schemas.py
RENAMED
|
File without changes
|
{unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/docx_generator/service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/endpoint_requestor.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/feature_flags/schema.py
RENAMED
|
File without changes
|
{unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/pydantic/rjsf_tags.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/tests/test_referencing.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/token/image_token_counting.py
RENAMED
|
File without changes
|
{unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/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.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/utils/image/encode.py
RENAMED
|
File without changes
|
{unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/utils/jinja/helpers.py
RENAMED
|
File without changes
|
{unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/utils/jinja/render.py
RENAMED
|
File without changes
|
{unique_toolkit-1.69.2 → unique_toolkit-1.69.4}/unique_toolkit/_common/utils/jinja/schema.py
RENAMED
|
File without changes
|
|
File without changes
|