unique_toolkit 0.8.13__tar.gz → 0.8.14__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 (97) hide show
  1. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/CHANGELOG.md +5 -2
  2. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/PKG-INFO +6 -3
  3. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/pyproject.toml +1 -1
  4. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/language_model/infos.py +119 -0
  5. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/LICENSE +0 -0
  6. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/README.md +0 -0
  7. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/__init__.py +0 -0
  8. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/_common/_base_service.py +0 -0
  9. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/_common/_time_utils.py +0 -0
  10. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/_common/exception.py +0 -0
  11. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/_common/validate_required_values.py +0 -0
  12. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/_common/validators.py +0 -0
  13. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/app/__init__.py +0 -0
  14. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/app/dev_util.py +0 -0
  15. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/app/init_logging.py +0 -0
  16. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/app/init_sdk.py +0 -0
  17. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/app/performance/async_tasks.py +0 -0
  18. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/app/performance/async_wrapper.py +0 -0
  19. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/app/schemas.py +0 -0
  20. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/app/unique_settings.py +0 -0
  21. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/app/verification.py +0 -0
  22. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/chat/__init__.py +0 -0
  23. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/chat/constants.py +0 -0
  24. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/chat/functions.py +0 -0
  25. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/chat/schemas.py +0 -0
  26. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/chat/service.py +0 -0
  27. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/chat/state.py +0 -0
  28. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/chat/utils.py +0 -0
  29. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/content/__init__.py +0 -0
  30. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/content/constants.py +0 -0
  31. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/content/functions.py +0 -0
  32. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/content/schemas.py +0 -0
  33. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/content/service.py +0 -0
  34. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/content/utils.py +0 -0
  35. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/embedding/__init__.py +0 -0
  36. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/embedding/constants.py +0 -0
  37. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/embedding/functions.py +0 -0
  38. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/embedding/schemas.py +0 -0
  39. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/embedding/service.py +0 -0
  40. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/embedding/utils.py +0 -0
  41. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/evals/evaluation_manager.py +0 -0
  42. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/evals/exception.py +0 -0
  43. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/evals/schemas.py +0 -0
  44. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/evaluators/__init__.py +0 -0
  45. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/evaluators/config.py +0 -0
  46. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/evaluators/constants.py +0 -0
  47. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/evaluators/context_relevancy/constants.py +0 -0
  48. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/evaluators/context_relevancy/prompts.py +0 -0
  49. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/evaluators/context_relevancy/service.py +0 -0
  50. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/evaluators/context_relevancy/utils.py +0 -0
  51. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/evaluators/exception.py +0 -0
  52. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/evaluators/hallucination/constants.py +0 -0
  53. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/evaluators/hallucination/prompts.py +0 -0
  54. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/evaluators/hallucination/service.py +0 -0
  55. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/evaluators/hallucination/utils.py +0 -0
  56. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/evaluators/output_parser.py +0 -0
  57. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/evaluators/schemas.py +0 -0
  58. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
  59. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
  60. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/framework_utilities/openai/client.py +0 -0
  61. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
  62. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/framework_utilities/utils.py +0 -0
  63. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/history_manager/history_manager.py +0 -0
  64. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/history_manager/utils.py +0 -0
  65. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/language_model/__init__.py +0 -0
  66. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/language_model/builder.py +0 -0
  67. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/language_model/constants.py +0 -0
  68. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/language_model/functions.py +0 -0
  69. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/language_model/prompt.py +0 -0
  70. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/language_model/reference.py +0 -0
  71. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/language_model/schemas.py +0 -0
  72. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/language_model/service.py +0 -0
  73. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/language_model/utils.py +0 -0
  74. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/postprocessor/postprocessor_manager.py +0 -0
  75. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/protocols/support.py +0 -0
  76. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/reference_manager/reference_manager.py +0 -0
  77. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/short_term_memory/__init__.py +0 -0
  78. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/short_term_memory/constants.py +0 -0
  79. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/short_term_memory/functions.py +0 -0
  80. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/short_term_memory/persistent_short_term_memory_manager.py +0 -0
  81. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/short_term_memory/schemas.py +0 -0
  82. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/short_term_memory/service.py +0 -0
  83. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/smart_rules/__init__.py +0 -0
  84. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/smart_rules/compile.py +0 -0
  85. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/thinking_manager/thinking_manager.py +0 -0
  86. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/tools/agent_chunks_handler.py +0 -0
  87. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/tools/config.py +0 -0
  88. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/tools/factory.py +0 -0
  89. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/tools/schemas.py +0 -0
  90. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/tools/test/test_tool_progress_reporter.py +0 -0
  91. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/tools/tool.py +0 -0
  92. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/tools/tool_manager.py +0 -0
  93. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/tools/tool_progress_reporter.py +0 -0
  94. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/tools/utils/execution/execution.py +0 -0
  95. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/tools/utils/source_handling/schema.py +0 -0
  96. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/tools/utils/source_handling/source_formatting.py +0 -0
  97. {unique_toolkit-0.8.13 → unique_toolkit-0.8.14}/unique_toolkit/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
@@ -5,7 +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
- ## [0.8.12] - 2025-08-18
8
+ ## [0.8.14] - 2025-08-19
9
+ - Including GPT-5 series deployed via LiteLLM into language model info
10
+
11
+ ## [0.8.13] - 2025-08-18
9
12
  - Adding initial versions of
10
13
  - Evaluation Manager
11
14
  - History Manager
@@ -13,7 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
13
16
  - Thinking Manager
14
17
  - Updated tool manager
15
18
 
16
- ## [0.8.13] - 2025-08-18
19
+ ## [0.8.12] - 2025-08-18
17
20
  - Fix no tool call respoonse in ChatMessage -> Open Ai messages translation
18
21
  - Add simple append method to OpenAIMessageBuilder
19
22
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: unique_toolkit
3
- Version: 0.8.13
3
+ Version: 0.8.14
4
4
  Summary:
5
5
  License: Proprietary
6
6
  Author: Martin Fadler
@@ -114,7 +114,10 @@ All notable changes to this project will be documented in this file.
114
114
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
115
115
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
116
116
 
117
- ## [0.8.12] - 2025-08-18
117
+ ## [0.8.14] - 2025-08-19
118
+ - Including GPT-5 series deployed via LiteLLM into language model info
119
+
120
+ ## [0.8.13] - 2025-08-18
118
121
  - Adding initial versions of
119
122
  - Evaluation Manager
120
123
  - History Manager
@@ -122,7 +125,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
122
125
  - Thinking Manager
123
126
  - Updated tool manager
124
127
 
125
- ## [0.8.13] - 2025-08-18
128
+ ## [0.8.12] - 2025-08-18
126
129
  - Fix no tool call respoonse in ChatMessage -> Open Ai messages translation
127
130
  - Add simple append method to OpenAIMessageBuilder
128
131
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "unique_toolkit"
3
- version = "0.8.13"
3
+ version = "0.8.14"
4
4
  description = ""
5
5
  authors = [
6
6
  "Martin Fadler <martin.fadler@unique.ch>",
@@ -44,6 +44,10 @@ class LanguageModelName(StrEnum):
44
44
  GEMINI_2_5_PRO = "litellm:gemini-2-5-pro"
45
45
  GEMINI_2_5_PRO_EXP_0325 = "litellm:gemini-2-5-pro-exp-03-25"
46
46
  GEMINI_2_5_PRO_PREVIEW_0605 = "litellm:gemini-2-5-pro-preview-06-05"
47
+ LITELLM_OPENAI_GPT_5 = "litellm:openai-gpt-5"
48
+ LITELLM_OPENAI_GPT_5_MINI = "litellm:openai-gpt-5-mini"
49
+ LITELLM_OPENAI_GPT_5_NANO = "litellm:openai-gpt-5-nano"
50
+ LITELLM_OPENAI_GPT_5_CHAT = "litellm:openai-gpt-5-chat"
47
51
 
48
52
 
49
53
  class EncoderName(StrEnum):
@@ -71,6 +75,10 @@ def get_encoder_name(model_name: LanguageModelName) -> EncoderName:
71
75
  | LMN.AZURE_GPT_5_MINI_2025_0807
72
76
  | LMN.AZURE_GPT_5_NANO_2025_0807
73
77
  | LMN.AZURE_GPT_5_CHAT_2025_0807
78
+ | LMN.LITELLM_OPENAI_GPT_5
79
+ | LMN.LITELLM_OPENAI_GPT_5_MINI
80
+ | LMN.LITELLM_OPENAI_GPT_5_NANO
81
+ | LMN.LITELLM_OPENAI_GPT_5_CHAT
74
82
  ):
75
83
  return EncoderName.O200K_BASE
76
84
  case _:
@@ -215,8 +223,10 @@ class LanguageModelInfo(BaseModel):
215
223
  capabilities=[
216
224
  ModelCapabilities.FUNCTION_CALLING,
217
225
  ModelCapabilities.STREAMING,
226
+ ModelCapabilities.REASONING,
218
227
  ModelCapabilities.VISION,
219
228
  ModelCapabilities.STRUCTURED_OUTPUT,
229
+ ModelCapabilities.PARALLEL_FUNCTION_CALLING,
220
230
  ],
221
231
  token_limits=LanguageModelTokenLimits(
222
232
  token_limit_input=272000, token_limit_output=128000
@@ -241,8 +251,10 @@ class LanguageModelInfo(BaseModel):
241
251
  capabilities=[
242
252
  ModelCapabilities.FUNCTION_CALLING,
243
253
  ModelCapabilities.STREAMING,
254
+ ModelCapabilities.REASONING,
244
255
  ModelCapabilities.VISION,
245
256
  ModelCapabilities.STRUCTURED_OUTPUT,
257
+ ModelCapabilities.PARALLEL_FUNCTION_CALLING,
246
258
  ],
247
259
  token_limits=LanguageModelTokenLimits(
248
260
  token_limit_input=272000, token_limit_output=128000
@@ -264,6 +276,10 @@ class LanguageModelInfo(BaseModel):
264
276
  provider=LanguageModelProvider.AZURE,
265
277
  version="2025-08-07",
266
278
  encoder_name=EncoderName.O200K_BASE,
279
+ capabilities=[
280
+ ModelCapabilities.STREAMING,
281
+ ModelCapabilities.VISION,
282
+ ],
267
283
  token_limits=LanguageModelTokenLimits(
268
284
  token_limit_input=128000, token_limit_output=16384
269
285
  ),
@@ -757,6 +773,109 @@ class LanguageModelInfo(BaseModel):
757
773
  info_cutoff_at=date(2025, 1, day=1),
758
774
  published_at=date(2025, 6, 5),
759
775
  )
776
+ case LanguageModelName.LITELLM_OPENAI_GPT_5:
777
+ return cls(
778
+ name=model_name,
779
+ provider=LanguageModelProvider.LITELLM,
780
+ version="gpt-5",
781
+ encoder_name=EncoderName.O200K_BASE,
782
+ capabilities=[
783
+ ModelCapabilities.FUNCTION_CALLING,
784
+ ModelCapabilities.STREAMING,
785
+ ModelCapabilities.REASONING,
786
+ ModelCapabilities.VISION,
787
+ ModelCapabilities.STRUCTURED_OUTPUT,
788
+ ModelCapabilities.PARALLEL_FUNCTION_CALLING,
789
+ ],
790
+ token_limits=LanguageModelTokenLimits(
791
+ token_limit_input=272000, token_limit_output=128000
792
+ ),
793
+ info_cutoff_at=date(2024, 10, 24),
794
+ published_at=date(2025, 8, 7),
795
+ deprecated_at=date(2026, 8, 7),
796
+ retirement_at=date(2026, 8, 7),
797
+ temperature_bounds=TemperatureBounds(
798
+ min_temperature=1.0, max_temperature=1.0
799
+ ),
800
+ default_options={
801
+ "reasoning_effort": "minimal",
802
+ },
803
+ )
804
+ case LanguageModelName.LITELLM_OPENAI_GPT_5_MINI:
805
+ return cls(
806
+ name=model_name,
807
+ provider=LanguageModelProvider.LITELLM,
808
+ version="gpt-5-mini",
809
+ encoder_name=EncoderName.O200K_BASE,
810
+ capabilities=[
811
+ ModelCapabilities.FUNCTION_CALLING,
812
+ ModelCapabilities.STREAMING,
813
+ ModelCapabilities.REASONING,
814
+ ModelCapabilities.VISION,
815
+ ModelCapabilities.STRUCTURED_OUTPUT,
816
+ ModelCapabilities.PARALLEL_FUNCTION_CALLING,
817
+ ],
818
+ token_limits=LanguageModelTokenLimits(
819
+ token_limit_input=272000, token_limit_output=128000
820
+ ),
821
+ info_cutoff_at=date(2024, 6, 24),
822
+ published_at=date(2025, 8, 7),
823
+ deprecated_at=date(2026, 8, 7),
824
+ retirement_at=date(2026, 8, 7),
825
+ temperature_bounds=TemperatureBounds(
826
+ min_temperature=1.0, max_temperature=1.0
827
+ ),
828
+ default_options={
829
+ "reasoning_effort": "minimal",
830
+ },
831
+ )
832
+ case LanguageModelName.LITELLM_OPENAI_GPT_5_NANO:
833
+ return cls(
834
+ name=model_name,
835
+ provider=LanguageModelProvider.LITELLM,
836
+ version="gpt-5-nano",
837
+ encoder_name=EncoderName.O200K_BASE,
838
+ capabilities=[
839
+ ModelCapabilities.FUNCTION_CALLING,
840
+ ModelCapabilities.STREAMING,
841
+ ModelCapabilities.REASONING,
842
+ ModelCapabilities.VISION,
843
+ ModelCapabilities.STRUCTURED_OUTPUT,
844
+ ModelCapabilities.PARALLEL_FUNCTION_CALLING,
845
+ ],
846
+ token_limits=LanguageModelTokenLimits(
847
+ token_limit_input=272000, token_limit_output=128000
848
+ ),
849
+ info_cutoff_at=date(2024, 5, 31),
850
+ published_at=date(2025, 8, 7),
851
+ deprecated_at=date(2026, 8, 7),
852
+ retirement_at=date(2026, 8, 7),
853
+ temperature_bounds=TemperatureBounds(
854
+ min_temperature=1.0, max_temperature=1.0
855
+ ),
856
+ default_options={
857
+ "reasoning_effort": "minimal",
858
+ },
859
+ )
860
+ case LanguageModelName.LITELLM_OPENAI_GPT_5_CHAT:
861
+ return cls(
862
+ name=model_name,
863
+ provider=LanguageModelProvider.LITELLM,
864
+ version="gpt-5-chat",
865
+ encoder_name=EncoderName.O200K_BASE,
866
+ capabilities=[
867
+ ModelCapabilities.STREAMING,
868
+ ModelCapabilities.VISION,
869
+ ],
870
+ token_limits=LanguageModelTokenLimits(
871
+ token_limit_input=128000, token_limit_output=16384
872
+ ),
873
+ info_cutoff_at=date(2024, 10, 24),
874
+ published_at=date(2025, 8, 7),
875
+ deprecated_at=date(2026, 8, 7),
876
+ retirement_at=date(2026, 8, 7),
877
+ )
878
+
760
879
  case _:
761
880
  if isinstance(model_name, LanguageModelName):
762
881
  raise ValueError(
File without changes