unique_toolkit 1.46.12__tar.gz → 1.46.13__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 (284) hide show
  1. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/CHANGELOG.md +4 -0
  2. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/PKG-INFO +5 -1
  3. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/pyproject.toml +1 -1
  4. unique_toolkit-1.46.13/unique_toolkit/language_model/__init__.py +79 -0
  5. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/language_model/infos.py +52 -15
  6. unique_toolkit-1.46.12/unique_toolkit/language_model/__init__.py +0 -90
  7. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/LICENSE +0 -0
  8. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/README.md +0 -0
  9. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/__init__.py +0 -0
  10. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/__init__.py +0 -0
  11. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/_base_service.py +0 -0
  12. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/_time_utils.py +0 -0
  13. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
  14. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
  15. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
  16. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
  17. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
  18. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
  19. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
  20. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/config_checker/README.md +0 -0
  21. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/config_checker/__init__.py +0 -0
  22. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/config_checker/__main__.py +0 -0
  23. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/config_checker/cli.py +0 -0
  24. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/config_checker/differ.py +0 -0
  25. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/config_checker/exporter.py +0 -0
  26. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/config_checker/models.py +0 -0
  27. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/config_checker/registry.py +0 -0
  28. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/config_checker/validator.py +0 -0
  29. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/default_language_model.py +0 -0
  30. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/docx_generator/__init__.py +0 -0
  31. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/docx_generator/config.py +0 -0
  32. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/docx_generator/schemas.py +0 -0
  33. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/docx_generator/service.py +0 -0
  34. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
  35. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/endpoint_builder.py +0 -0
  36. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/endpoint_requestor.py +0 -0
  37. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/event_bus.py +0 -0
  38. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/exception.py +0 -0
  39. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/execution.py +0 -0
  40. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/endpoint_builder.py +0 -0
  41. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/endpoint_requestor.py +0 -0
  42. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/README.md +0 -0
  43. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/__init__.py +0 -0
  44. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/agent.py +0 -0
  45. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/config.py +0 -0
  46. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/examples/data.csv +0 -0
  47. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/examples/example_usage.py +0 -0
  48. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/schemas.py +0 -0
  49. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/services/__init__.py +0 -0
  50. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/__init__.py +0 -0
  51. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/exceptions.py +0 -0
  52. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/service.py +0 -0
  53. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/utils.py +0 -0
  54. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/__init__.py +0 -0
  55. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/config.py +0 -0
  56. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/exceptions.py +0 -0
  57. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/config.py +0 -0
  58. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/system_prompt.j2 +0 -0
  59. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/user_prompt.j2 +0 -0
  60. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/service.py +0 -0
  61. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/__init__.py +0 -0
  62. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/default_template.j2 +0 -0
  63. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/exceptions.py +0 -0
  64. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/service.py +0 -0
  65. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/utils.py +0 -0
  66. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/utils.py +0 -0
  67. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/feature_flags/schema.py +0 -0
  68. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
  69. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/pydantic_helpers.py +0 -0
  70. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/referencing.py +0 -0
  71. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/string_utilities.py +0 -0
  72. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/tests/test_referencing.py +0 -0
  73. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/tests/test_string_utilities.py +0 -0
  74. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/token/__init__.py +0 -0
  75. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/token/image_token_counting.py +0 -0
  76. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/token/token_counting.py +0 -0
  77. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/token/tokenizers/deepseek/tokenizer.json +0 -0
  78. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/token/tokenizers/qwen/tokenizer.json +0 -0
  79. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/utils/__init__.py +0 -0
  80. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/utils/files.py +0 -0
  81. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/utils/image/encode.py +0 -0
  82. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/utils/jinja/helpers.py +0 -0
  83. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/utils/jinja/render.py +0 -0
  84. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/utils/jinja/schema.py +0 -0
  85. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/utils/jinja/utils.py +0 -0
  86. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
  87. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
  88. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/utils/write_configuration.py +0 -0
  89. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/validate_required_values.py +0 -0
  90. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/_common/validators.py +0 -0
  91. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/__init__.py +0 -0
  92. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
  93. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +0 -0
  94. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/config.py +0 -0
  95. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/__init__.py +0 -0
  96. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/system_prompt.j2 +0 -0
  97. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/user_prompt.j2 +0 -0
  98. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
  99. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
  100. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
  101. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/exception.py +0 -0
  102. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
  103. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
  104. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/hallucination/prompts/__init__.py +0 -0
  105. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/hallucination/prompts/system_prompt.j2 +0 -0
  106. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/hallucination/prompts/user_prompt.j2 +0 -0
  107. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
  108. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
  109. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
  110. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
  111. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/tests/fixtures.py +0 -0
  112. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/tests/test_config.py +0 -0
  113. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
  114. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/tests/test_hallucination_constants.py +0 -0
  115. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/tests/test_hallucination_utils.py +0 -0
  116. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
  117. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/tests/test_prompt_loaders.py +0 -0
  118. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/utils.py +0 -0
  119. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/feature_flags/__init__.py +0 -0
  120. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/feature_flags/feature_flags.py +0 -0
  121. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
  122. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
  123. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
  124. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/history_manager/utils.py +0 -0
  125. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/loop_runner/__init__.py +0 -0
  126. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py +0 -0
  127. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/loop_runner/_responses_iteration_handler_utils.py +0 -0
  128. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/loop_runner/_responses_stream_handler_utils.py +0 -0
  129. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/loop_runner/_stream_handler_utils.py +0 -0
  130. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/loop_runner/base.py +0 -0
  131. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/loop_runner/middleware/__init__.py +0 -0
  132. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/loop_runner/middleware/planning/__init__.py +0 -0
  133. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/loop_runner/middleware/planning/planning.py +0 -0
  134. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/loop_runner/middleware/planning/schema.py +0 -0
  135. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/loop_runner/runners/__init__.py +0 -0
  136. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/loop_runner/runners/basic.py +0 -0
  137. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py +0 -0
  138. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/loop_runner/runners/qwen/helpers.py +0 -0
  139. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py +0 -0
  140. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/message_log_manager/__init__.py +0 -0
  141. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/message_log_manager/service.py +0 -0
  142. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
  143. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
  144. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
  145. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
  146. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +0 -0
  147. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
  148. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
  149. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
  150. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/__init__.py +0 -0
  151. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
  152. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
  153. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
  154. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
  155. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
  156. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
  157. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
  158. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
  159. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
  160. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +0 -0
  161. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +0 -0
  162. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
  163. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
  164. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/postprocessing/references.py +0 -0
  165. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
  166. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +0 -0
  167. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +0 -0
  168. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
  169. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +0 -0
  170. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/response_watcher/service.py +0 -0
  171. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
  172. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
  173. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
  174. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
  175. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
  176. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/tool/test/test_service_utils.py +0 -0
  177. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
  178. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/config.py +0 -0
  179. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/factory.py +0 -0
  180. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
  181. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
  182. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
  183. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
  184. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
  185. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/openai_builtin/base.py +0 -0
  186. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +0 -0
  187. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +0 -0
  188. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/service.py +0 -0
  189. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/openai_builtin/manager.py +0 -0
  190. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/schemas.py +0 -0
  191. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
  192. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
  193. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/tool.py +0 -0
  194. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
  195. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
  196. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
  197. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
  198. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
  199. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
  200. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
  201. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic_table/__init__.py +0 -0
  202. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic_table/schemas.py +0 -0
  203. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/agentic_table/service.py +0 -0
  204. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/app/__init__.py +0 -0
  205. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/app/dev_util.py +0 -0
  206. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/app/fast_api_factory.py +0 -0
  207. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/app/init_logging.py +0 -0
  208. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/app/init_sdk.py +0 -0
  209. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/app/performance/async_tasks.py +0 -0
  210. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/app/performance/async_wrapper.py +0 -0
  211. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/app/schemas.py +0 -0
  212. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/app/unique_settings.py +0 -0
  213. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/app/verification.py +0 -0
  214. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/app/webhook.py +0 -0
  215. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/chat/__init__.py +0 -0
  216. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/chat/cancellation.py +0 -0
  217. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/chat/constants.py +0 -0
  218. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/chat/deprecated/service.py +0 -0
  219. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/chat/functions.py +0 -0
  220. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/chat/rendering.py +0 -0
  221. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/chat/responses_api.py +0 -0
  222. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/chat/schemas.py +0 -0
  223. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/chat/service.py +0 -0
  224. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/chat/state.py +0 -0
  225. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/chat/utils.py +0 -0
  226. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/content/__init__.py +0 -0
  227. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/content/constants.py +0 -0
  228. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/content/functions.py +0 -0
  229. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/content/schemas.py +0 -0
  230. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/content/service.py +0 -0
  231. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/content/smart_rules.py +0 -0
  232. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/content/utils.py +0 -0
  233. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/data_extraction/README.md +0 -0
  234. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/data_extraction/__init__.py +0 -0
  235. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/data_extraction/augmented/__init__.py +0 -0
  236. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/data_extraction/augmented/service.py +0 -0
  237. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/data_extraction/base.py +0 -0
  238. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/data_extraction/basic/__init__.py +0 -0
  239. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/data_extraction/basic/config.py +0 -0
  240. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/data_extraction/basic/prompt.py +0 -0
  241. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/data_extraction/basic/service.py +0 -0
  242. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/elicitation/__init__.py +0 -0
  243. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/elicitation/constants.py +0 -0
  244. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/elicitation/exceptions.py +0 -0
  245. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/elicitation/functions.py +0 -0
  246. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/elicitation/schemas.py +0 -0
  247. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/elicitation/service.py +0 -0
  248. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/embedding/__init__.py +0 -0
  249. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/embedding/constants.py +0 -0
  250. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/embedding/functions.py +0 -0
  251. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/embedding/schemas.py +0 -0
  252. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/embedding/service.py +0 -0
  253. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/embedding/utils.py +0 -0
  254. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/framework_utilities/__init__.py +0 -0
  255. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/framework_utilities/langchain/__init__.py +0 -0
  256. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
  257. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
  258. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
  259. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/framework_utilities/openai/client.py +0 -0
  260. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
  261. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/framework_utilities/utils.py +0 -0
  262. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/language_model/_responses_api_utils.py +0 -0
  263. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/language_model/builder.py +0 -0
  264. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/language_model/constants.py +0 -0
  265. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/language_model/default_language_model.py +0 -0
  266. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/language_model/functions.py +0 -0
  267. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/language_model/prompt.py +0 -0
  268. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/language_model/reference.py +0 -0
  269. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/language_model/schemas.py +0 -0
  270. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/language_model/service.py +0 -0
  271. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/language_model/stream_transform.py +0 -0
  272. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/language_model/utils.py +0 -0
  273. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/protocols/support.py +0 -0
  274. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/services/__init__.py +0 -0
  275. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/services/chat_service.py +0 -0
  276. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/services/knowledge_base.py +0 -0
  277. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/short_term_memory/__init__.py +0 -0
  278. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/short_term_memory/constants.py +0 -0
  279. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/short_term_memory/functions.py +0 -0
  280. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/short_term_memory/schemas.py +0 -0
  281. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/short_term_memory/service.py +0 -0
  282. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/smart_rules/__init__.py +0 -0
  283. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/smart_rules/compile.py +0 -0
  284. {unique_toolkit-1.46.12 → unique_toolkit-1.46.13}/unique_toolkit/test_utilities/events.py +0 -0
@@ -5,6 +5,10 @@ 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
+
9
+ ## [1.46.13] - 2026-02-23
10
+ - Add easy access to decoder from llm info
11
+
8
12
  ## [1.46.12] - 2026-02-21
9
13
  - Add `litellm:gemini-3-1-pro-preview` to `info.py`
10
14
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: unique_toolkit
3
- Version: 1.46.12
3
+ Version: 1.46.13
4
4
  Summary:
5
5
  License: Proprietary
6
6
  Author: Cedric Klinkert
@@ -127,6 +127,10 @@ All notable changes to this project will be documented in this file.
127
127
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
128
128
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
129
129
 
130
+
131
+ ## [1.46.13] - 2026-02-23
132
+ - Add easy access to decoder from llm info
133
+
130
134
  ## [1.46.12] - 2026-02-21
131
135
  - Add `litellm:gemini-3-1-pro-preview` to `info.py`
132
136
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "unique_toolkit"
3
- version = "1.46.12"
3
+ version = "1.46.13"
4
4
  description = ""
5
5
  authors = [
6
6
  "Cedric Klinkert <cedric.klinkert@unique.ch>",
@@ -0,0 +1,79 @@
1
+ from .constants import DOMAIN_NAME
2
+ from .default_language_model import DEFAULT_LANGUAGE_MODEL, DEFAULT_GPT_4o
3
+ from .functions import (
4
+ stream_complete_with_references_openai as stream_complete_with_references_openai,
5
+ )
6
+ from .infos import LanguageModel, LanguageModelName, TypeDecoder, TypeEncoder
7
+ from .prompt import (
8
+ Prompt,
9
+ )
10
+ from .schemas import (
11
+ LanguageModelAssistantMessage,
12
+ LanguageModelCompletionChoice,
13
+ LanguageModelFunction,
14
+ LanguageModelFunctionCall,
15
+ LanguageModelMessage,
16
+ LanguageModelMessageRole,
17
+ LanguageModelMessages,
18
+ LanguageModelResponse,
19
+ LanguageModelStreamResponse,
20
+ LanguageModelStreamResponseMessage,
21
+ LanguageModelSystemMessage,
22
+ LanguageModelTokenLimits,
23
+ LanguageModelTool,
24
+ LanguageModelToolDescription,
25
+ LanguageModelToolMessage,
26
+ LanguageModelToolParameterProperty,
27
+ LanguageModelToolParameters,
28
+ LanguageModelUserMessage,
29
+ )
30
+ from .service import (
31
+ LanguageModelService,
32
+ )
33
+ from .stream_transform import (
34
+ NormalizationTransform,
35
+ ReferenceInjectionTransform,
36
+ StreamTransform,
37
+ TextTransformPipeline,
38
+ )
39
+ from .utils import (
40
+ convert_string_to_json,
41
+ find_last_json_object,
42
+ )
43
+
44
+ __all__ = [
45
+ "LanguageModel",
46
+ "LanguageModelName",
47
+ "Prompt",
48
+ "LanguageModelAssistantMessage",
49
+ "LanguageModelCompletionChoice",
50
+ "LanguageModelFunction",
51
+ "LanguageModelFunctionCall",
52
+ "LanguageModelMessage",
53
+ "LanguageModelMessageRole",
54
+ "LanguageModelMessages",
55
+ "LanguageModelResponse",
56
+ "LanguageModelStreamResponse",
57
+ "LanguageModelStreamResponseMessage",
58
+ "LanguageModelSystemMessage",
59
+ "LanguageModelTokenLimits",
60
+ "LanguageModelTool",
61
+ "LanguageModelToolDescription",
62
+ "LanguageModelToolMessage",
63
+ "LanguageModelToolParameterProperty",
64
+ "LanguageModelToolParameters",
65
+ "LanguageModelUserMessage",
66
+ "LanguageModelService",
67
+ "DOMAIN_NAME",
68
+ "DEFAULT_LANGUAGE_MODEL",
69
+ "DEFAULT_GPT_4o",
70
+ "stream_complete_with_references_openai",
71
+ "NormalizationTransform",
72
+ "ReferenceInjectionTransform",
73
+ "StreamTransform",
74
+ "TextTransformPipeline",
75
+ "convert_string_to_json",
76
+ "find_last_json_object",
77
+ "TypeDecoder",
78
+ "TypeEncoder",
79
+ ]
@@ -19,6 +19,22 @@ from unique_toolkit.language_model.schemas import LanguageModelTokenLimits
19
19
  _LOGGER = logging.getLogger(__name__)
20
20
 
21
21
 
22
+ TypeEncoder = Callable[[str], list[int]]
23
+ TypeDecoder = Callable[[list[int]], str]
24
+
25
+
26
+ @lru_cache(maxsize=10)
27
+ def get_tokenizer_from_path(path: Path) -> Tokenizer:
28
+ if not path.exists():
29
+ raise FileNotFoundError(f"Tokenizer not found: {path}")
30
+ return Tokenizer.from_file(str(path))
31
+
32
+
33
+ @lru_cache(maxsize=10)
34
+ def get_tokenizer_from_tiktoken(tokenizer_name: str) -> tiktoken.Encoding:
35
+ return tiktoken.get_encoding(tokenizer_name)
36
+
37
+
22
38
  class LanguageModelName(StrEnum):
23
39
  AZURE_GPT_35_TURBO_0125 = "AZURE_GPT_35_TURBO_0125"
24
40
  AZURE_GPT_4_0613 = "AZURE_GPT_4_0613"
@@ -104,21 +120,27 @@ class EncoderName(StrEnum):
104
120
  QWEN = "qwen"
105
121
  DEEPSEEK = "deepseek"
106
122
 
107
- @lru_cache(maxsize=10)
108
- def get_encoder(self) -> Callable[[str], list[int]]:
109
- if self.value in {"cl100k_base", "o200k_base"}:
110
- enc = tiktoken.get_encoding(self.value)
111
- return enc.encode
112
-
123
+ @property
124
+ def tokenizer_path(self) -> Path:
113
125
  base_path = Path(__file__).parent.parent / "_common" / "token" / "tokenizers"
114
- tokenizer_path = base_path / self.value / "tokenizer.json"
126
+ return base_path / self.value / "tokenizer.json"
115
127
 
116
- if not tokenizer_path.exists():
117
- raise FileNotFoundError(f"Tokenizer not found: {tokenizer_path}")
128
+ def get_encoder(self) -> TypeEncoder:
129
+ if self.value in {"cl100k_base", "o200k_base"}:
130
+ tokenizer = get_tokenizer_from_tiktoken(self.value)
131
+ return tokenizer.encode
118
132
 
119
- tokenizer = Tokenizer.from_file(str(tokenizer_path))
133
+ tokenizer = get_tokenizer_from_path(self.tokenizer_path)
120
134
  return lambda text: tokenizer.encode(text).ids
121
135
 
136
+ def get_decoder(self) -> TypeDecoder:
137
+ if self.value in {"cl100k_base", "o200k_base"}:
138
+ tokenizer = get_tokenizer_from_tiktoken(self.value)
139
+ return tokenizer.decode
140
+
141
+ tokenizer = get_tokenizer_from_path(self.tokenizer_path)
142
+ return tokenizer.decode
143
+
122
144
 
123
145
  def get_encoder_name(model_name: LanguageModelName) -> EncoderName:
124
146
  LMN = LanguageModelName
@@ -198,7 +220,7 @@ class TemperatureBounds(BaseModel):
198
220
  max_temperature: float
199
221
 
200
222
 
201
- def _load_custom_encoder(tokenizer_name: str) -> Callable[[str], list[int]]:
223
+ def _load_custom_encoder(tokenizer_name: str) -> TypeEncoder:
202
224
  """Load a custom tokenizer from UNIQUE_CUSTOM_TOKENIZERS_PATH."""
203
225
  custom_path = os.getenv("UNIQUE_CUSTOM_TOKENIZERS_PATH")
204
226
  if not custom_path:
@@ -207,13 +229,23 @@ def _load_custom_encoder(tokenizer_name: str) -> Callable[[str], list[int]]:
207
229
  )
208
230
 
209
231
  tokenizer_path = Path(custom_path) / tokenizer_name / "tokenizer.json"
210
- if not tokenizer_path.exists():
211
- raise FileNotFoundError(f"Custom tokenizer not found: {tokenizer_path}")
212
232
 
213
- tokenizer = Tokenizer.from_file(str(tokenizer_path))
233
+ tokenizer = get_tokenizer_from_path(tokenizer_path)
214
234
  return lambda text: tokenizer.encode(text).ids
215
235
 
216
236
 
237
+ def _load_custom_decoder(tokenizer_name: str) -> TypeDecoder:
238
+ """Load a custom tokenizer from UNIQUE_CUSTOM_TOKENIZERS_PATH."""
239
+ custom_path = os.getenv("UNIQUE_CUSTOM_TOKENIZERS_PATH")
240
+ if not custom_path:
241
+ raise ValueError(
242
+ "UNIQUE_CUSTOM_TOKENIZERS_PATH must be set to use custom tokenizers"
243
+ )
244
+ tokenizer_path = Path(custom_path) / tokenizer_name / "tokenizer.json"
245
+ tokenizer = get_tokenizer_from_path(tokenizer_path)
246
+ return tokenizer.decode
247
+
248
+
217
249
  class LanguageModelInfo(BaseModel):
218
250
  model_config = get_configuration_dict()
219
251
  name: (
@@ -264,12 +296,17 @@ class LanguageModelInfo(BaseModel):
264
296
 
265
297
  _ENV_VAR: ClassVar[str] = "LANGUAGE_MODEL_INFOS"
266
298
 
267
- def get_encoder(self) -> Callable[[str], list[int]]:
299
+ def get_encoder(self) -> TypeEncoder:
268
300
  """Get an encode callable for this model's tokenizer."""
269
301
  if isinstance(self.encoder_name, EncoderName):
270
302
  return self.encoder_name.get_encoder()
271
303
  return _load_custom_encoder(self.encoder_name)
272
304
 
305
+ def get_decoder(self) -> TypeDecoder:
306
+ if isinstance(self.encoder_name, EncoderName):
307
+ return self.encoder_name.get_decoder()
308
+ return _load_custom_decoder(self.encoder_name)
309
+
273
310
  @classmethod
274
311
  @lru_cache(maxsize=1)
275
312
  def _load_from_env(cls) -> dict[str, dict]:
@@ -1,90 +0,0 @@
1
- from .constants import DOMAIN_NAME as DOMAIN_NAME
2
- from .default_language_model import (
3
- DEFAULT_LANGUAGE_MODEL as DEFAULT_LANGUAGE_MODEL,
4
- )
5
- from .default_language_model import (
6
- DEFAULT_GPT_4o as DEFAULT_GPT_4o,
7
- )
8
- from .functions import (
9
- stream_complete_with_references_openai as stream_complete_with_references_openai,
10
- )
11
- from .infos import LanguageModel as LanguageModel
12
- from .infos import LanguageModelName as LanguageModelName
13
- from .prompt import (
14
- Prompt as Prompt,
15
- )
16
- from .schemas import (
17
- LanguageModelAssistantMessage as LanguageModelAssistantMessage,
18
- )
19
- from .schemas import (
20
- LanguageModelCompletionChoice as LanguageModelCompletionChoice,
21
- )
22
- from .schemas import (
23
- LanguageModelFunction as LanguageModelFunction,
24
- )
25
- from .schemas import (
26
- LanguageModelFunctionCall as LanguageModelFunctionCall,
27
- )
28
- from .schemas import (
29
- LanguageModelMessage as LanguageModelMessage,
30
- )
31
- from .schemas import (
32
- LanguageModelMessageRole as LanguageModelMessageRole,
33
- )
34
- from .schemas import (
35
- LanguageModelMessages as LanguageModelMessages,
36
- )
37
- from .schemas import (
38
- LanguageModelResponse as LanguageModelResponse,
39
- )
40
- from .schemas import (
41
- LanguageModelStreamResponse as LanguageModelStreamResponse,
42
- )
43
- from .schemas import (
44
- LanguageModelStreamResponseMessage as LanguageModelStreamResponseMessage,
45
- )
46
- from .schemas import (
47
- LanguageModelSystemMessage as LanguageModelSystemMessage,
48
- )
49
- from .schemas import (
50
- LanguageModelTokenLimits as LanguageModelTokenLimits,
51
- )
52
- from .schemas import (
53
- LanguageModelTool as LanguageModelTool,
54
- )
55
- from .schemas import (
56
- LanguageModelToolDescription as LanguageModelToolDescription,
57
- )
58
- from .schemas import (
59
- LanguageModelToolMessage as LanguageModelToolMessage,
60
- )
61
- from .schemas import (
62
- LanguageModelToolParameterProperty as LanguageModelToolParameterProperty,
63
- )
64
- from .schemas import (
65
- LanguageModelToolParameters as LanguageModelToolParameters,
66
- )
67
- from .schemas import (
68
- LanguageModelUserMessage as LanguageModelUserMessage,
69
- )
70
- from .service import (
71
- LanguageModelService as LanguageModelService,
72
- )
73
- from .stream_transform import (
74
- NormalizationTransform as NormalizationTransform,
75
- )
76
- from .stream_transform import (
77
- ReferenceInjectionTransform as ReferenceInjectionTransform,
78
- )
79
- from .stream_transform import (
80
- StreamTransform as StreamTransform,
81
- )
82
- from .stream_transform import (
83
- TextTransformPipeline as TextTransformPipeline,
84
- )
85
- from .utils import (
86
- convert_string_to_json as convert_string_to_json,
87
- )
88
- from .utils import (
89
- find_last_json_object as find_last_json_object,
90
- )