unique_toolkit 1.43.11__tar.gz → 1.44.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/CHANGELOG.md +3 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/PKG-INFO +4 -1
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/pyproject.toml +1 -1
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/loop_runner/__init__.py +7 -1
- unique_toolkit-1.44.0/unique_toolkit/agentic/loop_runner/_responses_iteration_handler_utils.py +63 -0
- unique_toolkit-1.44.0/unique_toolkit/agentic/loop_runner/_responses_stream_handler_utils.py +90 -0
- unique_toolkit-1.44.0/unique_toolkit/agentic/loop_runner/base.py +87 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/loop_runner/runners/__init__.py +2 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/loop_runner/runners/basic.py +29 -4
- unique_toolkit-1.43.11/unique_toolkit/agentic/loop_runner/base.py +0 -38
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/LICENSE +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/README.md +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/_base_service.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/_time_utils.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/default_language_model.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/docx_generator/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/docx_generator/config.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/docx_generator/schemas.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/docx_generator/service.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/endpoint_builder.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/endpoint_requestor.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/exception.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/execution.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/experimental/endpoint_builder.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/experimental/endpoint_requestor.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/experimental/write_up_agent/README.md +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/experimental/write_up_agent/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/experimental/write_up_agent/agent.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/experimental/write_up_agent/config.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/experimental/write_up_agent/examples/data.csv +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/experimental/write_up_agent/examples/example_usage.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/experimental/write_up_agent/schemas.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/experimental/write_up_agent/services/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/exceptions.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/service.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/utils.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/config.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/exceptions.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/config.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/service.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/default_template.j2 +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/exceptions.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/service.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/utils.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/experimental/write_up_agent/utils.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/feature_flags/schema.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/pydantic_helpers.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/referencing.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/string_utilities.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/tests/test_referencing.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/tests/test_string_utilities.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/token/image_token_counting.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/token/token_counting.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/utils/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/utils/files.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/utils/image/encode.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/utils/jinja/helpers.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/utils/jinja/render.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/utils/jinja/schema.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/utils/jinja/utils.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/utils/write_configuration.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/validate_required_values.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/validators.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/evaluation/config.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/evaluation/context_relevancy/prompts.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/evaluation/exception.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/evaluation/hallucination/prompts.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/feature_flags/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/feature_flags/feature_flags.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/history_manager/utils.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/loop_runner/_stream_handler_utils.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/loop_runner/middleware/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/loop_runner/middleware/planning/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/loop_runner/middleware/planning/planning.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/loop_runner/middleware/planning/schema.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/loop_runner/runners/qwen/helpers.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/message_log_manager/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/message_log_manager/service.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/a2a/postprocessing/references.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/a2a/response_watcher/service.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/a2a/tool/test/test_service_utils.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/config.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/factory.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/openai_builtin/base.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/service.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/openai_builtin/manager.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/schemas.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/tool.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic_table/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic_table/schemas.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic_table/service.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/app/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/app/dev_util.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/app/fast_api_factory.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/app/init_logging.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/app/init_sdk.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/app/performance/async_tasks.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/app/performance/async_wrapper.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/app/schemas.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/app/unique_settings.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/app/verification.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/app/webhook.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/chat/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/chat/constants.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/chat/deprecated/service.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/chat/functions.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/chat/rendering.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/chat/responses_api.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/chat/schemas.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/chat/service.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/chat/state.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/chat/utils.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/content/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/content/constants.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/content/functions.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/content/schemas.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/content/service.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/content/smart_rules.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/content/utils.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/data_extraction/README.md +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/data_extraction/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/data_extraction/augmented/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/data_extraction/augmented/service.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/data_extraction/base.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/data_extraction/basic/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/data_extraction/basic/config.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/data_extraction/basic/prompt.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/data_extraction/basic/service.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/embedding/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/embedding/constants.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/embedding/functions.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/embedding/schemas.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/embedding/service.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/embedding/utils.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/framework_utilities/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/framework_utilities/langchain/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/framework_utilities/openai/client.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/framework_utilities/utils.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/language_model/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/language_model/_responses_api_utils.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/language_model/builder.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/language_model/constants.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/language_model/default_language_model.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/language_model/functions.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/language_model/infos.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/language_model/prompt.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/language_model/reference.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/language_model/schemas.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/language_model/service.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/language_model/utils.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/protocols/support.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/services/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/services/chat_service.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/services/knowledge_base.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/short_term_memory/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/short_term_memory/constants.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/short_term_memory/functions.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/short_term_memory/schemas.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/short_term_memory/service.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/smart_rules/__init__.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/smart_rules/compile.py +0 -0
- {unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/test_utilities/events.py +0 -0
|
@@ -5,6 +5,9 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.44.0] - 2026-01-23
|
|
9
|
+
- Add LoopIterationRunner abstraction for the responses api
|
|
10
|
+
|
|
8
11
|
## [1.43.11] - 2026-01-23
|
|
9
12
|
- Add `RESPONSES_API` Capablity to some models that were missing it
|
|
10
13
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: unique_toolkit
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.44.0
|
|
4
4
|
Summary:
|
|
5
5
|
License: Proprietary
|
|
6
6
|
Author: Cedric Klinkert
|
|
@@ -125,6 +125,9 @@ All notable changes to this project will be documented in this file.
|
|
|
125
125
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
126
126
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
127
127
|
|
|
128
|
+
## [1.44.0] - 2026-01-23
|
|
129
|
+
- Add LoopIterationRunner abstraction for the responses api
|
|
130
|
+
|
|
128
131
|
## [1.43.11] - 2026-01-23
|
|
129
132
|
- Add `RESPONSES_API` Capablity to some models that were missing it
|
|
130
133
|
|
{unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/loop_runner/__init__.py
RENAMED
|
@@ -3,7 +3,10 @@ from unique_toolkit.agentic.loop_runner._iteration_handler_utils import (
|
|
|
3
3
|
handle_last_iteration,
|
|
4
4
|
handle_normal_iteration,
|
|
5
5
|
)
|
|
6
|
-
from unique_toolkit.agentic.loop_runner.base import
|
|
6
|
+
from unique_toolkit.agentic.loop_runner.base import (
|
|
7
|
+
LoopIterationRunner,
|
|
8
|
+
ResponsesLoopIterationRunner,
|
|
9
|
+
)
|
|
7
10
|
from unique_toolkit.agentic.loop_runner.middleware import (
|
|
8
11
|
PlanningConfig,
|
|
9
12
|
PlanningMiddleware,
|
|
@@ -16,6 +19,7 @@ from unique_toolkit.agentic.loop_runner.runners import (
|
|
|
16
19
|
BasicLoopIterationRunner,
|
|
17
20
|
BasicLoopIterationRunnerConfig,
|
|
18
21
|
QwenLoopIterationRunner,
|
|
22
|
+
ResponsesBasicLoopIterationRunner,
|
|
19
23
|
is_qwen_model,
|
|
20
24
|
)
|
|
21
25
|
|
|
@@ -34,4 +38,6 @@ __all__ = [
|
|
|
34
38
|
"QWEN_FORCED_TOOL_CALL_INSTRUCTION",
|
|
35
39
|
"QWEN_LAST_ITERATION_INSTRUCTION",
|
|
36
40
|
"QWEN_MAX_LOOP_ITERATIONS",
|
|
41
|
+
"ResponsesLoopIterationRunner",
|
|
42
|
+
"ResponsesBasicLoopIterationRunner",
|
|
37
43
|
]
|
unique_toolkit-1.44.0/unique_toolkit/agentic/loop_runner/_responses_iteration_handler_utils.py
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
from typing import Unpack
|
|
3
|
+
|
|
4
|
+
from unique_toolkit.agentic.loop_runner._responses_stream_handler_utils import (
|
|
5
|
+
responses_stream_response,
|
|
6
|
+
)
|
|
7
|
+
from unique_toolkit.agentic.loop_runner.base import (
|
|
8
|
+
_ResponsesLoopIterationRunnerKwargs,
|
|
9
|
+
)
|
|
10
|
+
from unique_toolkit.language_model.schemas import ResponsesLanguageModelStreamResponse
|
|
11
|
+
|
|
12
|
+
_LOGGER = logging.getLogger(__name__)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
async def handle_responses_last_iteration(
|
|
16
|
+
**kwargs: Unpack[_ResponsesLoopIterationRunnerKwargs],
|
|
17
|
+
) -> ResponsesLanguageModelStreamResponse:
|
|
18
|
+
_LOGGER.info("Reached last iteration, removing tools and producing final response")
|
|
19
|
+
|
|
20
|
+
return await responses_stream_response(
|
|
21
|
+
loop_runner_kwargs=kwargs,
|
|
22
|
+
tools=None,
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
async def handle_responses_normal_iteration(
|
|
27
|
+
**kwargs: Unpack[_ResponsesLoopIterationRunnerKwargs],
|
|
28
|
+
) -> ResponsesLanguageModelStreamResponse:
|
|
29
|
+
_LOGGER.info("Running loop iteration %d", kwargs["iteration_index"])
|
|
30
|
+
|
|
31
|
+
return await responses_stream_response(loop_runner_kwargs=kwargs)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
async def handle_responses_forced_tools_iteration(
|
|
35
|
+
**kwargs: Unpack[_ResponsesLoopIterationRunnerKwargs],
|
|
36
|
+
) -> ResponsesLanguageModelStreamResponse:
|
|
37
|
+
assert "tool_choices" in kwargs
|
|
38
|
+
|
|
39
|
+
tool_choices = kwargs["tool_choices"]
|
|
40
|
+
assert len(tool_choices) > 0
|
|
41
|
+
|
|
42
|
+
_LOGGER.info("Forcing tools calls: %s", tool_choices)
|
|
43
|
+
|
|
44
|
+
responses: list[ResponsesLanguageModelStreamResponse] = []
|
|
45
|
+
|
|
46
|
+
for opt in tool_choices:
|
|
47
|
+
responses.append(
|
|
48
|
+
await responses_stream_response(loop_runner_kwargs=kwargs, tool_choice=opt)
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
# Merge responses and refs:
|
|
52
|
+
tool_calls = []
|
|
53
|
+
references = []
|
|
54
|
+
for r in responses:
|
|
55
|
+
if r.tool_calls:
|
|
56
|
+
tool_calls.extend(r.tool_calls)
|
|
57
|
+
references.extend(r.message.references)
|
|
58
|
+
|
|
59
|
+
response = responses[0]
|
|
60
|
+
response.tool_calls = tool_calls if len(tool_calls) > 0 else None
|
|
61
|
+
response.message.references = references
|
|
62
|
+
|
|
63
|
+
return response
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
from typing import Any, Required, Sequence
|
|
2
|
+
|
|
3
|
+
from openai.types.responses import (
|
|
4
|
+
ResponseIncludable,
|
|
5
|
+
ResponseInputItemParam,
|
|
6
|
+
ResponseOutputItem,
|
|
7
|
+
ResponseTextConfigParam,
|
|
8
|
+
ToolParam,
|
|
9
|
+
response_create_params,
|
|
10
|
+
)
|
|
11
|
+
from openai.types.shared_params import Metadata, Reasoning
|
|
12
|
+
from typing_extensions import TypedDict
|
|
13
|
+
|
|
14
|
+
from unique_toolkit import LanguageModelToolDescription
|
|
15
|
+
from unique_toolkit.agentic.loop_runner.base import _ResponsesLoopIterationRunnerKwargs
|
|
16
|
+
from unique_toolkit.chat.service import LanguageModelMessages
|
|
17
|
+
from unique_toolkit.content import ContentChunk
|
|
18
|
+
from unique_toolkit.language_model.schemas import (
|
|
19
|
+
LanguageModelMessageOptions,
|
|
20
|
+
ResponsesLanguageModelStreamResponse,
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class _ResponsesStreamingHandlerKwargs(TypedDict, total=False):
|
|
25
|
+
messages: Required[
|
|
26
|
+
str
|
|
27
|
+
| LanguageModelMessages
|
|
28
|
+
| Sequence[
|
|
29
|
+
ResponseInputItemParam | LanguageModelMessageOptions | ResponseOutputItem
|
|
30
|
+
]
|
|
31
|
+
]
|
|
32
|
+
model_name: Required[str]
|
|
33
|
+
tools: Sequence[LanguageModelToolDescription | ToolParam]
|
|
34
|
+
content_chunks: list[ContentChunk]
|
|
35
|
+
start_text: str
|
|
36
|
+
debug_info: dict[str, Any]
|
|
37
|
+
temperature: float
|
|
38
|
+
include: list[ResponseIncludable]
|
|
39
|
+
instructions: str
|
|
40
|
+
max_output_tokens: int
|
|
41
|
+
metadata: Metadata
|
|
42
|
+
parallel_tool_calls: bool
|
|
43
|
+
text: ResponseTextConfigParam
|
|
44
|
+
tool_choice: response_create_params.ToolChoice
|
|
45
|
+
top_p: float
|
|
46
|
+
reasoning: Reasoning
|
|
47
|
+
other_options: dict[str, Any]
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
def _extract_responses_streaming_kwargs(
|
|
51
|
+
kwargs: _ResponsesLoopIterationRunnerKwargs,
|
|
52
|
+
) -> _ResponsesStreamingHandlerKwargs:
|
|
53
|
+
res = _ResponsesStreamingHandlerKwargs(
|
|
54
|
+
messages=kwargs["messages"],
|
|
55
|
+
model_name=kwargs["model"].name,
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
for k in [
|
|
59
|
+
"tools",
|
|
60
|
+
"content_chunks",
|
|
61
|
+
"start_text",
|
|
62
|
+
"debug_info",
|
|
63
|
+
"temperature",
|
|
64
|
+
"include",
|
|
65
|
+
"instructions",
|
|
66
|
+
"max_output_tokens",
|
|
67
|
+
"metadata",
|
|
68
|
+
"parallel_tool_calls",
|
|
69
|
+
"text",
|
|
70
|
+
"top_p",
|
|
71
|
+
"reasoning",
|
|
72
|
+
"other_options",
|
|
73
|
+
]:
|
|
74
|
+
if k in kwargs:
|
|
75
|
+
res[k] = kwargs[k]
|
|
76
|
+
|
|
77
|
+
return res
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
async def responses_stream_response(
|
|
81
|
+
loop_runner_kwargs: _ResponsesLoopIterationRunnerKwargs,
|
|
82
|
+
**kwargs,
|
|
83
|
+
) -> ResponsesLanguageModelStreamResponse:
|
|
84
|
+
streaming_handler = loop_runner_kwargs["streaming_handler"]
|
|
85
|
+
streaming_handler_kwargs = _extract_responses_streaming_kwargs(loop_runner_kwargs)
|
|
86
|
+
streaming_handler_kwargs.update(**kwargs)
|
|
87
|
+
|
|
88
|
+
return await streaming_handler.complete_with_references_async(
|
|
89
|
+
**streaming_handler_kwargs
|
|
90
|
+
)
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
from typing import Any, Protocol, Required, Sequence, Unpack
|
|
2
|
+
|
|
3
|
+
from openai.types.chat import ChatCompletionNamedToolChoiceParam
|
|
4
|
+
from openai.types.responses import (
|
|
5
|
+
ResponseIncludable,
|
|
6
|
+
ResponseInputItemParam,
|
|
7
|
+
ResponseOutputItem,
|
|
8
|
+
ResponseTextConfigParam,
|
|
9
|
+
ToolParam,
|
|
10
|
+
response_create_params,
|
|
11
|
+
)
|
|
12
|
+
from openai.types.shared_params import Metadata, Reasoning
|
|
13
|
+
from typing_extensions import TypedDict
|
|
14
|
+
|
|
15
|
+
from unique_toolkit import LanguageModelToolDescription
|
|
16
|
+
from unique_toolkit.chat.functions import LanguageModelStreamResponse
|
|
17
|
+
from unique_toolkit.chat.service import LanguageModelMessages
|
|
18
|
+
from unique_toolkit.content import ContentChunk
|
|
19
|
+
from unique_toolkit.language_model.infos import LanguageModelInfo
|
|
20
|
+
from unique_toolkit.language_model.schemas import (
|
|
21
|
+
LanguageModelMessageOptions,
|
|
22
|
+
ResponsesLanguageModelStreamResponse,
|
|
23
|
+
)
|
|
24
|
+
from unique_toolkit.protocols.support import (
|
|
25
|
+
ResponsesSupportCompleteWithReferences,
|
|
26
|
+
SupportCompleteWithReferences,
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class _LoopIterationRunnerKwargs(TypedDict, total=False):
|
|
31
|
+
iteration_index: Required[int]
|
|
32
|
+
streaming_handler: Required[SupportCompleteWithReferences]
|
|
33
|
+
messages: Required[LanguageModelMessages]
|
|
34
|
+
model: Required[LanguageModelInfo]
|
|
35
|
+
tools: list[LanguageModelToolDescription]
|
|
36
|
+
content_chunks: list[ContentChunk]
|
|
37
|
+
start_text: str
|
|
38
|
+
debug_info: dict[str, Any]
|
|
39
|
+
temperature: float
|
|
40
|
+
tool_choices: list[ChatCompletionNamedToolChoiceParam]
|
|
41
|
+
other_options: dict[str, Any]
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
class LoopIterationRunner(Protocol):
|
|
45
|
+
"""
|
|
46
|
+
A loop iteration runner is responsible for running a single iteration of the loop, and returning the stream response for that iteration.
|
|
47
|
+
"""
|
|
48
|
+
|
|
49
|
+
async def __call__(
|
|
50
|
+
self,
|
|
51
|
+
**kwargs: Unpack[_LoopIterationRunnerKwargs],
|
|
52
|
+
) -> LanguageModelStreamResponse: ...
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
class _ResponsesLoopIterationRunnerKwargs(TypedDict, total=False):
|
|
56
|
+
iteration_index: Required[int]
|
|
57
|
+
streaming_handler: Required[ResponsesSupportCompleteWithReferences]
|
|
58
|
+
messages: Required[
|
|
59
|
+
str
|
|
60
|
+
| LanguageModelMessages
|
|
61
|
+
| Sequence[
|
|
62
|
+
ResponseInputItemParam | LanguageModelMessageOptions | ResponseOutputItem
|
|
63
|
+
]
|
|
64
|
+
]
|
|
65
|
+
model: Required[LanguageModelInfo]
|
|
66
|
+
tools: list[LanguageModelToolDescription | ToolParam]
|
|
67
|
+
content_chunks: list[ContentChunk]
|
|
68
|
+
start_text: str
|
|
69
|
+
debug_info: dict[str, Any]
|
|
70
|
+
temperature: float
|
|
71
|
+
include: list[ResponseIncludable]
|
|
72
|
+
instructions: str
|
|
73
|
+
max_output_tokens: int
|
|
74
|
+
metadata: Metadata
|
|
75
|
+
parallel_tool_calls: bool
|
|
76
|
+
text: ResponseTextConfigParam
|
|
77
|
+
tool_choices: list[response_create_params.ToolChoice]
|
|
78
|
+
top_p: float
|
|
79
|
+
reasoning: Reasoning
|
|
80
|
+
other_options: dict[str, Any]
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
class ResponsesLoopIterationRunner(Protocol):
|
|
84
|
+
async def __call__(
|
|
85
|
+
self,
|
|
86
|
+
**kwargs: Unpack[_ResponsesLoopIterationRunnerKwargs],
|
|
87
|
+
) -> ResponsesLanguageModelStreamResponse: ...
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from unique_toolkit.agentic.loop_runner.runners.basic import (
|
|
2
2
|
BasicLoopIterationRunner,
|
|
3
3
|
BasicLoopIterationRunnerConfig,
|
|
4
|
+
ResponsesBasicLoopIterationRunner,
|
|
4
5
|
)
|
|
5
6
|
from unique_toolkit.agentic.loop_runner.runners.qwen import (
|
|
6
7
|
QWEN_FORCED_TOOL_CALL_INSTRUCTION,
|
|
@@ -13,6 +14,7 @@ from unique_toolkit.agentic.loop_runner.runners.qwen import (
|
|
|
13
14
|
__all__ = [
|
|
14
15
|
"BasicLoopIterationRunnerConfig",
|
|
15
16
|
"BasicLoopIterationRunner",
|
|
17
|
+
"ResponsesBasicLoopIterationRunner",
|
|
16
18
|
"QwenLoopIterationRunner",
|
|
17
19
|
"QWEN_FORCED_TOOL_CALL_INSTRUCTION",
|
|
18
20
|
"QWEN_LAST_ITERATION_INSTRUCTION",
|
{unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/loop_runner/runners/basic.py
RENAMED
|
@@ -9,14 +9,19 @@ from unique_toolkit.agentic.loop_runner._iteration_handler_utils import (
|
|
|
9
9
|
handle_last_iteration,
|
|
10
10
|
handle_normal_iteration,
|
|
11
11
|
)
|
|
12
|
+
from unique_toolkit.agentic.loop_runner._responses_iteration_handler_utils import (
|
|
13
|
+
handle_responses_forced_tools_iteration,
|
|
14
|
+
handle_responses_last_iteration,
|
|
15
|
+
handle_responses_normal_iteration,
|
|
16
|
+
)
|
|
12
17
|
from unique_toolkit.agentic.loop_runner.base import (
|
|
13
18
|
LoopIterationRunner,
|
|
19
|
+
ResponsesLoopIterationRunner,
|
|
14
20
|
_LoopIterationRunnerKwargs,
|
|
21
|
+
_ResponsesLoopIterationRunnerKwargs,
|
|
15
22
|
)
|
|
16
23
|
from unique_toolkit.chat.functions import LanguageModelStreamResponse
|
|
17
|
-
from unique_toolkit.
|
|
18
|
-
ResponsesLanguageModelStreamResponse,
|
|
19
|
-
)
|
|
24
|
+
from unique_toolkit.language_model.schemas import ResponsesLanguageModelStreamResponse
|
|
20
25
|
|
|
21
26
|
_LOGGER = logging.getLogger(__name__)
|
|
22
27
|
|
|
@@ -34,7 +39,7 @@ class BasicLoopIterationRunner(LoopIterationRunner):
|
|
|
34
39
|
async def __call__(
|
|
35
40
|
self,
|
|
36
41
|
**kwargs: Unpack[_LoopIterationRunnerKwargs],
|
|
37
|
-
) -> LanguageModelStreamResponse
|
|
42
|
+
) -> LanguageModelStreamResponse:
|
|
38
43
|
tool_choices = kwargs.get("tool_choices", [])
|
|
39
44
|
iteration_index = kwargs["iteration_index"]
|
|
40
45
|
|
|
@@ -44,3 +49,23 @@ class BasicLoopIterationRunner(LoopIterationRunner):
|
|
|
44
49
|
return await handle_last_iteration(**kwargs)
|
|
45
50
|
else:
|
|
46
51
|
return await handle_normal_iteration(**kwargs)
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
class ResponsesBasicLoopIterationRunner(ResponsesLoopIterationRunner):
|
|
55
|
+
def __init__(self, config: BasicLoopIterationRunnerConfig) -> None:
|
|
56
|
+
self._config = config
|
|
57
|
+
|
|
58
|
+
@override
|
|
59
|
+
async def __call__(
|
|
60
|
+
self,
|
|
61
|
+
**kwargs: Unpack[_ResponsesLoopIterationRunnerKwargs],
|
|
62
|
+
) -> ResponsesLanguageModelStreamResponse:
|
|
63
|
+
tool_choices = kwargs.get("tool_choices", [])
|
|
64
|
+
iteration_index = kwargs["iteration_index"]
|
|
65
|
+
|
|
66
|
+
if len(tool_choices) > 0 and iteration_index == 0:
|
|
67
|
+
return await handle_responses_forced_tools_iteration(**kwargs)
|
|
68
|
+
elif iteration_index == self._config.max_loop_iterations - 1:
|
|
69
|
+
return await handle_responses_last_iteration(**kwargs)
|
|
70
|
+
else:
|
|
71
|
+
return await handle_responses_normal_iteration(**kwargs)
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
from typing import Any, Protocol, Required, Unpack
|
|
2
|
-
|
|
3
|
-
from openai.types.chat import ChatCompletionNamedToolChoiceParam
|
|
4
|
-
from typing_extensions import TypedDict
|
|
5
|
-
|
|
6
|
-
from unique_toolkit import LanguageModelToolDescription
|
|
7
|
-
from unique_toolkit.chat.functions import LanguageModelStreamResponse
|
|
8
|
-
from unique_toolkit.chat.service import LanguageModelMessages
|
|
9
|
-
from unique_toolkit.content import ContentChunk
|
|
10
|
-
from unique_toolkit.language_model.infos import LanguageModelInfo
|
|
11
|
-
from unique_toolkit.protocols.support import (
|
|
12
|
-
SupportCompleteWithReferences,
|
|
13
|
-
)
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
class _LoopIterationRunnerKwargs(TypedDict, total=False):
|
|
17
|
-
iteration_index: Required[int]
|
|
18
|
-
streaming_handler: Required[SupportCompleteWithReferences]
|
|
19
|
-
messages: Required[LanguageModelMessages]
|
|
20
|
-
model: Required[LanguageModelInfo]
|
|
21
|
-
tools: list[LanguageModelToolDescription]
|
|
22
|
-
content_chunks: list[ContentChunk]
|
|
23
|
-
start_text: str
|
|
24
|
-
debug_info: dict[str, Any]
|
|
25
|
-
temperature: float
|
|
26
|
-
tool_choices: list[ChatCompletionNamedToolChoiceParam]
|
|
27
|
-
other_options: dict[str, Any]
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
class LoopIterationRunner(Protocol):
|
|
31
|
-
"""
|
|
32
|
-
A loop iteration runner is responsible for running a single iteration of the loop, and returning the stream response for that iteration.
|
|
33
|
-
"""
|
|
34
|
-
|
|
35
|
-
async def __call__(
|
|
36
|
-
self,
|
|
37
|
-
**kwargs: Unpack[_LoopIterationRunnerKwargs],
|
|
38
|
-
) -> LanguageModelStreamResponse: ...
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/base_model_type_attribute.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/default_language_model.py
RENAMED
|
File without changes
|
{unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/docx_generator/__init__.py
RENAMED
|
File without changes
|
{unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/docx_generator/config.py
RENAMED
|
File without changes
|
{unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/docx_generator/schemas.py
RENAMED
|
File without changes
|
{unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/docx_generator/service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/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
|
{unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/feature_flags/schema.py
RENAMED
|
File without changes
|
{unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/pydantic/rjsf_tags.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/tests/test_referencing.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/token/token_counting.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/utils/image/encode.py
RENAMED
|
File without changes
|
{unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/utils/jinja/helpers.py
RENAMED
|
File without changes
|
{unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/utils/jinja/render.py
RENAMED
|
File without changes
|
{unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/utils/jinja/schema.py
RENAMED
|
File without changes
|
{unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/utils/jinja/utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/utils/write_configuration.py
RENAMED
|
File without changes
|
{unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/_common/validate_required_values.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/evaluation/config.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/evaluation/exception.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.43.11 → unique_toolkit-1.44.0}/unique_toolkit/agentic/evaluation/output_parser.py
RENAMED
|
File without changes
|