unique_toolkit 1.46.11__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.11 → unique_toolkit-1.46.13}/CHANGELOG.md +7 -0
  2. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/PKG-INFO +8 -1
  3. {unique_toolkit-1.46.11 → 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.11 → unique_toolkit-1.46.13}/unique_toolkit/language_model/infos.py +72 -15
  6. unique_toolkit-1.46.11/unique_toolkit/language_model/__init__.py +0 -90
  7. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/LICENSE +0 -0
  8. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/README.md +0 -0
  9. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/__init__.py +0 -0
  10. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/__init__.py +0 -0
  11. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/_base_service.py +0 -0
  12. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/_time_utils.py +0 -0
  13. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
  14. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
  15. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
  16. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
  17. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
  18. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
  19. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
  20. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/config_checker/README.md +0 -0
  21. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/config_checker/__init__.py +0 -0
  22. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/config_checker/__main__.py +0 -0
  23. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/config_checker/cli.py +0 -0
  24. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/config_checker/differ.py +0 -0
  25. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/config_checker/exporter.py +0 -0
  26. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/config_checker/models.py +0 -0
  27. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/config_checker/registry.py +0 -0
  28. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/config_checker/validator.py +0 -0
  29. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/default_language_model.py +0 -0
  30. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/docx_generator/__init__.py +0 -0
  31. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/docx_generator/config.py +0 -0
  32. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/docx_generator/schemas.py +0 -0
  33. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/docx_generator/service.py +0 -0
  34. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
  35. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/endpoint_builder.py +0 -0
  36. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/endpoint_requestor.py +0 -0
  37. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/event_bus.py +0 -0
  38. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/exception.py +0 -0
  39. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/execution.py +0 -0
  40. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/endpoint_builder.py +0 -0
  41. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/endpoint_requestor.py +0 -0
  42. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/README.md +0 -0
  43. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/__init__.py +0 -0
  44. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/agent.py +0 -0
  45. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/config.py +0 -0
  46. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/examples/data.csv +0 -0
  47. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/examples/example_usage.py +0 -0
  48. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/schemas.py +0 -0
  49. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/services/__init__.py +0 -0
  50. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/__init__.py +0 -0
  51. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/exceptions.py +0 -0
  52. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/service.py +0 -0
  53. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/utils.py +0 -0
  54. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/__init__.py +0 -0
  55. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/config.py +0 -0
  56. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/exceptions.py +0 -0
  57. {unique_toolkit-1.46.11 → 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.11 → 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.11 → 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.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/service.py +0 -0
  61. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/__init__.py +0 -0
  62. {unique_toolkit-1.46.11 → 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.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/exceptions.py +0 -0
  64. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/service.py +0 -0
  65. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/utils.py +0 -0
  66. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/experimental/write_up_agent/utils.py +0 -0
  67. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/feature_flags/schema.py +0 -0
  68. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
  69. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/pydantic_helpers.py +0 -0
  70. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/referencing.py +0 -0
  71. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/string_utilities.py +0 -0
  72. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/tests/test_referencing.py +0 -0
  73. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/tests/test_string_utilities.py +0 -0
  74. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/token/__init__.py +0 -0
  75. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/token/image_token_counting.py +0 -0
  76. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/token/token_counting.py +0 -0
  77. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/token/tokenizers/deepseek/tokenizer.json +0 -0
  78. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/token/tokenizers/qwen/tokenizer.json +0 -0
  79. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/utils/__init__.py +0 -0
  80. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/utils/files.py +0 -0
  81. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/utils/image/encode.py +0 -0
  82. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/utils/jinja/helpers.py +0 -0
  83. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/utils/jinja/render.py +0 -0
  84. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/utils/jinja/schema.py +0 -0
  85. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/utils/jinja/utils.py +0 -0
  86. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
  87. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
  88. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/utils/write_configuration.py +0 -0
  89. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/validate_required_values.py +0 -0
  90. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/_common/validators.py +0 -0
  91. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/__init__.py +0 -0
  92. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
  93. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +0 -0
  94. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/config.py +0 -0
  95. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/__init__.py +0 -0
  96. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/system_prompt.j2 +0 -0
  97. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/user_prompt.j2 +0 -0
  98. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
  99. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
  100. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
  101. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/exception.py +0 -0
  102. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
  103. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
  104. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/hallucination/prompts/__init__.py +0 -0
  105. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/hallucination/prompts/system_prompt.j2 +0 -0
  106. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/hallucination/prompts/user_prompt.j2 +0 -0
  107. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
  108. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
  109. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
  110. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
  111. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/tests/fixtures.py +0 -0
  112. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/tests/test_config.py +0 -0
  113. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
  114. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/tests/test_hallucination_constants.py +0 -0
  115. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/tests/test_hallucination_utils.py +0 -0
  116. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
  117. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/tests/test_prompt_loaders.py +0 -0
  118. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/evaluation/utils.py +0 -0
  119. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/feature_flags/__init__.py +0 -0
  120. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/feature_flags/feature_flags.py +0 -0
  121. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
  122. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
  123. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
  124. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/history_manager/utils.py +0 -0
  125. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/loop_runner/__init__.py +0 -0
  126. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py +0 -0
  127. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/loop_runner/_responses_iteration_handler_utils.py +0 -0
  128. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/loop_runner/_responses_stream_handler_utils.py +0 -0
  129. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/loop_runner/_stream_handler_utils.py +0 -0
  130. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/loop_runner/base.py +0 -0
  131. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/loop_runner/middleware/__init__.py +0 -0
  132. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/loop_runner/middleware/planning/__init__.py +0 -0
  133. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/loop_runner/middleware/planning/planning.py +0 -0
  134. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/loop_runner/middleware/planning/schema.py +0 -0
  135. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/loop_runner/runners/__init__.py +0 -0
  136. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/loop_runner/runners/basic.py +0 -0
  137. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py +0 -0
  138. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/loop_runner/runners/qwen/helpers.py +0 -0
  139. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py +0 -0
  140. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/message_log_manager/__init__.py +0 -0
  141. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/message_log_manager/service.py +0 -0
  142. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
  143. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
  144. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
  145. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
  146. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +0 -0
  147. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
  148. {unique_toolkit-1.46.11 → 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.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
  150. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/__init__.py +0 -0
  151. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
  152. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
  153. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
  154. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
  155. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
  156. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
  157. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
  158. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
  159. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
  160. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +0 -0
  161. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +0 -0
  162. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
  163. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
  164. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/postprocessing/references.py +0 -0
  165. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
  166. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +0 -0
  167. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +0 -0
  168. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
  169. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +0 -0
  170. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/response_watcher/service.py +0 -0
  171. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
  172. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
  173. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
  174. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
  175. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
  176. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/a2a/tool/test/test_service_utils.py +0 -0
  177. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
  178. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/config.py +0 -0
  179. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/factory.py +0 -0
  180. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
  181. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
  182. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
  183. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
  184. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
  185. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/openai_builtin/base.py +0 -0
  186. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +0 -0
  187. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +0 -0
  188. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/service.py +0 -0
  189. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/openai_builtin/manager.py +0 -0
  190. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/schemas.py +0 -0
  191. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
  192. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
  193. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/tool.py +0 -0
  194. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
  195. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
  196. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
  197. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
  198. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
  199. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
  200. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
  201. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic_table/__init__.py +0 -0
  202. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic_table/schemas.py +0 -0
  203. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/agentic_table/service.py +0 -0
  204. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/app/__init__.py +0 -0
  205. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/app/dev_util.py +0 -0
  206. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/app/fast_api_factory.py +0 -0
  207. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/app/init_logging.py +0 -0
  208. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/app/init_sdk.py +0 -0
  209. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/app/performance/async_tasks.py +0 -0
  210. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/app/performance/async_wrapper.py +0 -0
  211. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/app/schemas.py +0 -0
  212. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/app/unique_settings.py +0 -0
  213. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/app/verification.py +0 -0
  214. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/app/webhook.py +0 -0
  215. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/chat/__init__.py +0 -0
  216. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/chat/cancellation.py +0 -0
  217. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/chat/constants.py +0 -0
  218. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/chat/deprecated/service.py +0 -0
  219. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/chat/functions.py +0 -0
  220. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/chat/rendering.py +0 -0
  221. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/chat/responses_api.py +0 -0
  222. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/chat/schemas.py +0 -0
  223. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/chat/service.py +0 -0
  224. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/chat/state.py +0 -0
  225. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/chat/utils.py +0 -0
  226. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/content/__init__.py +0 -0
  227. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/content/constants.py +0 -0
  228. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/content/functions.py +0 -0
  229. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/content/schemas.py +0 -0
  230. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/content/service.py +0 -0
  231. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/content/smart_rules.py +0 -0
  232. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/content/utils.py +0 -0
  233. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/data_extraction/README.md +0 -0
  234. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/data_extraction/__init__.py +0 -0
  235. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/data_extraction/augmented/__init__.py +0 -0
  236. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/data_extraction/augmented/service.py +0 -0
  237. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/data_extraction/base.py +0 -0
  238. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/data_extraction/basic/__init__.py +0 -0
  239. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/data_extraction/basic/config.py +0 -0
  240. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/data_extraction/basic/prompt.py +0 -0
  241. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/data_extraction/basic/service.py +0 -0
  242. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/elicitation/__init__.py +0 -0
  243. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/elicitation/constants.py +0 -0
  244. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/elicitation/exceptions.py +0 -0
  245. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/elicitation/functions.py +0 -0
  246. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/elicitation/schemas.py +0 -0
  247. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/elicitation/service.py +0 -0
  248. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/embedding/__init__.py +0 -0
  249. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/embedding/constants.py +0 -0
  250. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/embedding/functions.py +0 -0
  251. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/embedding/schemas.py +0 -0
  252. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/embedding/service.py +0 -0
  253. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/embedding/utils.py +0 -0
  254. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/framework_utilities/__init__.py +0 -0
  255. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/framework_utilities/langchain/__init__.py +0 -0
  256. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
  257. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
  258. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
  259. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/framework_utilities/openai/client.py +0 -0
  260. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
  261. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/framework_utilities/utils.py +0 -0
  262. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/language_model/_responses_api_utils.py +0 -0
  263. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/language_model/builder.py +0 -0
  264. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/language_model/constants.py +0 -0
  265. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/language_model/default_language_model.py +0 -0
  266. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/language_model/functions.py +0 -0
  267. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/language_model/prompt.py +0 -0
  268. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/language_model/reference.py +0 -0
  269. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/language_model/schemas.py +0 -0
  270. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/language_model/service.py +0 -0
  271. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/language_model/stream_transform.py +0 -0
  272. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/language_model/utils.py +0 -0
  273. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/protocols/support.py +0 -0
  274. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/services/__init__.py +0 -0
  275. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/services/chat_service.py +0 -0
  276. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/services/knowledge_base.py +0 -0
  277. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/short_term_memory/__init__.py +0 -0
  278. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/short_term_memory/constants.py +0 -0
  279. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/short_term_memory/functions.py +0 -0
  280. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/short_term_memory/schemas.py +0 -0
  281. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/short_term_memory/service.py +0 -0
  282. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/smart_rules/__init__.py +0 -0
  283. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/smart_rules/compile.py +0 -0
  284. {unique_toolkit-1.46.11 → unique_toolkit-1.46.13}/unique_toolkit/test_utilities/events.py +0 -0
@@ -5,6 +5,13 @@ 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
+
12
+ ## [1.46.12] - 2026-02-21
13
+ - Add `litellm:gemini-3-1-pro-preview` to `info.py`
14
+
8
15
  ## [1.46.11] - 2026-02-20
9
16
  - Add OpenAI-proxy direct streaming with Python-side reference injection (UN-17264)
10
17
  - Add `stream_complete_with_references_openai()` using async OpenAI client and `chat.completions.stream()`
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: unique_toolkit
3
- Version: 1.46.11
3
+ Version: 1.46.13
4
4
  Summary:
5
5
  License: Proprietary
6
6
  Author: Cedric Klinkert
@@ -127,6 +127,13 @@ 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
+
134
+ ## [1.46.12] - 2026-02-21
135
+ - Add `litellm:gemini-3-1-pro-preview` to `info.py`
136
+
130
137
  ## [1.46.11] - 2026-02-20
131
138
  - Add OpenAI-proxy direct streaming with Python-side reference injection (UN-17264)
132
139
  - Add `stream_complete_with_references_openai()` using async OpenAI client and `chat.completions.stream()`
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "unique_toolkit"
3
- version = "1.46.11"
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"
@@ -70,6 +86,7 @@ class LanguageModelName(StrEnum):
70
86
  GEMINI_2_5_PRO = "litellm:gemini-2-5-pro"
71
87
  GEMINI_2_5_PRO_EXP_0325 = "litellm:gemini-2-5-pro-exp-03-25"
72
88
  GEMINI_2_5_PRO_PREVIEW_0605 = "litellm:gemini-2-5-pro-preview-06-05"
89
+ GEMINI_3_1_PRO_PREVIEW = "litellm:gemini-3-1-pro-preview"
73
90
  GEMINI_3_FLASH_PREVIEW = "litellm:gemini-3-flash-preview"
74
91
  GEMINI_3_PRO_PREVIEW = "litellm:gemini-3-pro-preview"
75
92
  GROK_4_1_FAST_NON_REASONING = "litellm:grok-4-1-fast-non-reasoning"
@@ -103,21 +120,27 @@ class EncoderName(StrEnum):
103
120
  QWEN = "qwen"
104
121
  DEEPSEEK = "deepseek"
105
122
 
106
- @lru_cache(maxsize=10)
107
- def get_encoder(self) -> Callable[[str], list[int]]:
108
- if self.value in {"cl100k_base", "o200k_base"}:
109
- enc = tiktoken.get_encoding(self.value)
110
- return enc.encode
111
-
123
+ @property
124
+ def tokenizer_path(self) -> Path:
112
125
  base_path = Path(__file__).parent.parent / "_common" / "token" / "tokenizers"
113
- tokenizer_path = base_path / self.value / "tokenizer.json"
126
+ return base_path / self.value / "tokenizer.json"
114
127
 
115
- if not tokenizer_path.exists():
116
- 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
117
132
 
118
- tokenizer = Tokenizer.from_file(str(tokenizer_path))
133
+ tokenizer = get_tokenizer_from_path(self.tokenizer_path)
119
134
  return lambda text: tokenizer.encode(text).ids
120
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
+
121
144
 
122
145
  def get_encoder_name(model_name: LanguageModelName) -> EncoderName:
123
146
  LMN = LanguageModelName
@@ -197,7 +220,7 @@ class TemperatureBounds(BaseModel):
197
220
  max_temperature: float
198
221
 
199
222
 
200
- def _load_custom_encoder(tokenizer_name: str) -> Callable[[str], list[int]]:
223
+ def _load_custom_encoder(tokenizer_name: str) -> TypeEncoder:
201
224
  """Load a custom tokenizer from UNIQUE_CUSTOM_TOKENIZERS_PATH."""
202
225
  custom_path = os.getenv("UNIQUE_CUSTOM_TOKENIZERS_PATH")
203
226
  if not custom_path:
@@ -206,13 +229,23 @@ def _load_custom_encoder(tokenizer_name: str) -> Callable[[str], list[int]]:
206
229
  )
207
230
 
208
231
  tokenizer_path = Path(custom_path) / tokenizer_name / "tokenizer.json"
209
- if not tokenizer_path.exists():
210
- raise FileNotFoundError(f"Custom tokenizer not found: {tokenizer_path}")
211
232
 
212
- tokenizer = Tokenizer.from_file(str(tokenizer_path))
233
+ tokenizer = get_tokenizer_from_path(tokenizer_path)
213
234
  return lambda text: tokenizer.encode(text).ids
214
235
 
215
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
+
216
249
  class LanguageModelInfo(BaseModel):
217
250
  model_config = get_configuration_dict()
218
251
  name: (
@@ -263,12 +296,17 @@ class LanguageModelInfo(BaseModel):
263
296
 
264
297
  _ENV_VAR: ClassVar[str] = "LANGUAGE_MODEL_INFOS"
265
298
 
266
- def get_encoder(self) -> Callable[[str], list[int]]:
299
+ def get_encoder(self) -> TypeEncoder:
267
300
  """Get an encode callable for this model's tokenizer."""
268
301
  if isinstance(self.encoder_name, EncoderName):
269
302
  return self.encoder_name.get_encoder()
270
303
  return _load_custom_encoder(self.encoder_name)
271
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
+
272
310
  @classmethod
273
311
  @lru_cache(maxsize=1)
274
312
  def _load_from_env(cls) -> dict[str, dict]:
@@ -1392,6 +1430,25 @@ class LanguageModelInfo(BaseModel):
1392
1430
  info_cutoff_at=date(2025, 1, day=1),
1393
1431
  published_at=date(2025, 6, 5),
1394
1432
  )
1433
+ case LanguageModelName.GEMINI_3_1_PRO_PREVIEW:
1434
+ return cls(
1435
+ name=model_name,
1436
+ capabilities=[
1437
+ ModelCapabilities.FUNCTION_CALLING,
1438
+ ModelCapabilities.STREAMING,
1439
+ ModelCapabilities.VISION,
1440
+ ModelCapabilities.STRUCTURED_OUTPUT,
1441
+ ModelCapabilities.REASONING,
1442
+ ],
1443
+ provider=LanguageModelProvider.LITELLM,
1444
+ version="gemini-3-1-pro-preview",
1445
+ encoder_name=EncoderName.O200K_BASE, # TODO: Update encoder with litellm
1446
+ token_limits=LanguageModelTokenLimits(
1447
+ token_limit_input=1_048_576, token_limit_output=65_536
1448
+ ),
1449
+ info_cutoff_at=date(2025, 1, day=1),
1450
+ published_at=date(2026, 1, 19),
1451
+ )
1395
1452
  case LanguageModelName.GEMINI_3_FLASH_PREVIEW:
1396
1453
  return cls(
1397
1454
  name=model_name,
@@ -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
- )