unique_toolkit 1.45.6__tar.gz → 1.45.8__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.
Files changed (261) hide show
  1. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/CHANGELOG.md +9 -1
  2. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/PKG-INFO +10 -2
  3. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/pyproject.toml +1 -1
  4. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/evaluation/hallucination/constants.py +2 -2
  5. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/evaluation/tests/test_hallucination_constants.py +34 -0
  6. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/chat/responses_api.py +49 -45
  7. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/LICENSE +0 -0
  8. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/README.md +0 -0
  9. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/__init__.py +0 -0
  10. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/_base_service.py +0 -0
  11. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/_time_utils.py +0 -0
  12. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
  13. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
  14. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
  15. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
  16. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
  17. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
  18. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
  19. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/default_language_model.py +0 -0
  20. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/docx_generator/__init__.py +0 -0
  21. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/docx_generator/config.py +0 -0
  22. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/docx_generator/schemas.py +0 -0
  23. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/docx_generator/service.py +0 -0
  24. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
  25. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/endpoint_builder.py +0 -0
  26. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/endpoint_requestor.py +0 -0
  27. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/exception.py +0 -0
  28. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/execution.py +0 -0
  29. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/experimental/endpoint_builder.py +0 -0
  30. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/experimental/endpoint_requestor.py +0 -0
  31. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/experimental/write_up_agent/README.md +0 -0
  32. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/experimental/write_up_agent/__init__.py +0 -0
  33. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/experimental/write_up_agent/agent.py +0 -0
  34. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/experimental/write_up_agent/config.py +0 -0
  35. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/experimental/write_up_agent/examples/data.csv +0 -0
  36. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/experimental/write_up_agent/examples/example_usage.py +0 -0
  37. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/experimental/write_up_agent/schemas.py +0 -0
  38. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/experimental/write_up_agent/services/__init__.py +0 -0
  39. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/__init__.py +0 -0
  40. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/exceptions.py +0 -0
  41. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/service.py +0 -0
  42. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/utils.py +0 -0
  43. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/__init__.py +0 -0
  44. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/config.py +0 -0
  45. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/exceptions.py +0 -0
  46. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/config.py +0 -0
  47. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/system_prompt.j2 +0 -0
  48. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/user_prompt.j2 +0 -0
  49. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/service.py +0 -0
  50. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/__init__.py +0 -0
  51. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/default_template.j2 +0 -0
  52. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/exceptions.py +0 -0
  53. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/service.py +0 -0
  54. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/utils.py +0 -0
  55. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/experimental/write_up_agent/utils.py +0 -0
  56. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/feature_flags/schema.py +0 -0
  57. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
  58. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/pydantic_helpers.py +0 -0
  59. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/referencing.py +0 -0
  60. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/string_utilities.py +0 -0
  61. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/tests/test_referencing.py +0 -0
  62. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/tests/test_string_utilities.py +0 -0
  63. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/token/image_token_counting.py +0 -0
  64. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/token/token_counting.py +0 -0
  65. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/utils/__init__.py +0 -0
  66. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/utils/files.py +0 -0
  67. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/utils/image/encode.py +0 -0
  68. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/utils/jinja/helpers.py +0 -0
  69. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/utils/jinja/render.py +0 -0
  70. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/utils/jinja/schema.py +0 -0
  71. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/utils/jinja/utils.py +0 -0
  72. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
  73. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
  74. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/utils/write_configuration.py +0 -0
  75. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/validate_required_values.py +0 -0
  76. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/_common/validators.py +0 -0
  77. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/__init__.py +0 -0
  78. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
  79. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +0 -0
  80. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/evaluation/config.py +0 -0
  81. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/__init__.py +0 -0
  82. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/system_prompt.j2 +0 -0
  83. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/user_prompt.j2 +0 -0
  84. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
  85. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
  86. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
  87. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/evaluation/exception.py +0 -0
  88. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
  89. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/evaluation/hallucination/prompts/__init__.py +0 -0
  90. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/evaluation/hallucination/prompts/system_prompt.j2 +0 -0
  91. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/evaluation/hallucination/prompts/user_prompt.j2 +0 -0
  92. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
  93. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
  94. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
  95. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
  96. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/evaluation/tests/fixtures.py +0 -0
  97. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/evaluation/tests/test_config.py +0 -0
  98. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
  99. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/evaluation/tests/test_hallucination_utils.py +0 -0
  100. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
  101. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/evaluation/tests/test_prompt_loaders.py +0 -0
  102. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/evaluation/utils.py +0 -0
  103. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/feature_flags/__init__.py +0 -0
  104. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/feature_flags/feature_flags.py +0 -0
  105. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
  106. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
  107. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
  108. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/history_manager/utils.py +0 -0
  109. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/loop_runner/__init__.py +0 -0
  110. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py +0 -0
  111. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/loop_runner/_responses_iteration_handler_utils.py +0 -0
  112. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/loop_runner/_responses_stream_handler_utils.py +0 -0
  113. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/loop_runner/_stream_handler_utils.py +0 -0
  114. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/loop_runner/base.py +0 -0
  115. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/loop_runner/middleware/__init__.py +0 -0
  116. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/loop_runner/middleware/planning/__init__.py +0 -0
  117. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/loop_runner/middleware/planning/planning.py +0 -0
  118. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/loop_runner/middleware/planning/schema.py +0 -0
  119. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/loop_runner/runners/__init__.py +0 -0
  120. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/loop_runner/runners/basic.py +0 -0
  121. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py +0 -0
  122. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/loop_runner/runners/qwen/helpers.py +0 -0
  123. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py +0 -0
  124. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/message_log_manager/__init__.py +0 -0
  125. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/message_log_manager/service.py +0 -0
  126. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
  127. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
  128. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
  129. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
  130. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +0 -0
  131. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
  132. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
  133. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
  134. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/__init__.py +0 -0
  135. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
  136. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
  137. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
  138. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
  139. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
  140. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
  141. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
  142. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
  143. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
  144. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +0 -0
  145. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +0 -0
  146. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
  147. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
  148. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/a2a/postprocessing/references.py +0 -0
  149. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
  150. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +0 -0
  151. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +0 -0
  152. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
  153. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +0 -0
  154. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/a2a/response_watcher/service.py +0 -0
  155. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
  156. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
  157. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
  158. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
  159. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
  160. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/a2a/tool/test/test_service_utils.py +0 -0
  161. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
  162. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/config.py +0 -0
  163. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/factory.py +0 -0
  164. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
  165. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
  166. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
  167. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
  168. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
  169. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/openai_builtin/base.py +0 -0
  170. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +0 -0
  171. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +0 -0
  172. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/service.py +0 -0
  173. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/openai_builtin/manager.py +0 -0
  174. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/schemas.py +0 -0
  175. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
  176. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
  177. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/tool.py +0 -0
  178. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
  179. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
  180. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
  181. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
  182. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
  183. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
  184. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
  185. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic_table/__init__.py +0 -0
  186. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic_table/schemas.py +0 -0
  187. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/agentic_table/service.py +0 -0
  188. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/app/__init__.py +0 -0
  189. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/app/dev_util.py +0 -0
  190. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/app/fast_api_factory.py +0 -0
  191. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/app/init_logging.py +0 -0
  192. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/app/init_sdk.py +0 -0
  193. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/app/performance/async_tasks.py +0 -0
  194. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/app/performance/async_wrapper.py +0 -0
  195. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/app/schemas.py +0 -0
  196. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/app/unique_settings.py +0 -0
  197. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/app/verification.py +0 -0
  198. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/app/webhook.py +0 -0
  199. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/chat/__init__.py +0 -0
  200. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/chat/constants.py +0 -0
  201. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/chat/deprecated/service.py +0 -0
  202. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/chat/functions.py +0 -0
  203. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/chat/rendering.py +0 -0
  204. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/chat/schemas.py +0 -0
  205. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/chat/service.py +0 -0
  206. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/chat/state.py +0 -0
  207. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/chat/utils.py +0 -0
  208. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/content/__init__.py +0 -0
  209. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/content/constants.py +0 -0
  210. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/content/functions.py +0 -0
  211. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/content/schemas.py +0 -0
  212. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/content/service.py +0 -0
  213. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/content/smart_rules.py +0 -0
  214. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/content/utils.py +0 -0
  215. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/data_extraction/README.md +0 -0
  216. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/data_extraction/__init__.py +0 -0
  217. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/data_extraction/augmented/__init__.py +0 -0
  218. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/data_extraction/augmented/service.py +0 -0
  219. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/data_extraction/base.py +0 -0
  220. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/data_extraction/basic/__init__.py +0 -0
  221. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/data_extraction/basic/config.py +0 -0
  222. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/data_extraction/basic/prompt.py +0 -0
  223. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/data_extraction/basic/service.py +0 -0
  224. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/embedding/__init__.py +0 -0
  225. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/embedding/constants.py +0 -0
  226. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/embedding/functions.py +0 -0
  227. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/embedding/schemas.py +0 -0
  228. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/embedding/service.py +0 -0
  229. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/embedding/utils.py +0 -0
  230. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/framework_utilities/__init__.py +0 -0
  231. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/framework_utilities/langchain/__init__.py +0 -0
  232. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
  233. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
  234. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
  235. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/framework_utilities/openai/client.py +0 -0
  236. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
  237. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/framework_utilities/utils.py +0 -0
  238. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/language_model/__init__.py +0 -0
  239. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/language_model/_responses_api_utils.py +0 -0
  240. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/language_model/builder.py +0 -0
  241. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/language_model/constants.py +0 -0
  242. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/language_model/default_language_model.py +0 -0
  243. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/language_model/functions.py +0 -0
  244. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/language_model/infos.py +0 -0
  245. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/language_model/prompt.py +0 -0
  246. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/language_model/reference.py +0 -0
  247. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/language_model/schemas.py +0 -0
  248. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/language_model/service.py +0 -0
  249. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/language_model/utils.py +0 -0
  250. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/protocols/support.py +0 -0
  251. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/services/__init__.py +0 -0
  252. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/services/chat_service.py +0 -0
  253. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/services/knowledge_base.py +0 -0
  254. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/short_term_memory/__init__.py +0 -0
  255. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/short_term_memory/constants.py +0 -0
  256. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/short_term_memory/functions.py +0 -0
  257. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/short_term_memory/schemas.py +0 -0
  258. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/short_term_memory/service.py +0 -0
  259. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/smart_rules/__init__.py +0 -0
  260. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/smart_rules/compile.py +0 -0
  261. {unique_toolkit-1.45.6 → unique_toolkit-1.45.8}/unique_toolkit/test_utilities/events.py +0 -0
@@ -5,8 +5,16 @@ 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.45.8] - 2026-02-02
9
+ - Hallucination: Hide Source Selection Mode and Reference pattern from schema
10
+
11
+ ## [1.45.7] - 2026-01-30
12
+ - Add JSON string parsing support for reasoning and text parameters in responses API (UI compatibility)
13
+ - Fix variable name bug in `_attempt_extract_verbosity_from_options` function
14
+ - Improve `other_options` handling to prevent overwriting explicitly set parameters
15
+
8
16
  ## [1.45.6] - 2026-01-30
9
- - hallucination evaluator: Use original response to retrieve referenced chunk
17
+ - hallucination evaluator: Use original response to retrieve referenced chunk
10
18
 
11
19
  ## [1.45.5] - 2026-01-29
12
20
  - Add HTML rendering support for code interpreter generated files
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: unique_toolkit
3
- Version: 1.45.6
3
+ Version: 1.45.8
4
4
  Summary:
5
5
  License: Proprietary
6
6
  Author: Cedric Klinkert
@@ -125,8 +125,16 @@ 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.45.8] - 2026-02-02
129
+ - Hallucination: Hide Source Selection Mode and Reference pattern from schema
130
+
131
+ ## [1.45.7] - 2026-01-30
132
+ - Add JSON string parsing support for reasoning and text parameters in responses API (UI compatibility)
133
+ - Fix variable name bug in `_attempt_extract_verbosity_from_options` function
134
+ - Improve `other_options` handling to prevent overwriting explicitly set parameters
135
+
128
136
  ## [1.45.6] - 2026-01-30
129
- - hallucination evaluator: Use original response to retrieve referenced chunk
137
+ - hallucination evaluator: Use original response to retrieve referenced chunk
130
138
 
131
139
  ## [1.45.5] - 2026-01-29
132
140
  - Add HTML rendering support for code interpreter generated files
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "unique_toolkit"
3
- version = "1.45.6"
3
+ version = "1.45.8"
4
4
  description = ""
5
5
  authors = [
6
6
  "Cedric Klinkert <cedric.klinkert@unique.ch>",
@@ -34,10 +34,10 @@ class HallucinationPromptsConfig(EvaluationMetricPromptsConfig):
34
34
 
35
35
 
36
36
  class HallucinationConfig(EvaluationMetricConfig):
37
- source_selection_mode: SourceSelectionMode = Field(
37
+ source_selection_mode: SkipJsonSchema[SourceSelectionMode] = Field(
38
38
  default=SourceSelectionMode.FROM_ORIGINAL_RESPONSE
39
39
  )
40
- reference_pattern: str = Field(default=r"[\[<]?source(\d+)[>\]]?")
40
+ reference_pattern: SkipJsonSchema[str] = Field(default=r"[\[<]?source(\d+)[>\]]?")
41
41
  enabled: SkipJsonSchema[bool] = False
42
42
  name: SkipJsonSchema[EvaluationMetricName] = EvaluationMetricName.HALLUCINATION
43
43
  language_model: LMI = LanguageModelInfo.from_name(
@@ -598,3 +598,37 @@ def test_hallucination_required_input_fields__contains_only_valid_enum_values__f
598
598
  # Act & Assert
599
599
  for field in hallucination_required_input_fields:
600
600
  assert isinstance(field, EvaluationMetricInputFieldName)
601
+
602
+
603
+ @pytest.mark.ai
604
+ def test_hallucination_config__excludes_source_selection_mode__from_json_schema() -> (
605
+ None
606
+ ):
607
+ """
608
+ Purpose: Verify that source_selection_mode is not included in JSON schema.
609
+ Why this matters: SkipJsonSchema annotation should exclude internal fields from schema.
610
+ Setup summary: Generate JSON schema, assert source_selection_mode is not present.
611
+ """
612
+ # Arrange - No setup needed
613
+
614
+ # Act
615
+ schema: dict = HallucinationConfig.model_json_schema()
616
+
617
+ # Assert
618
+ assert "source_selection_mode" not in schema.get("properties", {})
619
+
620
+
621
+ @pytest.mark.ai
622
+ def test_hallucination_config__excludes_reference_pattern__from_json_schema() -> None:
623
+ """
624
+ Purpose: Verify that reference_pattern is not included in JSON schema.
625
+ Why this matters: SkipJsonSchema annotation should exclude internal fields from schema.
626
+ Setup summary: Generate JSON schema, assert reference_pattern is not present.
627
+ """
628
+ # Arrange - No setup needed
629
+
630
+ # Act
631
+ schema: dict = HallucinationConfig.model_json_schema()
632
+
633
+ # Assert
634
+ assert "reference_pattern" not in schema.get("properties", {})
@@ -1,3 +1,4 @@
1
+ import json
1
2
  import logging
2
3
  from typing import Any, NamedTuple, Sequence
3
4
 
@@ -196,12 +197,23 @@ def _prepare_responses_params_util(
196
197
  log_exc_info=False,
197
198
  logger=logger,
198
199
  )
199
- def _attempt_extract_reasoning_from_options(options: dict) -> Reasoning | None:
200
- reasoning = None
200
+ def _attempt_extract_reasoning_from_options(
201
+ options: dict[str, Any],
202
+ ) -> Reasoning | None:
203
+ reasoning: dict[str, Any] | str | None = None
201
204
 
202
205
  # Responses API
203
206
  if "reasoning" in options:
204
207
  reasoning = options["reasoning"]
208
+ # Handle case where reasoning is stored as JSON string (UI limitation)
209
+ if isinstance(reasoning, str):
210
+ try:
211
+ reasoning = json.loads(reasoning)
212
+ except (json.JSONDecodeError, TypeError):
213
+ logger.warning(
214
+ f"Failed to parse reasoning as JSON string: {reasoning}. "
215
+ "Continuing with raw value."
216
+ )
205
217
 
206
218
  # Completions API
207
219
  elif "reasoning_effort" in options:
@@ -222,20 +234,28 @@ def _attempt_extract_reasoning_from_options(options: dict) -> Reasoning | None:
222
234
  logger=logger,
223
235
  )
224
236
  def _attempt_extract_verbosity_from_options(
225
- options: dict,
237
+ options: dict[str, Any],
226
238
  ) -> ResponseTextConfigParam | None:
227
- reasoning = None
239
+ if "verbosity" in options:
240
+ return TypeAdapter(ResponseTextConfigParam).validate_python(
241
+ {"verbosity": options["verbosity"]}
242
+ )
228
243
 
229
244
  # Responses API
230
245
  if "text" in options:
231
- reasoning = options["text"]
232
-
233
- # Completions API
234
- elif "verbosity" in options:
235
- reasoning = {"verbosity": options["verbosity"]}
236
-
237
- if reasoning is not None:
238
- return TypeAdapter(ResponseTextConfigParam).validate_python(reasoning)
246
+ text_config: dict[str, Any] | str = options["text"]
247
+ # Handle case where text is stored as JSON string (UI limitation)
248
+ if isinstance(text_config, str):
249
+ try:
250
+ text_config = json.loads(text_config)
251
+ return TypeAdapter(ResponseTextConfigParam).validate_python(text_config)
252
+ except (json.JSONDecodeError, TypeError):
253
+ logger.warning(
254
+ f"Failed to parse text as JSON string: {text_config}. "
255
+ "Continuing with raw value."
256
+ )
257
+ if isinstance(text_config, dict):
258
+ return TypeAdapter(ResponseTextConfigParam).validate_python(text_config)
239
259
 
240
260
  return None
241
261
 
@@ -283,42 +303,26 @@ def _prepare_responses_args(
283
303
 
284
304
  openai_options: unique_sdk.Integrated.CreateStreamResponsesOpenaiParams = {}
285
305
 
286
- if params.temperature is not None:
287
- openai_options["temperature"] = params.temperature
288
-
289
- if params.reasoning is not None:
290
- openai_options["reasoning"] = params.reasoning
291
-
292
- if params.text is not None:
293
- openai_options["text"] = params.text
294
-
295
- if include is not None:
296
- openai_options["include"] = include
297
-
298
- if instructions is not None:
299
- openai_options["instructions"] = instructions
300
-
301
- if max_output_tokens is not None:
302
- openai_options["max_output_tokens"] = max_output_tokens
303
-
304
- if metadata is not None:
305
- openai_options["metadata"] = metadata
306
-
307
- if parallel_tool_calls is not None:
308
- openai_options["parallel_tool_calls"] = parallel_tool_calls
309
-
310
- if tool_choice is not None:
311
- openai_options["tool_choice"] = tool_choice
312
-
313
- if params.tools is not None:
314
- openai_options["tools"] = params.tools
315
-
316
- if top_p is not None:
317
- openai_options["top_p"] = top_p
306
+ explicit_options = {
307
+ "temperature": params.temperature,
308
+ "reasoning": params.reasoning,
309
+ "text": params.text,
310
+ "include": include,
311
+ "instructions": instructions,
312
+ "max_output_tokens": max_output_tokens,
313
+ "metadata": metadata,
314
+ "parallel_tool_calls": parallel_tool_calls,
315
+ "tool_choice": tool_choice,
316
+ "tools": params.tools,
317
+ "top_p": top_p,
318
+ }
319
+
320
+ openai_options.update({k: v for k, v in explicit_options.items() if v is not None}) # type: ignore[arg-type]
318
321
 
319
322
  # allow any other openai.resources.responses.Response.create options
320
323
  if other_options is not None:
321
- openai_options.update(other_options) # type: ignore
324
+ for k, v in other_options.items():
325
+ openai_options.setdefault(k, v) # type: ignore
322
326
 
323
327
  options["options"] = openai_options
324
328
 
File without changes