unique_toolkit 1.69.3__tar.gz → 1.69.5__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.3 → unique_toolkit-1.69.5}/PKG-INFO +1 -1
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/pyproject.toml +1 -1
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/api_calling/human_verification_manager.py +1 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/app/unique_settings.py +5 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/chat/functions.py +3 -2
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/chat/schemas.py +9 -49
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/language_model/builder.py +36 -7
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/language_model/functions.py +2 -3
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/language_model/schemas.py +56 -15
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/services/chat_service.py +1 -1
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/README.md +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/_base_service.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/_time_utils.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/config_checker/README.md +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/config_checker/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/config_checker/__main__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/config_checker/cli.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/config_checker/differ.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/config_checker/exporter.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/config_checker/models.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/config_checker/registry.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/config_checker/validator.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/default_language_model.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/docx_generator/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/docx_generator/config.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/docx_generator/pandoc_converter.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/docx_generator/schemas.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/docx_generator/service.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/endpoint_builder.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/endpoint_requestor.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/event_bus.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/exception.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/execution.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/experimental/endpoint_builder.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/experimental/endpoint_requestor.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/experimental/write_up_agent/README.md +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/experimental/write_up_agent/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/experimental/write_up_agent/agent.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/experimental/write_up_agent/config.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/experimental/write_up_agent/examples/data.csv +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/experimental/write_up_agent/examples/example_usage.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/experimental/write_up_agent/schemas.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/experimental/write_up_agent/services/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/exceptions.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/service.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/utils.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/config.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/exceptions.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/config.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/service.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/default_template.j2 +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/exceptions.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/service.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/utils.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/experimental/write_up_agent/utils.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/feature_flags/schema.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/pydantic_helpers.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/referencing.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/string_utilities.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/tests/test_referencing.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/tests/test_string_utilities.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/token/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/token/image_token_counting.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/token/token_counting.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/token/tokenizers/deepseek/tokenizer.json +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/token/tokenizers/qwen/tokenizer.json +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/utils/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/utils/files.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/utils/image/encode.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/utils/jinja/helpers.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/utils/jinja/render.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/utils/jinja/schema.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/utils/jinja/utils.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/utils/write_configuration.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/validate_required_values.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/validators.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/evaluation/config.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/evaluation/exception.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/evaluation/hallucination/prompts/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/evaluation/hallucination/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/evaluation/hallucination/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/evaluation/tests/fixtures.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/evaluation/tests/test_config.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/evaluation/tests/test_hallucination_constants.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/evaluation/tests/test_hallucination_utils.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/evaluation/tests/test_prompt_loaders.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/evaluation/utils.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/feature_flags/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/feature_flags/feature_flags.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/history_manager/utils.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/loop_runner/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/loop_runner/_responses_iteration_handler_utils.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/loop_runner/_responses_stream_handler_utils.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/loop_runner/_stream_handler_utils.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/loop_runner/base.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/loop_runner/middleware/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/loop_runner/middleware/planning/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/loop_runner/middleware/planning/planning.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/loop_runner/middleware/planning/schema.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/loop_runner/runners/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/loop_runner/runners/basic.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/loop_runner/runners/mistral/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/loop_runner/runners/mistral/mistral_runner.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/loop_runner/runners/qwen/helpers.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/message_log_manager/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/message_log_manager/service.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/a2a/postprocessing/references.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/a2a/response_watcher/service.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/a2a/tool/test/test_service_utils.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/config.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/experimental/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/experimental/open_file_tool/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/experimental/open_file_tool/config.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/experimental/open_file_tool/runtime.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/experimental/open_file_tool/tool.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/factory.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/openai_builtin/base.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/code_display.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/generated_files.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/schemas.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/service.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/openai_builtin/manager.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/schemas.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/tool.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic_table/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic_table/schemas.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/agentic_table/service.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/app/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/app/dev_util.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/app/fast_api_factory.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/app/init_logging.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/app/init_sdk.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/app/performance/async_tasks.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/app/performance/async_wrapper.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/app/schemas.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/app/verification.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/app/webhook.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/chat/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/chat/cancellation.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/chat/constants.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/chat/deprecated/service.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/chat/rendering.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/chat/responses_api.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/chat/service.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/chat/state.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/chat/utils.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/content/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/content/constants.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/content/functions.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/content/schemas.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/content/service.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/content/smart_rules.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/content/utils.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/data_extraction/README.md +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/data_extraction/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/data_extraction/augmented/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/data_extraction/augmented/service.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/data_extraction/base.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/data_extraction/basic/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/data_extraction/basic/config.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/data_extraction/basic/prompt.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/data_extraction/basic/service.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/elicitation/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/elicitation/constants.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/elicitation/exceptions.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/elicitation/functions.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/elicitation/schemas.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/elicitation/service.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/embedding/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/embedding/constants.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/embedding/functions.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/embedding/schemas.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/embedding/service.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/embedding/utils.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/framework_utilities/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/framework_utilities/langchain/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/framework_utilities/openai/client.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/framework_utilities/utils.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/language_model/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/language_model/_responses_api_utils.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/language_model/constants.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/language_model/default_language_model.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/language_model/infos.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/language_model/prompt.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/language_model/reference.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/language_model/service.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/language_model/stream_transform.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/language_model/utils.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/monitoring/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/monitoring/middleware.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/monitoring/registry.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/protocols/support.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/services/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/services/factory.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/services/knowledge_base.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/short_term_memory/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/short_term_memory/constants.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/short_term_memory/functions.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/short_term_memory/schemas.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/short_term_memory/service.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/smart_rules/__init__.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/smart_rules/compile.py +0 -0
- {unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/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.5
|
|
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>
|
|
@@ -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(
|
|
@@ -26,7 +26,6 @@ from unique_toolkit.language_model.reference import (
|
|
|
26
26
|
)
|
|
27
27
|
from unique_toolkit.language_model.schemas import (
|
|
28
28
|
LanguageModelFunction,
|
|
29
|
-
LanguageModelMessageRole,
|
|
30
29
|
LanguageModelMessages,
|
|
31
30
|
LanguageModelResponse,
|
|
32
31
|
LanguageModelStreamResponse,
|
|
@@ -530,7 +529,7 @@ def _create_language_model_stream_response_with_references(
|
|
|
530
529
|
stream_response_message = ChatMessage(
|
|
531
530
|
id="stream_unknown",
|
|
532
531
|
previous_message_id=None,
|
|
533
|
-
role=
|
|
532
|
+
role=ChatMessageRole.ASSISTANT,
|
|
534
533
|
text=message.content or "",
|
|
535
534
|
original_text=content,
|
|
536
535
|
chat_id="stream_unknown",
|
|
@@ -661,7 +660,7 @@ async def stream_complete_with_references_openai(
|
|
|
661
660
|
id=message_id or uuid4().hex,
|
|
662
661
|
chat_id="",
|
|
663
662
|
previous_message_id=None,
|
|
664
|
-
role=
|
|
663
|
+
role=ChatMessageRole.ASSISTANT,
|
|
665
664
|
text=text_,
|
|
666
665
|
original_text=full_text,
|
|
667
666
|
references=references_,
|
|
@@ -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,24 @@ class LanguageModelMessage(BaseModel):
|
|
|
252
262
|
|
|
253
263
|
return format_message(self.role.capitalize(), message=message, num_tabs=1)
|
|
254
264
|
|
|
265
|
+
@overload
|
|
266
|
+
@abstractmethod
|
|
267
|
+
def to_openai(
|
|
268
|
+
self, mode: Literal["completions"] = "completions"
|
|
269
|
+
) -> ChatCompletionMessageParam: ...
|
|
270
|
+
|
|
271
|
+
@overload
|
|
272
|
+
@abstractmethod
|
|
273
|
+
def to_openai(self, mode: Literal["responses"]) -> ResponseInputItemParam: ...
|
|
274
|
+
|
|
275
|
+
@abstractmethod
|
|
276
|
+
def to_openai(
|
|
277
|
+
self, mode: Literal["completions", "responses"] = "completions"
|
|
278
|
+
) -> ChatCompletionMessageParam | ResponseInputItemParam:
|
|
279
|
+
raise NotImplementedError(
|
|
280
|
+
"Subclasses must implement this. This class should not be used directly"
|
|
281
|
+
)
|
|
282
|
+
|
|
255
283
|
|
|
256
284
|
class LanguageModelSystemMessage(LanguageModelMessage):
|
|
257
285
|
role: LanguageModelMessageRole = LanguageModelMessageRole.SYSTEM
|
|
@@ -268,6 +296,7 @@ class LanguageModelSystemMessage(LanguageModelMessage):
|
|
|
268
296
|
@overload
|
|
269
297
|
def to_openai(self, mode: Literal["responses"]) -> EasyInputMessageParam: ...
|
|
270
298
|
|
|
299
|
+
@override
|
|
271
300
|
def to_openai(
|
|
272
301
|
self, mode: Literal["completions", "responses"] = "completions"
|
|
273
302
|
) -> ChatCompletionSystemMessageParam | EasyInputMessageParam:
|
|
@@ -296,11 +325,12 @@ class LanguageModelUserMessage(LanguageModelMessage):
|
|
|
296
325
|
) -> ChatCompletionUserMessageParam: ...
|
|
297
326
|
|
|
298
327
|
@overload
|
|
299
|
-
def to_openai(self, mode: Literal["responses"]) ->
|
|
328
|
+
def to_openai(self, mode: Literal["responses"]) -> ResponseInputItemParam: ...
|
|
300
329
|
|
|
330
|
+
@override
|
|
301
331
|
def to_openai(
|
|
302
332
|
self, mode: Literal["completions", "responses"] = "completions"
|
|
303
|
-
) -> ChatCompletionUserMessageParam |
|
|
333
|
+
) -> ChatCompletionUserMessageParam | ResponseInputItemParam:
|
|
304
334
|
if self.content is None:
|
|
305
335
|
content = ""
|
|
306
336
|
else:
|
|
@@ -370,16 +400,12 @@ class LanguageModelAssistantMessage(LanguageModelMessage):
|
|
|
370
400
|
) -> ChatCompletionAssistantMessageParam: ...
|
|
371
401
|
|
|
372
402
|
@overload
|
|
373
|
-
def to_openai(
|
|
374
|
-
self, mode: Literal["responses"]
|
|
375
|
-
) -> list[EasyInputMessageParam | ResponseFunctionToolCallParam]: ...
|
|
403
|
+
def to_openai(self, mode: Literal["responses"]) -> EasyInputMessageParam: ...
|
|
376
404
|
|
|
405
|
+
@override
|
|
377
406
|
def to_openai(
|
|
378
407
|
self, mode: Literal["completions", "responses"] = "completions"
|
|
379
|
-
) ->
|
|
380
|
-
ChatCompletionAssistantMessageParam
|
|
381
|
-
| list[EasyInputMessageParam | ResponseFunctionToolCallParam]
|
|
382
|
-
):
|
|
408
|
+
) -> ChatCompletionAssistantMessageParam | EasyInputMessageParam:
|
|
383
409
|
content = self.content or ""
|
|
384
410
|
if not isinstance(content, str):
|
|
385
411
|
raise ValueError("Content must be a string")
|
|
@@ -437,6 +463,7 @@ class LanguageModelToolMessage(LanguageModelMessage):
|
|
|
437
463
|
@overload
|
|
438
464
|
def to_openai(self, mode: Literal["responses"]) -> FunctionCallOutput: ...
|
|
439
465
|
|
|
466
|
+
@override
|
|
440
467
|
def to_openai(
|
|
441
468
|
self, mode: Literal["completions", "responses"] = "completions"
|
|
442
469
|
) -> ChatCompletionToolMessageParam | FunctionCallOutput:
|
|
@@ -463,7 +490,7 @@ class LanguageModelToolMessage(LanguageModelMessage):
|
|
|
463
490
|
# with the addition of the builder
|
|
464
491
|
|
|
465
492
|
LanguageModelMessageOptions = (
|
|
466
|
-
LanguageModelMessage
|
|
493
|
+
LanguageModelMessage # TODO: Ideally we remove this
|
|
467
494
|
| LanguageModelToolMessage
|
|
468
495
|
| LanguageModelAssistantMessage
|
|
469
496
|
| LanguageModelSystemMessage
|
|
@@ -501,8 +528,7 @@ class LanguageModelMessages(RootModel):
|
|
|
501
528
|
elif role == "tool":
|
|
502
529
|
converted_messages.append(LanguageModelToolMessage(**item))
|
|
503
530
|
else:
|
|
504
|
-
|
|
505
|
-
converted_messages.append(LanguageModelMessage(**item))
|
|
531
|
+
raise ValueError(f"Unknown message role: {item.get('role')!r}")
|
|
506
532
|
else:
|
|
507
533
|
# If it's already a message object, keep it as is
|
|
508
534
|
converted_messages.append(item)
|
|
@@ -525,6 +551,21 @@ class LanguageModelMessages(RootModel):
|
|
|
525
551
|
builder.messages = self.root.copy() # Start with existing messages
|
|
526
552
|
return builder
|
|
527
553
|
|
|
554
|
+
@overload
|
|
555
|
+
def to_openai(self, mode: Literal["responses"]) -> list[ResponseInputItemParam]: ...
|
|
556
|
+
|
|
557
|
+
@overload
|
|
558
|
+
def to_openai(
|
|
559
|
+
self, mode: Literal["completions"] = "completions"
|
|
560
|
+
) -> list[ChatCompletionMessageParam]: ...
|
|
561
|
+
|
|
562
|
+
def to_openai(
|
|
563
|
+
self, mode: Literal["completions", "responses"] = "completions"
|
|
564
|
+
) -> list[ChatCompletionMessageParam] | list[ResponseInputItemParam]:
|
|
565
|
+
if mode == "responses":
|
|
566
|
+
return [message.to_openai(mode="responses") for message in self.root]
|
|
567
|
+
return [message.to_openai(mode="completions") for message in self.root]
|
|
568
|
+
|
|
528
569
|
|
|
529
570
|
# This seems similar to
|
|
530
571
|
# from openai.types.completion_choice import CompletionChoice
|
|
@@ -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
|
{unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/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.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/config_checker/README.md
RENAMED
|
File without changes
|
{unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/config_checker/__init__.py
RENAMED
|
File without changes
|
{unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/config_checker/__main__.py
RENAMED
|
File without changes
|
{unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/config_checker/cli.py
RENAMED
|
File without changes
|
{unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/config_checker/differ.py
RENAMED
|
File without changes
|
{unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/config_checker/exporter.py
RENAMED
|
File without changes
|
{unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/config_checker/models.py
RENAMED
|
File without changes
|
{unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/config_checker/registry.py
RENAMED
|
File without changes
|
{unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/config_checker/validator.py
RENAMED
|
File without changes
|
{unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/default_language_model.py
RENAMED
|
File without changes
|
{unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/docx_generator/__init__.py
RENAMED
|
File without changes
|
{unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/docx_generator/config.py
RENAMED
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/docx_generator/schemas.py
RENAMED
|
File without changes
|
{unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/docx_generator/service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/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.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/feature_flags/schema.py
RENAMED
|
File without changes
|
{unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/pydantic/rjsf_tags.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/tests/test_referencing.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/token/image_token_counting.py
RENAMED
|
File without changes
|
{unique_toolkit-1.69.3 → unique_toolkit-1.69.5}/unique_toolkit/_common/token/token_counting.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|