unique_toolkit 1.36.0__tar.gz → 1.43.10__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.36.0 → unique_toolkit-1.43.10}/CHANGELOG.md +102 -9
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/PKG-INFO +129 -32
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/README.md +22 -20
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/pyproject.toml +32 -20
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/docx_generator/schemas.py +4 -11
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/docx_generator/service.py +0 -9
- unique_toolkit-1.43.10/unique_toolkit/_common/experimental/write_up_agent/README.md +848 -0
- unique_toolkit-1.43.10/unique_toolkit/_common/experimental/write_up_agent/__init__.py +22 -0
- unique_toolkit-1.43.10/unique_toolkit/_common/experimental/write_up_agent/agent.py +170 -0
- unique_toolkit-1.43.10/unique_toolkit/_common/experimental/write_up_agent/config.py +42 -0
- unique_toolkit-1.43.10/unique_toolkit/_common/experimental/write_up_agent/examples/data.csv +13 -0
- unique_toolkit-1.43.10/unique_toolkit/_common/experimental/write_up_agent/examples/example_usage.py +78 -0
- unique_toolkit-1.43.10/unique_toolkit/_common/experimental/write_up_agent/schemas.py +36 -0
- unique_toolkit-1.43.10/unique_toolkit/_common/experimental/write_up_agent/services/__init__.py +13 -0
- unique_toolkit-1.43.10/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/__init__.py +19 -0
- unique_toolkit-1.43.10/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/exceptions.py +29 -0
- unique_toolkit-1.43.10/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/service.py +150 -0
- unique_toolkit-1.43.10/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/utils.py +130 -0
- unique_toolkit-1.43.10/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/__init__.py +27 -0
- unique_toolkit-1.43.10/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/config.py +56 -0
- unique_toolkit-1.43.10/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/exceptions.py +79 -0
- unique_toolkit-1.43.10/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/config.py +34 -0
- unique_toolkit-1.43.10/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/system_prompt.j2 +15 -0
- unique_toolkit-1.43.10/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/user_prompt.j2 +21 -0
- unique_toolkit-1.43.10/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/service.py +369 -0
- unique_toolkit-1.43.10/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/__init__.py +29 -0
- unique_toolkit-1.43.10/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/default_template.j2 +37 -0
- unique_toolkit-1.43.10/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/exceptions.py +39 -0
- unique_toolkit-1.43.10/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/service.py +191 -0
- unique_toolkit-1.43.10/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/utils.py +182 -0
- unique_toolkit-1.43.10/unique_toolkit/_common/experimental/write_up_agent/utils.py +24 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/validators.py +1 -10
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/evaluation/config.py +6 -14
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/evaluation/evaluation_manager.py +4 -4
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/evaluation/hallucination/constants.py +3 -2
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/evaluation/hallucination/utils.py +54 -7
- unique_toolkit-1.43.10/unique_toolkit/agentic/feature_flags/__init__.py +6 -0
- unique_toolkit-1.43.10/unique_toolkit/agentic/feature_flags/feature_flags.py +32 -0
- unique_toolkit-1.43.10/unique_toolkit/agentic/loop_runner/__init__.py +37 -0
- unique_toolkit-1.43.10/unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py +95 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/loop_runner/middleware/__init__.py +5 -1
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/loop_runner/middleware/planning/planning.py +1 -1
- unique_toolkit-1.43.10/unique_toolkit/agentic/loop_runner/runners/__init__.py +21 -0
- unique_toolkit-1.43.10/unique_toolkit/agentic/loop_runner/runners/basic.py +46 -0
- unique_toolkit-1.43.10/unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py +17 -0
- unique_toolkit-1.43.10/unique_toolkit/agentic/loop_runner/runners/qwen/helpers.py +48 -0
- unique_toolkit-1.43.10/unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py +121 -0
- unique_toolkit-1.43.10/unique_toolkit/agentic/message_log_manager/service.py +169 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +1 -1
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +3 -2
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +1 -1
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +1 -1
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +1 -1
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +2 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/service.py +1 -1
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/tool_manager.py +4 -4
- unique_toolkit-1.43.10/unique_toolkit/agentic_table/__init__.py +56 -0
- unique_toolkit-1.43.10/unique_toolkit/agentic_table/schemas.py +316 -0
- unique_toolkit-1.43.10/unique_toolkit/agentic_table/service.py +452 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/app/fast_api_factory.py +15 -7
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/app/schemas.py +15 -7
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/app/unique_settings.py +9 -1
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/chat/functions.py +24 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/chat/responses_api.py +1 -1
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/chat/schemas.py +4 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/content/functions.py +12 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/content/utils.py +9 -6
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/language_model/infos.py +227 -9
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/language_model/schemas.py +1 -1
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/services/chat_service.py +455 -1
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/short_term_memory/functions.py +126 -4
- unique_toolkit-1.43.10/unique_toolkit/short_term_memory/schemas.py +54 -0
- unique_toolkit-1.43.10/unique_toolkit/smart_rules/__init__.py +0 -0
- unique_toolkit-1.36.0/unique_toolkit/agentic/loop_runner/__init__.py +0 -19
- unique_toolkit-1.36.0/unique_toolkit/agentic/loop_runner/runners/__init__.py +0 -6
- unique_toolkit-1.36.0/unique_toolkit/agentic/loop_runner/runners/basic.py +0 -94
- unique_toolkit-1.36.0/unique_toolkit/agentic/message_log_manager/service.py +0 -93
- unique_toolkit-1.36.0/unique_toolkit/agentic/tools/utils/__init__.py +0 -19
- unique_toolkit-1.36.0/unique_toolkit/agentic/tools/utils/execution/__init__.py +0 -1
- unique_toolkit-1.36.0/unique_toolkit/short_term_memory/schemas.py +0 -49
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/LICENSE +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/__init__.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/_base_service.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/_time_utils.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/default_language_model.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/docx_generator/__init__.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/docx_generator/config.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/endpoint_builder.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/endpoint_requestor.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/exception.py +0 -0
- {unique_toolkit-1.36.0/unique_toolkit/agentic/tools/utils/execution → unique_toolkit-1.43.10/unique_toolkit/_common}/execution.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/experimental/endpoint_builder.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/experimental/endpoint_requestor.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/feature_flags/schema.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/pydantic_helpers.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/referencing.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/string_utilities.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/tests/test_referencing.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/tests/test_string_utilities.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/token/image_token_counting.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/token/token_counting.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/utils/__init__.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/utils/files.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/utils/image/encode.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/utils/jinja/helpers.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/utils/jinja/render.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/utils/jinja/schema.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/utils/jinja/utils.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/utils/write_configuration.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/validate_required_values.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/__init__.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/evaluation/context_relevancy/prompts.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/evaluation/exception.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/evaluation/hallucination/prompts.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/history_manager/utils.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/loop_runner/_stream_handler_utils.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/loop_runner/base.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/loop_runner/middleware/planning/__init__.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/loop_runner/middleware/planning/schema.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/message_log_manager/__init__.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/__init__.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/a2a/postprocessing/references.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/a2a/response_watcher/service.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/a2a/tool/test/test_service_utils.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/config.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/factory.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/openai_builtin/base.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/openai_builtin/manager.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/schemas.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/tool.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
- {unique_toolkit-1.36.0/unique_toolkit/agentic/tools/utils/source_handling → unique_toolkit-1.43.10/unique_toolkit/agentic/tools/utils}/__init__.py +0 -0
- {unique_toolkit-1.36.0/unique_toolkit/smart_rules → unique_toolkit-1.43.10/unique_toolkit/agentic/tools/utils/source_handling}/__init__.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/app/__init__.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/app/dev_util.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/app/init_logging.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/app/init_sdk.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/app/performance/async_tasks.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/app/performance/async_wrapper.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/app/verification.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/app/webhook.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/chat/__init__.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/chat/constants.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/chat/deprecated/service.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/chat/rendering.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/chat/service.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/chat/state.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/chat/utils.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/content/__init__.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/content/constants.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/content/schemas.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/content/service.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/content/smart_rules.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/data_extraction/README.md +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/data_extraction/__init__.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/data_extraction/augmented/__init__.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/data_extraction/augmented/service.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/data_extraction/base.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/data_extraction/basic/__init__.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/data_extraction/basic/config.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/data_extraction/basic/prompt.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/data_extraction/basic/service.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/embedding/__init__.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/embedding/constants.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/embedding/functions.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/embedding/schemas.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/embedding/service.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/embedding/utils.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/framework_utilities/__init__.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/framework_utilities/langchain/__init__.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/framework_utilities/openai/client.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/framework_utilities/utils.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/language_model/__init__.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/language_model/_responses_api_utils.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/language_model/builder.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/language_model/constants.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/language_model/default_language_model.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/language_model/functions.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/language_model/prompt.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/language_model/reference.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/language_model/service.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/language_model/utils.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/protocols/support.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/services/__init__.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/services/knowledge_base.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/short_term_memory/__init__.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/short_term_memory/constants.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/short_term_memory/service.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/smart_rules/compile.py +0 -0
- {unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/test_utilities/events.py +0 -0
|
@@ -5,6 +5,108 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.43.10] - 2026-01-21
|
|
9
|
+
- Lowering the max iterations of the main agents and hard blocking Qwen3 from using too many agent rounds
|
|
10
|
+
|
|
11
|
+
## [1.43.9] - 2026-01-20
|
|
12
|
+
- Fix system message role conversion in responses API mode (was incorrectly set to "user", now correctly set to "system")
|
|
13
|
+
|
|
14
|
+
## [1.43.8] - 2026-01-16
|
|
15
|
+
- Add local CI testing commands via poethepoet (poe lint, poe test, poe ci-typecheck, etc.)
|
|
16
|
+
|
|
17
|
+
## [1.43.7] - 2026-01-15
|
|
18
|
+
- Cleanup hallucination config that is displayed in space config
|
|
19
|
+
|
|
20
|
+
## [1.43.6] - 2026-01-13
|
|
21
|
+
- Update message execution pipeline functions and service
|
|
22
|
+
|
|
23
|
+
## [1.43.5] - 2026-01-13
|
|
24
|
+
- Add deptry to dev dependencies for CI dependency checks
|
|
25
|
+
- Fix missing base_settings fixture parameter in FastAPI test
|
|
26
|
+
|
|
27
|
+
## [1.43.4] - 2026-01-14
|
|
28
|
+
- chore(deps-dev): bump aiohttp from 3.13.2 to 3.13.3
|
|
29
|
+
|
|
30
|
+
## [1.43.3] - 2026-01-13
|
|
31
|
+
- Changing default `assessment_type` in `SubAgentEvaluationServiceConfig` to `HALLUCINATION`
|
|
32
|
+
|
|
33
|
+
## [1.43.2] - 2026-01-12
|
|
34
|
+
- `DocxGeneratorService`: Alignment need to be specified by the template rather than in code
|
|
35
|
+
|
|
36
|
+
## [1.43.1] - 2026-01-12
|
|
37
|
+
- Remove accidental example report.md from repo
|
|
38
|
+
|
|
39
|
+
## [1.43.0] - 2026-01-11
|
|
40
|
+
- Add `WriteUpAgent` as an experimental service
|
|
41
|
+
|
|
42
|
+
## [1.42.9] - 2026-01-11
|
|
43
|
+
- Include feature flag to have message logs compatible with new ChatUI
|
|
44
|
+
|
|
45
|
+
## [1.42.8] - 2026-01-08
|
|
46
|
+
- Add validator to `BaseMetadata` in case `additional_sheet_information` is empty
|
|
47
|
+
- Add more code snippets to create references and pull file metadata
|
|
48
|
+
|
|
49
|
+
## [1.42.7] - 2026-01-08
|
|
50
|
+
- Add aliases for endpoint secret env var.
|
|
51
|
+
|
|
52
|
+
## [1.42.6] - 2026-01-07
|
|
53
|
+
- Remove double redundant condition
|
|
54
|
+
|
|
55
|
+
## [1.42.5] - 2026-01-07
|
|
56
|
+
- Add Mapping of metadata to the `search_content` calls
|
|
57
|
+
- Remove additional indentation by the markdown to docx converter
|
|
58
|
+
|
|
59
|
+
## [1.42.4] - 2026-01-07
|
|
60
|
+
- Added `additionalSheetInformation` to magic table event.
|
|
61
|
+
|
|
62
|
+
## [1.42.3] - 2026-01-05
|
|
63
|
+
- Added example code for agentic table
|
|
64
|
+
|
|
65
|
+
## [1.42.2] - 2026-01-05
|
|
66
|
+
- Fix naming of code interpreter tool in its `ToolPrompts`.
|
|
67
|
+
|
|
68
|
+
## [1.42.1] - 2025-01-05
|
|
69
|
+
- Version bump of SDK
|
|
70
|
+
|
|
71
|
+
## [1.42.0] - 2025-01-05
|
|
72
|
+
- Add new params for elicitation to `call_tool` api
|
|
73
|
+
|
|
74
|
+
## [1.41.0] - 2025-12-29
|
|
75
|
+
- Add `AgenticTable` service to unique_toolkit
|
|
76
|
+
|
|
77
|
+
## [1.40.0] - 2025-12-22
|
|
78
|
+
- Add option to use retrieve referenced chunks from their order
|
|
79
|
+
- Add `hide_in_chat` parameter to `upload_to_chat_from_bytes` and `upload_to_chat_from_bytes_async`
|
|
80
|
+
- Hide code interpreter files in chat
|
|
81
|
+
- Code Interpreter files are now uploaded to chat by default
|
|
82
|
+
|
|
83
|
+
## [1.39.2] - 2025-12-18
|
|
84
|
+
- Add `litellm:gemini-3-flash-preview`, `litellm:openai-gpt-5-2` and `litellm:openai-gpt-5-2-thinking` to `language_model/info.py`
|
|
85
|
+
|
|
86
|
+
## [1.39.1] - 2025-12-17
|
|
87
|
+
- Add GPT-5.2, GPT-5.2_CHAT to supported models list
|
|
88
|
+
|
|
89
|
+
## [1.39.0] - 2025-12-17
|
|
90
|
+
- Adding simpler shortterm message abilities to chat service
|
|
91
|
+
|
|
92
|
+
## [1.38.4] - 2025-12-17
|
|
93
|
+
- Improving handling of tool calls with Qwen models
|
|
94
|
+
|
|
95
|
+
## [1.38.3] - 2025-12-17
|
|
96
|
+
- Move the failsafe exception to root folder of unique_toolkit from agentic tools
|
|
97
|
+
|
|
98
|
+
## [1.38.2] - 2025-12-17
|
|
99
|
+
- Fixing bug that language model infos were not loaded correctly
|
|
100
|
+
|
|
101
|
+
## [1.38.1] - 2025-12-16
|
|
102
|
+
- chore(deps): Bump urllib3 from 2.5.0 to 2.6.2 and unique_sdk from 0.10.48 to 0.10.58 to ensure urllib3 transitively
|
|
103
|
+
|
|
104
|
+
## [1.38.0] - 2025-12-15
|
|
105
|
+
- Including capability to load LanguageModelInfos in env variable
|
|
106
|
+
|
|
107
|
+
## [1.37.0] - 2025-12-15
|
|
108
|
+
- Adding a prompt appendix to enforce forced tool calls when using Qwen models
|
|
109
|
+
|
|
8
110
|
## [1.36.0] - 2025-12-11
|
|
9
111
|
- Add support for a sub agent tool system reminder when no references are present in the sub agent response.
|
|
10
112
|
|
|
@@ -103,8 +205,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
103
205
|
|
|
104
206
|
## [1.28.1] - 2025-11-19
|
|
105
207
|
- Remove `chat_service` from DocXGeneratorService
|
|
106
|
-
|
|
107
|
-
## [1.28.1] - 2025-11-19
|
|
108
208
|
- Set review standards in pyright for toolkit
|
|
109
209
|
- Refactor type check pipeline
|
|
110
210
|
|
|
@@ -541,9 +641,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
541
641
|
## [0.8.26] - 2025-08-27
|
|
542
642
|
- Optimized MCP manager
|
|
543
643
|
|
|
544
|
-
## [0.8.26] - 2025-08-27
|
|
545
|
-
- Optimized MCP manager
|
|
546
|
-
|
|
547
644
|
## [0.8.25] - 2025-08-27
|
|
548
645
|
- Load environment variables automatically from plattform dirs or environment
|
|
549
646
|
- General Endpoint definition utility
|
|
@@ -565,8 +662,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
565
662
|
|
|
566
663
|
## [0.8.20] - 2025-08-24
|
|
567
664
|
- Fixed forced-tool-calls
|
|
568
|
-
|
|
569
|
-
## [0.8.20] - 2025-08-05
|
|
570
665
|
- Bump SDK version to support the latest features.
|
|
571
666
|
|
|
572
667
|
## [0.8.19] - 2025-08-24
|
|
@@ -801,8 +896,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
801
896
|
|
|
802
897
|
## [0.6.3] - 2025-02-27
|
|
803
898
|
- Simplified imports for services. `from unique_toolkit.language_model import LanguageModelService` -> `from unique_toolkit import LanguageModelService` to reduce number of import lines.
|
|
804
|
-
|
|
805
|
-
## [0.6.3] - 2025-02-26
|
|
806
899
|
- Add `builder` method to `LanguageModelMessages` class
|
|
807
900
|
|
|
808
901
|
## [0.6.2] - 2025-02-25
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: unique_toolkit
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.43.10
|
|
4
4
|
Summary:
|
|
5
5
|
License: Proprietary
|
|
6
6
|
Author: Cedric Klinkert
|
|
@@ -9,25 +9,27 @@ Requires-Python: >=3.12,<4.0
|
|
|
9
9
|
Classifier: License :: Other/Proprietary License
|
|
10
10
|
Classifier: Programming Language :: Python :: 3
|
|
11
11
|
Classifier: Programming Language :: Python :: 3.12
|
|
12
|
+
Requires-Dist: aiohttp (>=3.12.0,<4.0.0)
|
|
12
13
|
Requires-Dist: docxtpl (>=0.20.1,<0.21.0)
|
|
14
|
+
Requires-Dist: httpx (>=0.28.0,<0.29.0)
|
|
13
15
|
Requires-Dist: jambo (>=0.1.2,<0.2.0)
|
|
14
16
|
Requires-Dist: jinja2 (>=3.1.6,<4.0.0)
|
|
15
17
|
Requires-Dist: markdown-it-py (>=4.0.0,<5.0.0)
|
|
16
|
-
Requires-Dist: mkdocs-mermaid2-plugin (>=1.2.2,<2.0.0)
|
|
17
|
-
Requires-Dist: mkdocs-multirepo-plugin (>=0.8.3,<0.9.0)
|
|
18
18
|
Requires-Dist: numpy (>=2.1.0,<3.0.0)
|
|
19
19
|
Requires-Dist: openai (>=1.99.9,<2.0.0)
|
|
20
|
+
Requires-Dist: pandas (>=2.3.0,<3.0.0)
|
|
20
21
|
Requires-Dist: pillow (>=10.4.0,<11.0.0)
|
|
21
22
|
Requires-Dist: platformdirs (>=4.0.0,<5.0.0)
|
|
22
23
|
Requires-Dist: pydantic (>=2.8.2,<3.0.0)
|
|
23
24
|
Requires-Dist: pydantic-settings (>=2.10.1,<3.0.0)
|
|
24
25
|
Requires-Dist: pyhumps (>=3.8.0,<4.0.0)
|
|
25
|
-
Requires-Dist: python-
|
|
26
|
+
Requires-Dist: python-docx (>=1.1.0,<2.0.0)
|
|
26
27
|
Requires-Dist: regex (>=2024.5.15,<2025.0.0)
|
|
28
|
+
Requires-Dist: requests (>=2.32.0,<3.0.0)
|
|
27
29
|
Requires-Dist: sseclient (>=0.0.27,<0.0.28)
|
|
28
30
|
Requires-Dist: tiktoken (>=0.12.0,<0.13.0)
|
|
29
31
|
Requires-Dist: typing-extensions (>=4.9.0,<5.0.0)
|
|
30
|
-
Requires-Dist: unique-sdk (>=0.10.
|
|
32
|
+
Requires-Dist: unique-sdk (>=0.10.67,<0.11.0)
|
|
31
33
|
Description-Content-Type: text/markdown
|
|
32
34
|
|
|
33
35
|
# Unique Toolkit
|
|
@@ -41,9 +43,25 @@ The Toolkit is structured along the following domains:
|
|
|
41
43
|
- `unique_toolkit.language_model`
|
|
42
44
|
- `unique_toolkit.short_term_memory`
|
|
43
45
|
|
|
44
|
-
Each domain comprises a set of
|
|
46
|
+
Each domain comprises a set of schemas (in `schemas.py`) are used in functions (in `functions.py`) which encapsulates the basic functionalities to interact with the plattform.
|
|
47
|
+
The above domains represent the internal structure of the Unique platform.
|
|
45
48
|
|
|
46
|
-
|
|
49
|
+
For the `developers` we expose interfaces via `services` classes that correspond directly to an frontend or an entity the `user` interacts with.
|
|
50
|
+
|
|
51
|
+
The following services are currently available:
|
|
52
|
+
|
|
53
|
+
| Service | Responsability |
|
|
54
|
+
|--|--|
|
|
55
|
+
| ChatService | All interactions with the chat interface |
|
|
56
|
+
| KnowledgeBaseService | All interaction with the knowledgebase |
|
|
57
|
+
|
|
58
|
+
The services can be directly import as
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
from unique_toolkit import ChatService, KnowledgeBaseService
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
In addition, the `unique_toolkit.app` module provides functions to initialize apps and dev utilities to interact with the Unique platform.
|
|
47
65
|
|
|
48
66
|
## Changelog
|
|
49
67
|
|
|
@@ -65,7 +83,6 @@ The `unique_toolkit.app` module encompasses functions for initializing and secur
|
|
|
65
83
|
The `unique_toolkit.chat` module encompasses all chat related functionality.
|
|
66
84
|
|
|
67
85
|
- `functions.py` comprises the functions to manage and load the chat history and interact with the chat ui, e.g., creating a new assistant message.
|
|
68
|
-
- `service.py` comprises the ChatService and provides an interface to manage and load the chat history and interact with the chat ui, e.g., creating a new assistant message and stream complete.
|
|
69
86
|
- `schemas.py` comprises all relevant schemas, e.g., ChatMessage, used in the ChatService.
|
|
70
87
|
- `utils.py` comprises utility functions to use and convert ChatMessage objects in assistants, e.g., convert_chat_history_to_injectable_string converts the chat history to a string that can be injected into a prompt.
|
|
71
88
|
|
|
@@ -74,11 +91,10 @@ The `unique_toolkit.chat` module encompasses all chat related functionality.
|
|
|
74
91
|
The `unique_toolkit.content` module encompasses all content related functionality. Content can be any type of textual data that is stored in the Knowledgebase on the Unique platform. During the ingestion of the content, the content is parsed, split in chunks, indexed, and stored in the database.
|
|
75
92
|
|
|
76
93
|
- `functions.py` comprises the functions to manage and load the chat history and interact with the chat ui, e.g., creating a new assistant message.
|
|
77
|
-
- `service.py` comprises the ContentService and provides an interface to interact with the content, e.g., search content, search content chunks, upload and download content.
|
|
78
94
|
- `schemas.py` comprises all relevant schemas, e.g., Content and ContentChunk, used in the ContentService.
|
|
79
95
|
- `utils.py` comprise utility functions to manipulate Content and ContentChunk objects, e.g., sort_content_chunks and merge_content_chunks.
|
|
80
96
|
|
|
81
|
-
## Embedding
|
|
97
|
+
## Embedding (To be Deprecated)
|
|
82
98
|
|
|
83
99
|
The `unique_toolkit.embedding` module encompasses all embedding related functionality. Embeddings are used to represent textual data in a high-dimensional space. The embeddings can be used to calculate the similarity between two texts, for instance.
|
|
84
100
|
|
|
@@ -86,40 +102,130 @@ The `unique_toolkit.embedding` module encompasses all embedding related function
|
|
|
86
102
|
- `service.py` encompasses the EmbeddingService and provides an interface to interact with the embeddings, e.g., embed text and calculate the similarity between two texts.
|
|
87
103
|
- `schemas.py` comprises all relevant schemas, e.g., Embeddings, used in the EmbeddingService.
|
|
88
104
|
|
|
89
|
-
## Language Model
|
|
105
|
+
## Language Model
|
|
90
106
|
|
|
91
107
|
The `unique_toolkit.language_model` module encompasses all language model related functionality and information on the different language models deployed through the
|
|
92
108
|
Unique platform.
|
|
93
109
|
|
|
94
110
|
- `infos.py` comprises the information on all language models deployed through the Unique platform. We recommend to use the LanguageModel class, initialized with the LanguageModelName, e.g., LanguageModel(LanguageModelName.AZURE_GPT_4o_2024_1120) to get the information on the specific language model like the name, version, token limits or retirement date.
|
|
95
111
|
- `functions.py` comprises the functions to complete and stream complete to chat.
|
|
96
|
-
- `service.py` comprises the LanguageModelService and provides an interface to interact with the language models, e.g., complete.
|
|
97
112
|
- `schemas.py` comprises all relevant schemas, e.g., LanguageModelResponse, used in the LanguageModelService.
|
|
98
113
|
- `utils.py` comprises utility functions to parse the output of the language model, e.g., convert_string_to_json finds and parses the last json object in a string.
|
|
99
114
|
|
|
100
|
-
## Short Term Memory
|
|
115
|
+
## Short Term Memory
|
|
101
116
|
|
|
102
117
|
The `unique_toolkit.short_term_memory` module encompasses all short term memory related functionality.
|
|
103
118
|
|
|
104
119
|
- `functions.py` comprises the functions to manage and load the chat history and interact with the chat ui, e.g., creating a new assistant message.
|
|
105
|
-
- `service.py` comprises the ShortTermMemoryService and provides an interface to interact with the short term memory, e.g., create memory.
|
|
106
120
|
- `schemas.py` comprises all relevant schemas, e.g., ShortTermMemory, used in the ShortTermMemoryService.
|
|
121
|
+
# Changelog
|
|
107
122
|
|
|
108
|
-
|
|
123
|
+
All notable changes to this project will be documented in this file.
|
|
109
124
|
|
|
110
|
-
|
|
125
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
126
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
111
127
|
|
|
112
|
-
|
|
128
|
+
## [1.43.10] - 2026-01-21
|
|
129
|
+
- Lowering the max iterations of the main agents and hard blocking Qwen3 from using too many agent rounds
|
|
113
130
|
|
|
114
|
-
|
|
131
|
+
## [1.43.9] - 2026-01-20
|
|
132
|
+
- Fix system message role conversion in responses API mode (was incorrectly set to "user", now correctly set to "system")
|
|
115
133
|
|
|
116
|
-
|
|
117
|
-
|
|
134
|
+
## [1.43.8] - 2026-01-16
|
|
135
|
+
- Add local CI testing commands via poethepoet (poe lint, poe test, poe ci-typecheck, etc.)
|
|
118
136
|
|
|
119
|
-
|
|
137
|
+
## [1.43.7] - 2026-01-15
|
|
138
|
+
- Cleanup hallucination config that is displayed in space config
|
|
120
139
|
|
|
121
|
-
|
|
122
|
-
|
|
140
|
+
## [1.43.6] - 2026-01-13
|
|
141
|
+
- Update message execution pipeline functions and service
|
|
142
|
+
|
|
143
|
+
## [1.43.5] - 2026-01-13
|
|
144
|
+
- Add deptry to dev dependencies for CI dependency checks
|
|
145
|
+
- Fix missing base_settings fixture parameter in FastAPI test
|
|
146
|
+
|
|
147
|
+
## [1.43.4] - 2026-01-14
|
|
148
|
+
- chore(deps-dev): bump aiohttp from 3.13.2 to 3.13.3
|
|
149
|
+
|
|
150
|
+
## [1.43.3] - 2026-01-13
|
|
151
|
+
- Changing default `assessment_type` in `SubAgentEvaluationServiceConfig` to `HALLUCINATION`
|
|
152
|
+
|
|
153
|
+
## [1.43.2] - 2026-01-12
|
|
154
|
+
- `DocxGeneratorService`: Alignment need to be specified by the template rather than in code
|
|
155
|
+
|
|
156
|
+
## [1.43.1] - 2026-01-12
|
|
157
|
+
- Remove accidental example report.md from repo
|
|
158
|
+
|
|
159
|
+
## [1.43.0] - 2026-01-11
|
|
160
|
+
- Add `WriteUpAgent` as an experimental service
|
|
161
|
+
|
|
162
|
+
## [1.42.9] - 2026-01-11
|
|
163
|
+
- Include feature flag to have message logs compatible with new ChatUI
|
|
164
|
+
|
|
165
|
+
## [1.42.8] - 2026-01-08
|
|
166
|
+
- Add validator to `BaseMetadata` in case `additional_sheet_information` is empty
|
|
167
|
+
- Add more code snippets to create references and pull file metadata
|
|
168
|
+
|
|
169
|
+
## [1.42.7] - 2026-01-08
|
|
170
|
+
- Add aliases for endpoint secret env var.
|
|
171
|
+
|
|
172
|
+
## [1.42.6] - 2026-01-07
|
|
173
|
+
- Remove double redundant condition
|
|
174
|
+
|
|
175
|
+
## [1.42.5] - 2026-01-07
|
|
176
|
+
- Add Mapping of metadata to the `search_content` calls
|
|
177
|
+
- Remove additional indentation by the markdown to docx converter
|
|
178
|
+
|
|
179
|
+
## [1.42.4] - 2026-01-07
|
|
180
|
+
- Added `additionalSheetInformation` to magic table event.
|
|
181
|
+
|
|
182
|
+
## [1.42.3] - 2026-01-05
|
|
183
|
+
- Added example code for agentic table
|
|
184
|
+
|
|
185
|
+
## [1.42.2] - 2026-01-05
|
|
186
|
+
- Fix naming of code interpreter tool in its `ToolPrompts`.
|
|
187
|
+
|
|
188
|
+
## [1.42.1] - 2025-01-05
|
|
189
|
+
- Version bump of SDK
|
|
190
|
+
|
|
191
|
+
## [1.42.0] - 2025-01-05
|
|
192
|
+
- Add new params for elicitation to `call_tool` api
|
|
193
|
+
|
|
194
|
+
## [1.41.0] - 2025-12-29
|
|
195
|
+
- Add `AgenticTable` service to unique_toolkit
|
|
196
|
+
|
|
197
|
+
## [1.40.0] - 2025-12-22
|
|
198
|
+
- Add option to use retrieve referenced chunks from their order
|
|
199
|
+
- Add `hide_in_chat` parameter to `upload_to_chat_from_bytes` and `upload_to_chat_from_bytes_async`
|
|
200
|
+
- Hide code interpreter files in chat
|
|
201
|
+
- Code Interpreter files are now uploaded to chat by default
|
|
202
|
+
|
|
203
|
+
## [1.39.2] - 2025-12-18
|
|
204
|
+
- Add `litellm:gemini-3-flash-preview`, `litellm:openai-gpt-5-2` and `litellm:openai-gpt-5-2-thinking` to `language_model/info.py`
|
|
205
|
+
|
|
206
|
+
## [1.39.1] - 2025-12-17
|
|
207
|
+
- Add GPT-5.2, GPT-5.2_CHAT to supported models list
|
|
208
|
+
|
|
209
|
+
## [1.39.0] - 2025-12-17
|
|
210
|
+
- Adding simpler shortterm message abilities to chat service
|
|
211
|
+
|
|
212
|
+
## [1.38.4] - 2025-12-17
|
|
213
|
+
- Improving handling of tool calls with Qwen models
|
|
214
|
+
|
|
215
|
+
## [1.38.3] - 2025-12-17
|
|
216
|
+
- Move the failsafe exception to root folder of unique_toolkit from agentic tools
|
|
217
|
+
|
|
218
|
+
## [1.38.2] - 2025-12-17
|
|
219
|
+
- Fixing bug that language model infos were not loaded correctly
|
|
220
|
+
|
|
221
|
+
## [1.38.1] - 2025-12-16
|
|
222
|
+
- chore(deps): Bump urllib3 from 2.5.0 to 2.6.2 and unique_sdk from 0.10.48 to 0.10.58 to ensure urllib3 transitively
|
|
223
|
+
|
|
224
|
+
## [1.38.0] - 2025-12-15
|
|
225
|
+
- Including capability to load LanguageModelInfos in env variable
|
|
226
|
+
|
|
227
|
+
## [1.37.0] - 2025-12-15
|
|
228
|
+
- Adding a prompt appendix to enforce forced tool calls when using Qwen models
|
|
123
229
|
|
|
124
230
|
## [1.36.0] - 2025-12-11
|
|
125
231
|
- Add support for a sub agent tool system reminder when no references are present in the sub agent response.
|
|
@@ -219,8 +325,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
219
325
|
|
|
220
326
|
## [1.28.1] - 2025-11-19
|
|
221
327
|
- Remove `chat_service` from DocXGeneratorService
|
|
222
|
-
|
|
223
|
-
## [1.28.1] - 2025-11-19
|
|
224
328
|
- Set review standards in pyright for toolkit
|
|
225
329
|
- Refactor type check pipeline
|
|
226
330
|
|
|
@@ -657,9 +761,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
657
761
|
## [0.8.26] - 2025-08-27
|
|
658
762
|
- Optimized MCP manager
|
|
659
763
|
|
|
660
|
-
## [0.8.26] - 2025-08-27
|
|
661
|
-
- Optimized MCP manager
|
|
662
|
-
|
|
663
764
|
## [0.8.25] - 2025-08-27
|
|
664
765
|
- Load environment variables automatically from plattform dirs or environment
|
|
665
766
|
- General Endpoint definition utility
|
|
@@ -681,8 +782,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
681
782
|
|
|
682
783
|
## [0.8.20] - 2025-08-24
|
|
683
784
|
- Fixed forced-tool-calls
|
|
684
|
-
|
|
685
|
-
## [0.8.20] - 2025-08-05
|
|
686
785
|
- Bump SDK version to support the latest features.
|
|
687
786
|
|
|
688
787
|
## [0.8.19] - 2025-08-24
|
|
@@ -917,8 +1016,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
917
1016
|
|
|
918
1017
|
## [0.6.3] - 2025-02-27
|
|
919
1018
|
- Simplified imports for services. `from unique_toolkit.language_model import LanguageModelService` -> `from unique_toolkit import LanguageModelService` to reduce number of import lines.
|
|
920
|
-
|
|
921
|
-
## [0.6.3] - 2025-02-26
|
|
922
1019
|
- Add `builder` method to `LanguageModelMessages` class
|
|
923
1020
|
|
|
924
1021
|
## [0.6.2] - 2025-02-25
|
|
@@ -9,9 +9,25 @@ The Toolkit is structured along the following domains:
|
|
|
9
9
|
- `unique_toolkit.language_model`
|
|
10
10
|
- `unique_toolkit.short_term_memory`
|
|
11
11
|
|
|
12
|
-
Each domain comprises a set of
|
|
12
|
+
Each domain comprises a set of schemas (in `schemas.py`) are used in functions (in `functions.py`) which encapsulates the basic functionalities to interact with the plattform.
|
|
13
|
+
The above domains represent the internal structure of the Unique platform.
|
|
13
14
|
|
|
14
|
-
|
|
15
|
+
For the `developers` we expose interfaces via `services` classes that correspond directly to an frontend or an entity the `user` interacts with.
|
|
16
|
+
|
|
17
|
+
The following services are currently available:
|
|
18
|
+
|
|
19
|
+
| Service | Responsability |
|
|
20
|
+
|--|--|
|
|
21
|
+
| ChatService | All interactions with the chat interface |
|
|
22
|
+
| KnowledgeBaseService | All interaction with the knowledgebase |
|
|
23
|
+
|
|
24
|
+
The services can be directly import as
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
from unique_toolkit import ChatService, KnowledgeBaseService
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
In addition, the `unique_toolkit.app` module provides functions to initialize apps and dev utilities to interact with the Unique platform.
|
|
15
31
|
|
|
16
32
|
## Changelog
|
|
17
33
|
|
|
@@ -33,7 +49,6 @@ The `unique_toolkit.app` module encompasses functions for initializing and secur
|
|
|
33
49
|
The `unique_toolkit.chat` module encompasses all chat related functionality.
|
|
34
50
|
|
|
35
51
|
- `functions.py` comprises the functions to manage and load the chat history and interact with the chat ui, e.g., creating a new assistant message.
|
|
36
|
-
- `service.py` comprises the ChatService and provides an interface to manage and load the chat history and interact with the chat ui, e.g., creating a new assistant message and stream complete.
|
|
37
52
|
- `schemas.py` comprises all relevant schemas, e.g., ChatMessage, used in the ChatService.
|
|
38
53
|
- `utils.py` comprises utility functions to use and convert ChatMessage objects in assistants, e.g., convert_chat_history_to_injectable_string converts the chat history to a string that can be injected into a prompt.
|
|
39
54
|
|
|
@@ -42,11 +57,10 @@ The `unique_toolkit.chat` module encompasses all chat related functionality.
|
|
|
42
57
|
The `unique_toolkit.content` module encompasses all content related functionality. Content can be any type of textual data that is stored in the Knowledgebase on the Unique platform. During the ingestion of the content, the content is parsed, split in chunks, indexed, and stored in the database.
|
|
43
58
|
|
|
44
59
|
- `functions.py` comprises the functions to manage and load the chat history and interact with the chat ui, e.g., creating a new assistant message.
|
|
45
|
-
- `service.py` comprises the ContentService and provides an interface to interact with the content, e.g., search content, search content chunks, upload and download content.
|
|
46
60
|
- `schemas.py` comprises all relevant schemas, e.g., Content and ContentChunk, used in the ContentService.
|
|
47
61
|
- `utils.py` comprise utility functions to manipulate Content and ContentChunk objects, e.g., sort_content_chunks and merge_content_chunks.
|
|
48
62
|
|
|
49
|
-
## Embedding
|
|
63
|
+
## Embedding (To be Deprecated)
|
|
50
64
|
|
|
51
65
|
The `unique_toolkit.embedding` module encompasses all embedding related functionality. Embeddings are used to represent textual data in a high-dimensional space. The embeddings can be used to calculate the similarity between two texts, for instance.
|
|
52
66
|
|
|
@@ -54,31 +68,19 @@ The `unique_toolkit.embedding` module encompasses all embedding related function
|
|
|
54
68
|
- `service.py` encompasses the EmbeddingService and provides an interface to interact with the embeddings, e.g., embed text and calculate the similarity between two texts.
|
|
55
69
|
- `schemas.py` comprises all relevant schemas, e.g., Embeddings, used in the EmbeddingService.
|
|
56
70
|
|
|
57
|
-
## Language Model
|
|
71
|
+
## Language Model
|
|
58
72
|
|
|
59
73
|
The `unique_toolkit.language_model` module encompasses all language model related functionality and information on the different language models deployed through the
|
|
60
74
|
Unique platform.
|
|
61
75
|
|
|
62
76
|
- `infos.py` comprises the information on all language models deployed through the Unique platform. We recommend to use the LanguageModel class, initialized with the LanguageModelName, e.g., LanguageModel(LanguageModelName.AZURE_GPT_4o_2024_1120) to get the information on the specific language model like the name, version, token limits or retirement date.
|
|
63
77
|
- `functions.py` comprises the functions to complete and stream complete to chat.
|
|
64
|
-
- `service.py` comprises the LanguageModelService and provides an interface to interact with the language models, e.g., complete.
|
|
65
78
|
- `schemas.py` comprises all relevant schemas, e.g., LanguageModelResponse, used in the LanguageModelService.
|
|
66
79
|
- `utils.py` comprises utility functions to parse the output of the language model, e.g., convert_string_to_json finds and parses the last json object in a string.
|
|
67
80
|
|
|
68
|
-
## Short Term Memory
|
|
81
|
+
## Short Term Memory
|
|
69
82
|
|
|
70
83
|
The `unique_toolkit.short_term_memory` module encompasses all short term memory related functionality.
|
|
71
84
|
|
|
72
85
|
- `functions.py` comprises the functions to manage and load the chat history and interact with the chat ui, e.g., creating a new assistant message.
|
|
73
|
-
- `
|
|
74
|
-
- `schemas.py` comprises all relevant schemas, e.g., ShortTermMemory, used in the ShortTermMemoryService.
|
|
75
|
-
|
|
76
|
-
# Development instructions
|
|
77
|
-
|
|
78
|
-
1. Install poetry on your system (through `brew` or `pipx`).
|
|
79
|
-
|
|
80
|
-
2. Install `pyenv` and install python 3.11. `pyenv` is recommended as otherwise poetry uses the python version used to install itself and not the user preferred python version.
|
|
81
|
-
|
|
82
|
-
3. If you then run `python --version` in your terminal, you should be able to see python version as specified in `.python-version`.
|
|
83
|
-
|
|
84
|
-
4. Then finally run `poetry install` to install the package and all dependencies.
|
|
86
|
+
- `schemas.py` comprises all relevant schemas, e.g., ShortTermMemory, used in the ShortTermMemoryService.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "unique_toolkit"
|
|
3
|
-
version = "1.
|
|
3
|
+
version = "1.43.10"
|
|
4
4
|
description = ""
|
|
5
5
|
authors = [
|
|
6
6
|
"Cedric Klinkert <cedric.klinkert@unique.ch>",
|
|
@@ -21,7 +21,6 @@ typing-extensions = "^4.9.0"
|
|
|
21
21
|
pydantic = "^2.8.2"
|
|
22
22
|
pyhumps = "^3.8.0"
|
|
23
23
|
numpy = "^2.1.0"
|
|
24
|
-
python-dotenv = "^1.0.1"
|
|
25
24
|
regex = "^2024.5.15"
|
|
26
25
|
tiktoken = "^0.12.0"
|
|
27
26
|
pydantic-settings = "^2.10.1"
|
|
@@ -29,13 +28,16 @@ sseclient = "^0.0.27"
|
|
|
29
28
|
openai = "^1.99.9"
|
|
30
29
|
platformdirs = "^4.0.0"
|
|
31
30
|
pillow = "^10.4.0"
|
|
32
|
-
unique-sdk = "^0.10.
|
|
31
|
+
unique-sdk = "^0.10.67"
|
|
33
32
|
jambo = "^0.1.2"
|
|
34
33
|
jinja2 = "^3.1.6"
|
|
35
|
-
mkdocs-multirepo-plugin = "^0.8.3"
|
|
36
|
-
mkdocs-mermaid2-plugin = "^1.2.2"
|
|
37
34
|
docxtpl = "^0.20.1"
|
|
38
35
|
markdown-it-py = "^4.0.0"
|
|
36
|
+
python-docx = "^1.1.0"
|
|
37
|
+
requests = "^2.32.0"
|
|
38
|
+
httpx = "^0.28.0"
|
|
39
|
+
aiohttp = "^3.12.0"
|
|
40
|
+
pandas = "^2.3.0"
|
|
39
41
|
|
|
40
42
|
[tool.poetry.group.langchain]
|
|
41
43
|
optional = true
|
|
@@ -44,6 +46,7 @@ optional = true
|
|
|
44
46
|
openai = "^1.97.0"
|
|
45
47
|
langchain = "^0.3.27"
|
|
46
48
|
langchain-openai = "^0.3.28"
|
|
49
|
+
langchain-core = "^0.3.0"
|
|
47
50
|
|
|
48
51
|
[tool.poetry.group.fastapi]
|
|
49
52
|
optional = true
|
|
@@ -62,10 +65,9 @@ pytest-cov = "^4.1.0"
|
|
|
62
65
|
pre-commit = "^3.7.1"
|
|
63
66
|
pytest-asyncio = "^0.23.8"
|
|
64
67
|
pytest-mock = "^3.14.0"
|
|
65
|
-
platformdirs = "^4.0.0"
|
|
66
|
-
pillow = "^10.4.0"
|
|
67
68
|
ipykernel = "^6.29.5"
|
|
68
|
-
|
|
69
|
+
deptry = "^0.24.0"
|
|
70
|
+
poethepoet = "^0.32.0"
|
|
69
71
|
# unique-sdk = { path = "../unique_sdk" }
|
|
70
72
|
mkdocs = "^1.6.1"
|
|
71
73
|
mkdocs-material = "^9.6.11"
|
|
@@ -76,12 +78,31 @@ entangled-cli = "^2.1.13"
|
|
|
76
78
|
mkdocs-entangled-plugin = "^0.4.0"
|
|
77
79
|
isort = "^6.0.1"
|
|
78
80
|
mkdocs-codeinclude-plugin = "^0.2.1"
|
|
79
|
-
aiohttp = "^3.
|
|
81
|
+
aiohttp = "^3.13.3"
|
|
82
|
+
pandas = "^2.3.3"
|
|
80
83
|
|
|
81
84
|
[build-system]
|
|
82
85
|
requires = ["poetry-core"]
|
|
83
86
|
build-backend = "poetry.core.masonry.api"
|
|
84
87
|
|
|
88
|
+
[tool.poe.tasks]
|
|
89
|
+
lint = "ruff check ."
|
|
90
|
+
lint-fix = "ruff check . --fix"
|
|
91
|
+
format = "ruff format ."
|
|
92
|
+
test = "pytest"
|
|
93
|
+
typecheck = "basedpyright"
|
|
94
|
+
depcheck = "deptry ."
|
|
95
|
+
coverage = "pytest --cov=unique_toolkit --cov-report=term-missing"
|
|
96
|
+
ci-typecheck = { shell = "bash $(git rev-parse --show-toplevel)/.github/scripts/dev.sh typecheck" }
|
|
97
|
+
ci-coverage = { shell = "bash $(git rev-parse --show-toplevel)/.github/scripts/dev.sh coverage" }
|
|
98
|
+
|
|
99
|
+
[tool.deptry]
|
|
100
|
+
known_first_party = ["unique_toolkit"]
|
|
101
|
+
extend_exclude = ["docs", "tests", "unique_toolkit/.*/test", "unique_toolkit/.*/tests"]
|
|
102
|
+
|
|
103
|
+
[tool.deptry.per_rule_ignores]
|
|
104
|
+
DEP004 = ["langchain_openai", "langchain_core"]
|
|
105
|
+
|
|
85
106
|
[tool.ruff]
|
|
86
107
|
target-version = "py311"
|
|
87
108
|
exclude = [".venv", "docs"]
|
|
@@ -91,15 +112,6 @@ exclude = [".venv", "docs"]
|
|
|
91
112
|
extend-select = ["I"]
|
|
92
113
|
|
|
93
114
|
[tool.basedpyright]
|
|
94
|
-
# Type checking mode: "off", "basic", "standard", "strict", "recommended", or "all"
|
|
95
115
|
typeCheckingMode = "standard"
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
"**/test_*.py",
|
|
99
|
-
"**/tests/**",
|
|
100
|
-
"**/.venv/**",
|
|
101
|
-
"**/venv/**",
|
|
102
|
-
"**/site-packages/**",
|
|
103
|
-
"**/__pycache__/**",
|
|
104
|
-
"**/.pytest_cache/**",
|
|
105
|
-
]
|
|
116
|
+
include = ["unique_toolkit"]
|
|
117
|
+
exclude = ["**/tests/**", "**/test_*.py"]
|
{unique_toolkit-1.36.0 → unique_toolkit-1.43.10}/unique_toolkit/_common/docx_generator/schemas.py
RENAMED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
from docx.document import Document as DocumentObject
|
|
2
|
-
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
|
|
3
2
|
from docxtpl import DocxTemplate
|
|
4
3
|
from pydantic import BaseModel
|
|
5
4
|
|
|
@@ -7,45 +6,39 @@ from pydantic import BaseModel
|
|
|
7
6
|
class HeadingField(BaseModel):
|
|
8
7
|
text: str
|
|
9
8
|
level: int = 4
|
|
10
|
-
alignment: WD_PARAGRAPH_ALIGNMENT = WD_PARAGRAPH_ALIGNMENT.LEFT
|
|
11
9
|
|
|
12
10
|
def add(self, doc: DocumentObject):
|
|
13
11
|
p = doc.add_heading(self.text, level=self.level)
|
|
14
|
-
p.alignment = self.alignment
|
|
15
12
|
return p
|
|
16
13
|
|
|
17
14
|
def __str__(self):
|
|
18
|
-
return f"HeadingField(text={self.text}, level={self.level}
|
|
15
|
+
return f"HeadingField(text={self.text}, level={self.level})"
|
|
19
16
|
|
|
20
17
|
|
|
21
18
|
class ParagraphField(BaseModel):
|
|
22
19
|
text: str
|
|
23
20
|
style: str | None = None
|
|
24
|
-
alignment: WD_PARAGRAPH_ALIGNMENT = WD_PARAGRAPH_ALIGNMENT.LEFT
|
|
25
21
|
|
|
26
22
|
def add(self, doc: DocumentObject):
|
|
27
23
|
p = doc.add_paragraph(self.text, style=self.style)
|
|
28
|
-
p.alignment = self.alignment
|
|
29
24
|
return p
|
|
30
25
|
|
|
31
26
|
def __str__(self):
|
|
32
|
-
return f"ParagraphField(text={self.text}, style={self.style}
|
|
27
|
+
return f"ParagraphField(text={self.text}, style={self.style})"
|
|
33
28
|
|
|
34
29
|
|
|
35
30
|
class RunField(BaseModel):
|
|
36
31
|
text: str
|
|
37
32
|
italic: bool | None = False
|
|
38
33
|
bold: bool | None = False
|
|
39
|
-
alignment: WD_PARAGRAPH_ALIGNMENT = WD_PARAGRAPH_ALIGNMENT.LEFT
|
|
40
34
|
|
|
41
35
|
def __str__(self):
|
|
42
|
-
return f"RunField(text={self.text}, italic={self.italic},
|
|
36
|
+
return f"RunField(text={self.text}, italic={self.italic}, bold={self.bold})"
|
|
43
37
|
|
|
44
38
|
|
|
45
39
|
class RunsField(BaseModel):
|
|
46
40
|
runs: list[RunField]
|
|
47
41
|
style: str | None = None
|
|
48
|
-
alignment: WD_PARAGRAPH_ALIGNMENT = WD_PARAGRAPH_ALIGNMENT.LEFT
|
|
49
42
|
|
|
50
43
|
def add(self, doc: DocumentObject):
|
|
51
44
|
if not self.runs:
|
|
@@ -60,7 +53,7 @@ class RunsField(BaseModel):
|
|
|
60
53
|
return p
|
|
61
54
|
|
|
62
55
|
def __str__(self):
|
|
63
|
-
return f"RunsField(runs={self.runs}, style={self.style}
|
|
56
|
+
return f"RunsField(runs={self.runs}, style={self.style})"
|
|
64
57
|
|
|
65
58
|
|
|
66
59
|
class ContentField(BaseModel):
|