unique_toolkit 2026.22.0.dev2__py3-none-any.whl → 2026.22.0.dev3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- unique_toolkit/agentic/history_manager/loop_token_reducer.py +3 -4
- unique_toolkit/agentic/history_manager/settings.py +53 -0
- unique_toolkit/language_model/infos.py +118 -22
- unique_toolkit/language_model/settings.py +65 -0
- {unique_toolkit-2026.22.0.dev2.dist-info → unique_toolkit-2026.22.0.dev3.dist-info}/METADATA +1 -1
- {unique_toolkit-2026.22.0.dev2.dist-info → unique_toolkit-2026.22.0.dev3.dist-info}/RECORD +7 -5
- {unique_toolkit-2026.22.0.dev2.dist-info → unique_toolkit-2026.22.0.dev3.dist-info}/WHEEL +0 -0
|
@@ -13,6 +13,7 @@ from unique_toolkit.agentic.history_manager.history_construction_with_contents i
|
|
|
13
13
|
get_full_history_with_contents_and_tool_calls_async,
|
|
14
14
|
get_full_history_with_contents_async,
|
|
15
15
|
)
|
|
16
|
+
from unique_toolkit.agentic.history_manager.settings import env_settings
|
|
16
17
|
from unique_toolkit.agentic.history_manager.utils import (
|
|
17
18
|
get_selected_uploaded_content_ids,
|
|
18
19
|
serialize_tool_content_json,
|
|
@@ -33,10 +34,8 @@ from unique_toolkit.language_model.schemas import (
|
|
|
33
34
|
)
|
|
34
35
|
from unique_toolkit.services.factory import UniqueServiceFactory
|
|
35
36
|
|
|
36
|
-
MAX_INPUT_TOKENS_SAFETY_PERCENTAGE =
|
|
37
|
-
|
|
38
|
-
)
|
|
39
|
-
SAFETY_MARGIN_FOR_AGGRESSIVE_REDUCTION = 0.9
|
|
37
|
+
MAX_INPUT_TOKENS_SAFETY_PERCENTAGE = env_settings.input_correction_reduction_factor
|
|
38
|
+
SAFETY_MARGIN_FOR_AGGRESSIVE_REDUCTION = env_settings.input_aggressive_reduction_factor
|
|
40
39
|
|
|
41
40
|
|
|
42
41
|
class SourceReductionResult(BaseModel):
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import sys
|
|
3
|
+
from pathlib import Path
|
|
4
|
+
|
|
5
|
+
from pydantic import Field
|
|
6
|
+
from pydantic_settings import BaseSettings, SettingsConfigDict
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class Base(BaseSettings):
|
|
10
|
+
input_correction_reduction_factor: float = Field(
|
|
11
|
+
default=0.1,
|
|
12
|
+
ge=0.0,
|
|
13
|
+
lt=1.0,
|
|
14
|
+
description="The factor by which the input tokens will be reduced.",
|
|
15
|
+
)
|
|
16
|
+
input_aggressive_reduction_factor: float = Field(
|
|
17
|
+
default=0.9,
|
|
18
|
+
ge=0.0,
|
|
19
|
+
lt=1.0,
|
|
20
|
+
description="The safety margin for the input correction.",
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def get_model_config(test: bool = False) -> SettingsConfigDict:
|
|
25
|
+
if test:
|
|
26
|
+
env_file = Path(os.getcwd()) / "tests/test.env"
|
|
27
|
+
else:
|
|
28
|
+
env_file = Path(os.getcwd()) / ".env"
|
|
29
|
+
|
|
30
|
+
return SettingsConfigDict(
|
|
31
|
+
extra="ignore",
|
|
32
|
+
env_prefix="TOOLKIT_HISTORY_MANAGER_",
|
|
33
|
+
case_sensitive=False,
|
|
34
|
+
env_file=env_file,
|
|
35
|
+
env_file_encoding="utf-8",
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
class Settings(Base):
|
|
40
|
+
model_config = get_model_config()
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
class TestSettings(Base):
|
|
44
|
+
model_config = get_model_config(test=True)
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def get_settings() -> Base:
|
|
48
|
+
if "pytest" in sys.modules:
|
|
49
|
+
return TestSettings()
|
|
50
|
+
return Settings()
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
env_settings: Base = get_settings()
|
|
@@ -19,6 +19,7 @@ from unique_toolkit.language_model.schemas import (
|
|
|
19
19
|
ReasoningEffort,
|
|
20
20
|
to_reasoning_effort,
|
|
21
21
|
)
|
|
22
|
+
from unique_toolkit.language_model.settings import ModelFamily, env_settings
|
|
22
23
|
|
|
23
24
|
_LOGGER = logging.getLogger(__name__)
|
|
24
25
|
|
|
@@ -278,6 +279,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
278
279
|
| SkipJsonSchema[LanguageModelName]
|
|
279
280
|
) = Field(title="Model Name", default=LanguageModelName.AZURE_GPT_4o_2024_1120)
|
|
280
281
|
provider: LanguageModelProvider = LanguageModelProvider.AZURE
|
|
282
|
+
family: ModelFamily = ModelFamily.UNKNOWN
|
|
281
283
|
version: str = Field(title="Model Version", default="")
|
|
282
284
|
|
|
283
285
|
encoder_name: EncoderName | Annotated[str, Field(title="Custom Encoder Name")] = (
|
|
@@ -523,6 +525,28 @@ class LanguageModelInfo(BaseModel):
|
|
|
523
525
|
|
|
524
526
|
@classmethod
|
|
525
527
|
def from_name(cls, model_name: LanguageModelName | str) -> Self:
|
|
528
|
+
"""Build a ``LanguageModelInfo`` for ``model_name`` and apply the per-family
|
|
529
|
+
input-token correction exactly once.
|
|
530
|
+
|
|
531
|
+
``token_limits.token_limit_input`` declared in the case branches below is
|
|
532
|
+
the *advertised* limit. The family multiplier (see
|
|
533
|
+
``settings.token_limit_multiplier``) compensates for tokenizer mismatches
|
|
534
|
+
and is applied here, at the single bottleneck through which every
|
|
535
|
+
``from_name`` result flows. Other construction paths
|
|
536
|
+
(``cls(...)`` direct, ``cls.model_validate(dump)``) are intentionally
|
|
537
|
+
*not* corrected, so a corrected info round-trips through pydantic
|
|
538
|
+
without re-shrinking when nested inside parent configs.
|
|
539
|
+
"""
|
|
540
|
+
info = cls._construct_from_name(model_name)
|
|
541
|
+
multiplier = env_settings.token_limit_multiplier.get(info.family, 1.0)
|
|
542
|
+
if multiplier != 1.0:
|
|
543
|
+
info.token_limits.token_limit_input = int(
|
|
544
|
+
info.token_limits.token_limit_input * multiplier
|
|
545
|
+
)
|
|
546
|
+
return info
|
|
547
|
+
|
|
548
|
+
@classmethod
|
|
549
|
+
def _construct_from_name(cls, model_name: LanguageModelName | str) -> Self:
|
|
526
550
|
if model_name in [name.value for name in LanguageModelName]:
|
|
527
551
|
model_name = LanguageModelName(model_name)
|
|
528
552
|
|
|
@@ -548,6 +572,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
548
572
|
return cls(
|
|
549
573
|
name=model_name,
|
|
550
574
|
provider=LanguageModelProvider.AZURE,
|
|
575
|
+
family=ModelFamily.OPENAI,
|
|
551
576
|
capabilities=[
|
|
552
577
|
ModelCapabilities.FUNCTION_CALLING,
|
|
553
578
|
ModelCapabilities.PARALLEL_FUNCTION_CALLING,
|
|
@@ -567,6 +592,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
567
592
|
return cls(
|
|
568
593
|
name=model_name,
|
|
569
594
|
provider=LanguageModelProvider.AZURE,
|
|
595
|
+
family=ModelFamily.OPENAI,
|
|
570
596
|
version="0613",
|
|
571
597
|
encoder_name=EncoderName.CL100K_BASE,
|
|
572
598
|
capabilities=[
|
|
@@ -584,6 +610,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
584
610
|
return cls(
|
|
585
611
|
name=model_name,
|
|
586
612
|
provider=LanguageModelProvider.AZURE,
|
|
613
|
+
family=ModelFamily.OPENAI,
|
|
587
614
|
version="1106-preview",
|
|
588
615
|
capabilities=[
|
|
589
616
|
ModelCapabilities.FUNCTION_CALLING,
|
|
@@ -601,6 +628,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
601
628
|
return cls(
|
|
602
629
|
name=model_name,
|
|
603
630
|
provider=LanguageModelProvider.AZURE,
|
|
631
|
+
family=ModelFamily.OPENAI,
|
|
604
632
|
version="2025-08-07",
|
|
605
633
|
encoder_name=EncoderName.O200K_BASE,
|
|
606
634
|
capabilities=[
|
|
@@ -632,6 +660,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
632
660
|
return cls(
|
|
633
661
|
name=model_name,
|
|
634
662
|
provider=LanguageModelProvider.AZURE,
|
|
663
|
+
family=ModelFamily.OPENAI,
|
|
635
664
|
version="2025-08-07",
|
|
636
665
|
encoder_name=EncoderName.O200K_BASE,
|
|
637
666
|
capabilities=[
|
|
@@ -663,6 +692,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
663
692
|
return cls(
|
|
664
693
|
name=model_name,
|
|
665
694
|
provider=LanguageModelProvider.AZURE,
|
|
695
|
+
family=ModelFamily.OPENAI,
|
|
666
696
|
version="2025-08-07",
|
|
667
697
|
encoder_name=EncoderName.O200K_BASE,
|
|
668
698
|
capabilities=[
|
|
@@ -694,6 +724,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
694
724
|
return cls(
|
|
695
725
|
name=model_name,
|
|
696
726
|
provider=LanguageModelProvider.AZURE,
|
|
727
|
+
family=ModelFamily.OPENAI,
|
|
697
728
|
version="2025-08-07",
|
|
698
729
|
encoder_name=EncoderName.O200K_BASE,
|
|
699
730
|
capabilities=[
|
|
@@ -714,6 +745,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
714
745
|
return cls(
|
|
715
746
|
name=model_name,
|
|
716
747
|
provider=LanguageModelProvider.AZURE,
|
|
748
|
+
family=ModelFamily.OPENAI,
|
|
717
749
|
version="2025-10-06",
|
|
718
750
|
encoder_name=EncoderName.O200K_BASE,
|
|
719
751
|
capabilities=[
|
|
@@ -740,6 +772,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
740
772
|
return cls(
|
|
741
773
|
name=model_name,
|
|
742
774
|
provider=LanguageModelProvider.AZURE,
|
|
775
|
+
family=ModelFamily.OPENAI,
|
|
743
776
|
version="2025-11-13",
|
|
744
777
|
encoder_name=EncoderName.O200K_BASE,
|
|
745
778
|
capabilities=[
|
|
@@ -769,6 +802,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
769
802
|
return cls(
|
|
770
803
|
name=model_name,
|
|
771
804
|
provider=LanguageModelProvider.AZURE,
|
|
805
|
+
family=ModelFamily.OPENAI,
|
|
772
806
|
version="2025-11-13",
|
|
773
807
|
encoder_name=EncoderName.O200K_BASE,
|
|
774
808
|
capabilities=[
|
|
@@ -798,6 +832,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
798
832
|
return cls(
|
|
799
833
|
name=model_name,
|
|
800
834
|
provider=LanguageModelProvider.AZURE,
|
|
835
|
+
family=ModelFamily.OPENAI,
|
|
801
836
|
version="2025-11-13",
|
|
802
837
|
encoder_name=EncoderName.O200K_BASE,
|
|
803
838
|
capabilities=[
|
|
@@ -827,6 +862,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
827
862
|
return cls(
|
|
828
863
|
name=model_name,
|
|
829
864
|
provider=LanguageModelProvider.AZURE,
|
|
865
|
+
family=ModelFamily.OPENAI,
|
|
830
866
|
version="2025-11-13",
|
|
831
867
|
encoder_name=EncoderName.O200K_BASE,
|
|
832
868
|
capabilities=[
|
|
@@ -855,6 +891,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
855
891
|
return cls(
|
|
856
892
|
name=model_name,
|
|
857
893
|
provider=LanguageModelProvider.AZURE,
|
|
894
|
+
family=ModelFamily.OPENAI,
|
|
858
895
|
version="2025-11-13",
|
|
859
896
|
encoder_name=EncoderName.O200K_BASE,
|
|
860
897
|
capabilities=[
|
|
@@ -883,6 +920,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
883
920
|
return cls(
|
|
884
921
|
name=model_name,
|
|
885
922
|
provider=LanguageModelProvider.AZURE,
|
|
923
|
+
family=ModelFamily.OPENAI,
|
|
886
924
|
version="2025-12-11",
|
|
887
925
|
encoder_name=EncoderName.O200K_BASE,
|
|
888
926
|
capabilities=[
|
|
@@ -918,6 +956,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
918
956
|
return cls(
|
|
919
957
|
name=model_name,
|
|
920
958
|
provider=LanguageModelProvider.AZURE,
|
|
959
|
+
family=ModelFamily.OPENAI,
|
|
921
960
|
version="2025-12-11",
|
|
922
961
|
encoder_name=EncoderName.O200K_BASE,
|
|
923
962
|
capabilities=[
|
|
@@ -945,6 +984,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
945
984
|
return cls(
|
|
946
985
|
name=model_name,
|
|
947
986
|
provider=LanguageModelProvider.AZURE,
|
|
987
|
+
family=ModelFamily.OPENAI,
|
|
948
988
|
version="2026-03-05",
|
|
949
989
|
encoder_name=EncoderName.O200K_BASE,
|
|
950
990
|
capabilities=[
|
|
@@ -980,6 +1020,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
980
1020
|
return cls(
|
|
981
1021
|
name=model_name,
|
|
982
1022
|
provider=LanguageModelProvider.AZURE,
|
|
1023
|
+
family=ModelFamily.OPENAI,
|
|
983
1024
|
version="2026-03-05",
|
|
984
1025
|
encoder_name=EncoderName.O200K_BASE,
|
|
985
1026
|
capabilities=[
|
|
@@ -1009,6 +1050,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
1009
1050
|
return cls(
|
|
1010
1051
|
name=model_name,
|
|
1011
1052
|
provider=LanguageModelProvider.AZURE,
|
|
1053
|
+
family=ModelFamily.OPENAI,
|
|
1012
1054
|
version="2026-04-24",
|
|
1013
1055
|
encoder_name=EncoderName.O200K_BASE,
|
|
1014
1056
|
capabilities=[
|
|
@@ -1044,6 +1086,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
1044
1086
|
return cls(
|
|
1045
1087
|
name=model_name,
|
|
1046
1088
|
provider=LanguageModelProvider.AZURE,
|
|
1089
|
+
family=ModelFamily.OPENAI,
|
|
1047
1090
|
version="2026-04-24",
|
|
1048
1091
|
encoder_name=EncoderName.O200K_BASE,
|
|
1049
1092
|
capabilities=[
|
|
@@ -1081,6 +1124,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
1081
1124
|
ModelCapabilities.VISION,
|
|
1082
1125
|
],
|
|
1083
1126
|
provider=LanguageModelProvider.AZURE,
|
|
1127
|
+
family=ModelFamily.OPENAI,
|
|
1084
1128
|
version="turbo-2024-04-09",
|
|
1085
1129
|
token_limits=LanguageModelTokenLimits(
|
|
1086
1130
|
token_limit_input=128000, token_limit_output=4096
|
|
@@ -1102,6 +1146,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
1102
1146
|
ModelCapabilities.VISION,
|
|
1103
1147
|
],
|
|
1104
1148
|
provider=LanguageModelProvider.AZURE,
|
|
1149
|
+
family=ModelFamily.OPENAI,
|
|
1105
1150
|
version="2024-05-13",
|
|
1106
1151
|
token_limits=LanguageModelTokenLimits(
|
|
1107
1152
|
token_limit_input=128_000, token_limit_output=4_096
|
|
@@ -1124,6 +1169,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
1124
1169
|
ModelCapabilities.VISION,
|
|
1125
1170
|
],
|
|
1126
1171
|
provider=LanguageModelProvider.AZURE,
|
|
1172
|
+
family=ModelFamily.OPENAI,
|
|
1127
1173
|
version="2024-08-06",
|
|
1128
1174
|
token_limits=LanguageModelTokenLimits(
|
|
1129
1175
|
token_limit_input=128_000, token_limit_output=16_384
|
|
@@ -1146,6 +1192,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
1146
1192
|
ModelCapabilities.VISION,
|
|
1147
1193
|
],
|
|
1148
1194
|
provider=LanguageModelProvider.AZURE,
|
|
1195
|
+
family=ModelFamily.OPENAI,
|
|
1149
1196
|
version="2024-11-20",
|
|
1150
1197
|
token_limits=LanguageModelTokenLimits(
|
|
1151
1198
|
token_limit_input=128_000, token_limit_output=16_384
|
|
@@ -1166,6 +1213,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
1166
1213
|
ModelCapabilities.VISION,
|
|
1167
1214
|
],
|
|
1168
1215
|
provider=LanguageModelProvider.AZURE,
|
|
1216
|
+
family=ModelFamily.OPENAI,
|
|
1169
1217
|
version="2024-07-18",
|
|
1170
1218
|
encoder_name=EncoderName.O200K_BASE,
|
|
1171
1219
|
token_limits=LanguageModelTokenLimits(
|
|
@@ -1187,6 +1235,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
1187
1235
|
ModelCapabilities.REASONING,
|
|
1188
1236
|
],
|
|
1189
1237
|
provider=LanguageModelProvider.AZURE,
|
|
1238
|
+
family=ModelFamily.OPENAI,
|
|
1190
1239
|
version="2024-09-12",
|
|
1191
1240
|
encoder_name=EncoderName.O200K_BASE,
|
|
1192
1241
|
token_limits=LanguageModelTokenLimits(
|
|
@@ -1212,6 +1261,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
1212
1261
|
ModelCapabilities.VISION,
|
|
1213
1262
|
],
|
|
1214
1263
|
provider=LanguageModelProvider.AZURE,
|
|
1264
|
+
family=ModelFamily.OPENAI,
|
|
1215
1265
|
version="2024-12-17",
|
|
1216
1266
|
encoder_name=EncoderName.O200K_BASE,
|
|
1217
1267
|
token_limits=LanguageModelTokenLimits(
|
|
@@ -1236,6 +1286,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
1236
1286
|
ModelCapabilities.STRUCTURED_OUTPUT,
|
|
1237
1287
|
],
|
|
1238
1288
|
provider=LanguageModelProvider.AZURE,
|
|
1289
|
+
family=ModelFamily.OPENAI,
|
|
1239
1290
|
version="2025-01-31",
|
|
1240
1291
|
encoder_name=EncoderName.O200K_BASE,
|
|
1241
1292
|
token_limits=LanguageModelTokenLimits(
|
|
@@ -1261,6 +1312,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
1261
1312
|
ModelCapabilities.VISION,
|
|
1262
1313
|
],
|
|
1263
1314
|
provider=LanguageModelProvider.AZURE,
|
|
1315
|
+
family=ModelFamily.OPENAI,
|
|
1264
1316
|
version="2025-04-16",
|
|
1265
1317
|
encoder_name=EncoderName.O200K_BASE,
|
|
1266
1318
|
token_limits=LanguageModelTokenLimits(
|
|
@@ -1286,6 +1338,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
1286
1338
|
ModelCapabilities.VISION,
|
|
1287
1339
|
],
|
|
1288
1340
|
provider=LanguageModelProvider.AZURE,
|
|
1341
|
+
family=ModelFamily.OPENAI,
|
|
1289
1342
|
version="2025-04-16",
|
|
1290
1343
|
encoder_name=EncoderName.O200K_BASE,
|
|
1291
1344
|
token_limits=LanguageModelTokenLimits(
|
|
@@ -1309,6 +1362,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
1309
1362
|
ModelCapabilities.VISION,
|
|
1310
1363
|
],
|
|
1311
1364
|
provider=LanguageModelProvider.AZURE,
|
|
1365
|
+
family=ModelFamily.OPENAI,
|
|
1312
1366
|
version="2025-02-27",
|
|
1313
1367
|
encoder_name=EncoderName.O200K_BASE,
|
|
1314
1368
|
token_limits=LanguageModelTokenLimits(
|
|
@@ -1330,6 +1384,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
1330
1384
|
ModelCapabilities.VISION,
|
|
1331
1385
|
],
|
|
1332
1386
|
provider=LanguageModelProvider.AZURE,
|
|
1387
|
+
family=ModelFamily.OPENAI,
|
|
1333
1388
|
version="2025-04-14",
|
|
1334
1389
|
encoder_name=EncoderName.O200K_BASE,
|
|
1335
1390
|
token_limits=LanguageModelTokenLimits(
|
|
@@ -1351,6 +1406,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
1351
1406
|
ModelCapabilities.VISION,
|
|
1352
1407
|
],
|
|
1353
1408
|
provider=LanguageModelProvider.AZURE,
|
|
1409
|
+
family=ModelFamily.OPENAI,
|
|
1354
1410
|
version="2025-04-14",
|
|
1355
1411
|
encoder_name=EncoderName.O200K_BASE,
|
|
1356
1412
|
token_limits=LanguageModelTokenLimits(
|
|
@@ -1372,6 +1428,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
1372
1428
|
ModelCapabilities.VISION,
|
|
1373
1429
|
],
|
|
1374
1430
|
provider=LanguageModelProvider.AZURE,
|
|
1431
|
+
family=ModelFamily.OPENAI,
|
|
1375
1432
|
version="2025-04-14",
|
|
1376
1433
|
encoder_name=EncoderName.O200K_BASE,
|
|
1377
1434
|
token_limits=LanguageModelTokenLimits(
|
|
@@ -1393,6 +1450,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
1393
1450
|
ModelCapabilities.VISION,
|
|
1394
1451
|
],
|
|
1395
1452
|
provider=LanguageModelProvider.AZURE,
|
|
1453
|
+
family=ModelFamily.OPENAI,
|
|
1396
1454
|
version="2025-11-18",
|
|
1397
1455
|
encoder_name=EncoderName.O200K_BASE,
|
|
1398
1456
|
token_limits=LanguageModelTokenLimits(
|
|
@@ -1411,11 +1469,11 @@ class LanguageModelInfo(BaseModel):
|
|
|
1411
1469
|
ModelCapabilities.VISION,
|
|
1412
1470
|
],
|
|
1413
1471
|
provider=LanguageModelProvider.LITELLM,
|
|
1472
|
+
family=ModelFamily.ANTHROPIC,
|
|
1414
1473
|
version="claude-3-7-sonnet",
|
|
1415
1474
|
encoder_name=EncoderName.O200K_BASE, # TODO: Update encoder with litellm
|
|
1416
1475
|
token_limits=LanguageModelTokenLimits(
|
|
1417
|
-
|
|
1418
|
-
token_limit_input=180_000,
|
|
1476
|
+
token_limit_input=200_000,
|
|
1419
1477
|
token_limit_output=64_000,
|
|
1420
1478
|
),
|
|
1421
1479
|
info_cutoff_at=date(2024, 10, 31),
|
|
@@ -1432,11 +1490,11 @@ class LanguageModelInfo(BaseModel):
|
|
|
1432
1490
|
ModelCapabilities.REASONING,
|
|
1433
1491
|
],
|
|
1434
1492
|
provider=LanguageModelProvider.LITELLM,
|
|
1493
|
+
family=ModelFamily.ANTHROPIC,
|
|
1435
1494
|
version="claude-3-7-sonnet-thinking",
|
|
1436
1495
|
encoder_name=EncoderName.O200K_BASE, # TODO: Update encoder with litellm
|
|
1437
1496
|
token_limits=LanguageModelTokenLimits(
|
|
1438
|
-
|
|
1439
|
-
token_limit_input=180_000,
|
|
1497
|
+
token_limit_input=200_000,
|
|
1440
1498
|
token_limit_output=64_000,
|
|
1441
1499
|
),
|
|
1442
1500
|
info_cutoff_at=date(2024, 10, 31),
|
|
@@ -1453,11 +1511,11 @@ class LanguageModelInfo(BaseModel):
|
|
|
1453
1511
|
ModelCapabilities.REASONING,
|
|
1454
1512
|
],
|
|
1455
1513
|
provider=LanguageModelProvider.LITELLM,
|
|
1514
|
+
family=ModelFamily.ANTHROPIC,
|
|
1456
1515
|
version="claude-haiku-4-5",
|
|
1457
1516
|
encoder_name=EncoderName.O200K_BASE, # TODO: Update encoder with litellm
|
|
1458
1517
|
token_limits=LanguageModelTokenLimits(
|
|
1459
|
-
|
|
1460
|
-
token_limit_input=180_000,
|
|
1518
|
+
token_limit_input=200_000,
|
|
1461
1519
|
token_limit_output=64_000,
|
|
1462
1520
|
),
|
|
1463
1521
|
info_cutoff_at=date(2025, 2, 1),
|
|
@@ -1474,11 +1532,11 @@ class LanguageModelInfo(BaseModel):
|
|
|
1474
1532
|
ModelCapabilities.REASONING,
|
|
1475
1533
|
],
|
|
1476
1534
|
provider=LanguageModelProvider.LITELLM,
|
|
1535
|
+
family=ModelFamily.ANTHROPIC,
|
|
1477
1536
|
version="claude-sonnet-4",
|
|
1478
1537
|
encoder_name=EncoderName.O200K_BASE, # TODO: Update encoder with litellm
|
|
1479
1538
|
token_limits=LanguageModelTokenLimits(
|
|
1480
|
-
|
|
1481
|
-
token_limit_input=180_000,
|
|
1539
|
+
token_limit_input=200_000,
|
|
1482
1540
|
token_limit_output=64_000,
|
|
1483
1541
|
),
|
|
1484
1542
|
info_cutoff_at=date(2025, 3, 1),
|
|
@@ -1495,11 +1553,11 @@ class LanguageModelInfo(BaseModel):
|
|
|
1495
1553
|
ModelCapabilities.REASONING,
|
|
1496
1554
|
],
|
|
1497
1555
|
provider=LanguageModelProvider.LITELLM,
|
|
1556
|
+
family=ModelFamily.ANTHROPIC,
|
|
1498
1557
|
version="claude-sonnet-4-5",
|
|
1499
1558
|
encoder_name=EncoderName.O200K_BASE, # TODO: Update encoder with litellm
|
|
1500
1559
|
token_limits=LanguageModelTokenLimits(
|
|
1501
|
-
|
|
1502
|
-
token_limit_input=180_000,
|
|
1560
|
+
token_limit_input=200_000,
|
|
1503
1561
|
token_limit_output=64_000,
|
|
1504
1562
|
),
|
|
1505
1563
|
info_cutoff_at=date(2025, 7, 1),
|
|
@@ -1519,11 +1577,11 @@ class LanguageModelInfo(BaseModel):
|
|
|
1519
1577
|
ModelCapabilities.REASONING,
|
|
1520
1578
|
],
|
|
1521
1579
|
provider=LanguageModelProvider.LITELLM,
|
|
1580
|
+
family=ModelFamily.ANTHROPIC,
|
|
1522
1581
|
version="claude-sonnet-4-6",
|
|
1523
1582
|
encoder_name=EncoderName.O200K_BASE, # TODO: Update encoder with litellm
|
|
1524
1583
|
token_limits=LanguageModelTokenLimits(
|
|
1525
|
-
|
|
1526
|
-
token_limit_input=180_000,
|
|
1584
|
+
token_limit_input=200_000,
|
|
1527
1585
|
token_limit_output=64_000,
|
|
1528
1586
|
),
|
|
1529
1587
|
info_cutoff_at=date(2026, 1, 1),
|
|
@@ -1540,11 +1598,11 @@ class LanguageModelInfo(BaseModel):
|
|
|
1540
1598
|
ModelCapabilities.REASONING,
|
|
1541
1599
|
],
|
|
1542
1600
|
provider=LanguageModelProvider.LITELLM,
|
|
1601
|
+
family=ModelFamily.ANTHROPIC,
|
|
1543
1602
|
version="claude-opus-4",
|
|
1544
1603
|
encoder_name=EncoderName.O200K_BASE, # TODO: Update encoder with litellm
|
|
1545
1604
|
token_limits=LanguageModelTokenLimits(
|
|
1546
|
-
|
|
1547
|
-
token_limit_input=180_000,
|
|
1605
|
+
token_limit_input=200_000,
|
|
1548
1606
|
token_limit_output=32_000,
|
|
1549
1607
|
),
|
|
1550
1608
|
info_cutoff_at=date(2025, 3, 1),
|
|
@@ -1561,11 +1619,11 @@ class LanguageModelInfo(BaseModel):
|
|
|
1561
1619
|
ModelCapabilities.REASONING,
|
|
1562
1620
|
],
|
|
1563
1621
|
provider=LanguageModelProvider.LITELLM,
|
|
1622
|
+
family=ModelFamily.ANTHROPIC,
|
|
1564
1623
|
version="claude-opus-4-1",
|
|
1565
1624
|
encoder_name=EncoderName.O200K_BASE, # TODO: Update encoder with litellm
|
|
1566
1625
|
token_limits=LanguageModelTokenLimits(
|
|
1567
|
-
|
|
1568
|
-
token_limit_input=180_000,
|
|
1626
|
+
token_limit_input=200_000,
|
|
1569
1627
|
token_limit_output=32_000,
|
|
1570
1628
|
),
|
|
1571
1629
|
info_cutoff_at=date(2025, 3, 1),
|
|
@@ -1582,11 +1640,11 @@ class LanguageModelInfo(BaseModel):
|
|
|
1582
1640
|
ModelCapabilities.REASONING,
|
|
1583
1641
|
],
|
|
1584
1642
|
provider=LanguageModelProvider.LITELLM,
|
|
1643
|
+
family=ModelFamily.ANTHROPIC,
|
|
1585
1644
|
version="claude-opus-4-5",
|
|
1586
1645
|
encoder_name=EncoderName.O200K_BASE, # TODO: Update encoder with litellm
|
|
1587
1646
|
token_limits=LanguageModelTokenLimits(
|
|
1588
|
-
|
|
1589
|
-
token_limit_input=180_000,
|
|
1647
|
+
token_limit_input=200_000,
|
|
1590
1648
|
token_limit_output=64_000,
|
|
1591
1649
|
),
|
|
1592
1650
|
info_cutoff_at=date(2025, 8, 1),
|
|
@@ -1606,11 +1664,11 @@ class LanguageModelInfo(BaseModel):
|
|
|
1606
1664
|
ModelCapabilities.REASONING,
|
|
1607
1665
|
],
|
|
1608
1666
|
provider=LanguageModelProvider.LITELLM,
|
|
1667
|
+
family=ModelFamily.ANTHROPIC,
|
|
1609
1668
|
version="claude-opus-4-6",
|
|
1610
1669
|
encoder_name=EncoderName.O200K_BASE, # TODO: Update encoder with litellm
|
|
1611
1670
|
token_limits=LanguageModelTokenLimits(
|
|
1612
|
-
|
|
1613
|
-
token_limit_input=180_000,
|
|
1671
|
+
token_limit_input=200_000,
|
|
1614
1672
|
token_limit_output=128_000,
|
|
1615
1673
|
),
|
|
1616
1674
|
info_cutoff_at=date(2025, 8, 1),
|
|
@@ -1630,11 +1688,11 @@ class LanguageModelInfo(BaseModel):
|
|
|
1630
1688
|
ModelCapabilities.REASONING,
|
|
1631
1689
|
],
|
|
1632
1690
|
provider=LanguageModelProvider.LITELLM,
|
|
1691
|
+
family=ModelFamily.ANTHROPIC,
|
|
1633
1692
|
version="claude-opus-4-7",
|
|
1634
1693
|
encoder_name=EncoderName.O200K_BASE, # TODO: Update encoder with litellm
|
|
1635
1694
|
token_limits=LanguageModelTokenLimits(
|
|
1636
|
-
|
|
1637
|
-
token_limit_input=900_000,
|
|
1695
|
+
token_limit_input=1_000_000,
|
|
1638
1696
|
token_limit_output=128_000,
|
|
1639
1697
|
),
|
|
1640
1698
|
info_cutoff_at=date(2026, 1, 1),
|
|
@@ -1652,6 +1710,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
1652
1710
|
ModelCapabilities.REASONING,
|
|
1653
1711
|
],
|
|
1654
1712
|
provider=LanguageModelProvider.LITELLM,
|
|
1713
|
+
family=ModelFamily.GOOGLE,
|
|
1655
1714
|
version="gemini-2-0-flash",
|
|
1656
1715
|
encoder_name=EncoderName.O200K_BASE, # TODO: Update encoder with litellm
|
|
1657
1716
|
token_limits=LanguageModelTokenLimits(
|
|
@@ -1672,6 +1731,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
1672
1731
|
ModelCapabilities.REASONING,
|
|
1673
1732
|
],
|
|
1674
1733
|
provider=LanguageModelProvider.LITELLM,
|
|
1734
|
+
family=ModelFamily.GOOGLE,
|
|
1675
1735
|
version="gemini-2-5-flash",
|
|
1676
1736
|
encoder_name=EncoderName.O200K_BASE, # TODO:Replace with LLM tokenizer
|
|
1677
1737
|
token_limits=LanguageModelTokenLimits(
|
|
@@ -1692,6 +1752,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
1692
1752
|
ModelCapabilities.REASONING,
|
|
1693
1753
|
],
|
|
1694
1754
|
provider=LanguageModelProvider.LITELLM,
|
|
1755
|
+
family=ModelFamily.GOOGLE,
|
|
1695
1756
|
version="gemini-2-5-flash-lite",
|
|
1696
1757
|
encoder_name=EncoderName.O200K_BASE, # TODO:Replace with LLM tokenizer
|
|
1697
1758
|
token_limits=LanguageModelTokenLimits(
|
|
@@ -1712,6 +1773,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
1712
1773
|
ModelCapabilities.REASONING,
|
|
1713
1774
|
],
|
|
1714
1775
|
provider=LanguageModelProvider.LITELLM,
|
|
1776
|
+
family=ModelFamily.GOOGLE,
|
|
1715
1777
|
version="gemini-2-5-flash-lite-preview-06-17",
|
|
1716
1778
|
encoder_name=EncoderName.O200K_BASE, # TODO:Replace with LLM tokenizer
|
|
1717
1779
|
token_limits=LanguageModelTokenLimits(
|
|
@@ -1732,6 +1794,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
1732
1794
|
ModelCapabilities.REASONING,
|
|
1733
1795
|
],
|
|
1734
1796
|
provider=LanguageModelProvider.LITELLM,
|
|
1797
|
+
family=ModelFamily.GOOGLE,
|
|
1735
1798
|
version="gemini-2-5-flash-preview-05-20",
|
|
1736
1799
|
encoder_name=EncoderName.O200K_BASE, # TODO:Replace with LLM tokenizer
|
|
1737
1800
|
token_limits=LanguageModelTokenLimits(
|
|
@@ -1752,6 +1815,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
1752
1815
|
ModelCapabilities.REASONING,
|
|
1753
1816
|
],
|
|
1754
1817
|
provider=LanguageModelProvider.LITELLM,
|
|
1818
|
+
family=ModelFamily.GOOGLE,
|
|
1755
1819
|
version="gemini-2-5-pro",
|
|
1756
1820
|
encoder_name=EncoderName.O200K_BASE, # TODO: Update encoder with litellm
|
|
1757
1821
|
token_limits=LanguageModelTokenLimits(
|
|
@@ -1772,6 +1836,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
1772
1836
|
ModelCapabilities.REASONING,
|
|
1773
1837
|
],
|
|
1774
1838
|
provider=LanguageModelProvider.LITELLM,
|
|
1839
|
+
family=ModelFamily.GOOGLE,
|
|
1775
1840
|
version="gemini-2-5-pro-exp-0325",
|
|
1776
1841
|
encoder_name=EncoderName.O200K_BASE, # TODO: Update encoder with litellm
|
|
1777
1842
|
token_limits=LanguageModelTokenLimits(
|
|
@@ -1792,6 +1857,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
1792
1857
|
ModelCapabilities.REASONING,
|
|
1793
1858
|
],
|
|
1794
1859
|
provider=LanguageModelProvider.LITELLM,
|
|
1860
|
+
family=ModelFamily.GOOGLE,
|
|
1795
1861
|
version="gemini-2-5-pro-preview-06-05",
|
|
1796
1862
|
encoder_name=EncoderName.O200K_BASE, # TODO: Update encoder with litellm
|
|
1797
1863
|
token_limits=LanguageModelTokenLimits(
|
|
@@ -1812,6 +1878,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
1812
1878
|
ModelCapabilities.REASONING,
|
|
1813
1879
|
],
|
|
1814
1880
|
provider=LanguageModelProvider.LITELLM,
|
|
1881
|
+
family=ModelFamily.GOOGLE,
|
|
1815
1882
|
version="gemini-3-1-pro-preview",
|
|
1816
1883
|
encoder_name=EncoderName.O200K_BASE, # TODO: Update encoder with litellm
|
|
1817
1884
|
token_limits=LanguageModelTokenLimits(
|
|
@@ -1832,6 +1899,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
1832
1899
|
ModelCapabilities.REASONING,
|
|
1833
1900
|
],
|
|
1834
1901
|
provider=LanguageModelProvider.LITELLM,
|
|
1902
|
+
family=ModelFamily.GOOGLE,
|
|
1835
1903
|
version="gemini-3-flash-preview",
|
|
1836
1904
|
encoder_name=EncoderName.O200K_BASE, # TODO: Update encoder with litellm
|
|
1837
1905
|
token_limits=LanguageModelTokenLimits(
|
|
@@ -1852,6 +1920,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
1852
1920
|
ModelCapabilities.REASONING,
|
|
1853
1921
|
],
|
|
1854
1922
|
provider=LanguageModelProvider.LITELLM,
|
|
1923
|
+
family=ModelFamily.GOOGLE,
|
|
1855
1924
|
version="gemini-3-pro-preview",
|
|
1856
1925
|
encoder_name=EncoderName.O200K_BASE, # TODO: Update encoder with litellm
|
|
1857
1926
|
token_limits=LanguageModelTokenLimits(
|
|
@@ -1870,6 +1939,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
1870
1939
|
ModelCapabilities.STRUCTURED_OUTPUT,
|
|
1871
1940
|
],
|
|
1872
1941
|
provider=LanguageModelProvider.LITELLM,
|
|
1942
|
+
family=ModelFamily.XAI,
|
|
1873
1943
|
version="grok-4-1-fast-non-reasoning",
|
|
1874
1944
|
encoder_name=EncoderName.O200K_BASE, # TODO: Update encoder with grok tokenizer
|
|
1875
1945
|
token_limits=LanguageModelTokenLimits(
|
|
@@ -1892,6 +1962,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
1892
1962
|
ModelCapabilities.REASONING,
|
|
1893
1963
|
],
|
|
1894
1964
|
provider=LanguageModelProvider.LITELLM,
|
|
1965
|
+
family=ModelFamily.XAI,
|
|
1895
1966
|
version="grok-4-1-fast-reasoning",
|
|
1896
1967
|
encoder_name=EncoderName.O200K_BASE, # TODO: Update encoder with grok tokenizer
|
|
1897
1968
|
token_limits=LanguageModelTokenLimits(
|
|
@@ -1908,6 +1979,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
1908
1979
|
return cls(
|
|
1909
1980
|
name=model_name,
|
|
1910
1981
|
provider=LanguageModelProvider.LITELLM,
|
|
1982
|
+
family=ModelFamily.OPENAI,
|
|
1911
1983
|
version="gpt-5",
|
|
1912
1984
|
encoder_name=EncoderName.O200K_BASE,
|
|
1913
1985
|
capabilities=[
|
|
@@ -1939,6 +2011,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
1939
2011
|
return cls(
|
|
1940
2012
|
name=model_name,
|
|
1941
2013
|
provider=LanguageModelProvider.LITELLM,
|
|
2014
|
+
family=ModelFamily.OPENAI,
|
|
1942
2015
|
version="gpt-5-mini",
|
|
1943
2016
|
encoder_name=EncoderName.O200K_BASE,
|
|
1944
2017
|
capabilities=[
|
|
@@ -1970,6 +2043,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
1970
2043
|
return cls(
|
|
1971
2044
|
name=model_name,
|
|
1972
2045
|
provider=LanguageModelProvider.LITELLM,
|
|
2046
|
+
family=ModelFamily.OPENAI,
|
|
1973
2047
|
version="gpt-5-nano",
|
|
1974
2048
|
encoder_name=EncoderName.O200K_BASE,
|
|
1975
2049
|
capabilities=[
|
|
@@ -2001,6 +2075,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
2001
2075
|
return cls(
|
|
2002
2076
|
name=model_name,
|
|
2003
2077
|
provider=LanguageModelProvider.LITELLM,
|
|
2078
|
+
family=ModelFamily.OPENAI,
|
|
2004
2079
|
version="gpt-5-chat",
|
|
2005
2080
|
encoder_name=EncoderName.O200K_BASE,
|
|
2006
2081
|
capabilities=[
|
|
@@ -2021,6 +2096,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
2021
2096
|
return cls(
|
|
2022
2097
|
name=model_name,
|
|
2023
2098
|
provider=LanguageModelProvider.LITELLM,
|
|
2099
|
+
family=ModelFamily.OPENAI,
|
|
2024
2100
|
version="2025-10-06",
|
|
2025
2101
|
encoder_name=EncoderName.O200K_BASE,
|
|
2026
2102
|
capabilities=[
|
|
@@ -2047,6 +2123,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
2047
2123
|
return cls(
|
|
2048
2124
|
name=model_name,
|
|
2049
2125
|
provider=LanguageModelProvider.LITELLM,
|
|
2126
|
+
family=ModelFamily.OPENAI,
|
|
2050
2127
|
version="2025-11-13",
|
|
2051
2128
|
encoder_name=EncoderName.O200K_BASE,
|
|
2052
2129
|
capabilities=[
|
|
@@ -2076,6 +2153,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
2076
2153
|
return cls(
|
|
2077
2154
|
name=model_name,
|
|
2078
2155
|
provider=LanguageModelProvider.LITELLM,
|
|
2156
|
+
family=ModelFamily.OPENAI,
|
|
2079
2157
|
version="2025-11-13",
|
|
2080
2158
|
encoder_name=EncoderName.O200K_BASE,
|
|
2081
2159
|
capabilities=[
|
|
@@ -2105,6 +2183,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
2105
2183
|
return cls(
|
|
2106
2184
|
name=model_name,
|
|
2107
2185
|
provider=LanguageModelProvider.LITELLM,
|
|
2186
|
+
family=ModelFamily.OPENAI,
|
|
2108
2187
|
version="2025-12-11",
|
|
2109
2188
|
encoder_name=EncoderName.O200K_BASE,
|
|
2110
2189
|
capabilities=[
|
|
@@ -2140,6 +2219,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
2140
2219
|
return cls(
|
|
2141
2220
|
name=model_name,
|
|
2142
2221
|
provider=LanguageModelProvider.LITELLM,
|
|
2222
|
+
family=ModelFamily.OPENAI,
|
|
2143
2223
|
version="2025-12-11",
|
|
2144
2224
|
encoder_name=EncoderName.O200K_BASE,
|
|
2145
2225
|
capabilities=[
|
|
@@ -2169,6 +2249,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
2169
2249
|
return cls(
|
|
2170
2250
|
name=model_name,
|
|
2171
2251
|
provider=LanguageModelProvider.LITELLM,
|
|
2252
|
+
family=ModelFamily.OPENAI,
|
|
2172
2253
|
version="2026-03-05",
|
|
2173
2254
|
encoder_name=EncoderName.O200K_BASE,
|
|
2174
2255
|
capabilities=[
|
|
@@ -2204,6 +2285,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
2204
2285
|
return cls(
|
|
2205
2286
|
name=model_name,
|
|
2206
2287
|
provider=LanguageModelProvider.LITELLM,
|
|
2288
|
+
family=ModelFamily.OPENAI,
|
|
2207
2289
|
version="2026-03-05",
|
|
2208
2290
|
encoder_name=EncoderName.O200K_BASE,
|
|
2209
2291
|
capabilities=[
|
|
@@ -2233,6 +2315,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
2233
2315
|
return cls(
|
|
2234
2316
|
name=model_name,
|
|
2235
2317
|
provider=LanguageModelProvider.LITELLM,
|
|
2318
|
+
family=ModelFamily.OPENAI,
|
|
2236
2319
|
version="2026-04-24",
|
|
2237
2320
|
encoder_name=EncoderName.O200K_BASE,
|
|
2238
2321
|
capabilities=[
|
|
@@ -2268,6 +2351,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
2268
2351
|
return cls(
|
|
2269
2352
|
name=model_name,
|
|
2270
2353
|
provider=LanguageModelProvider.LITELLM,
|
|
2354
|
+
family=ModelFamily.OPENAI,
|
|
2271
2355
|
version="2026-04-24",
|
|
2272
2356
|
encoder_name=EncoderName.O200K_BASE,
|
|
2273
2357
|
capabilities=[
|
|
@@ -2297,6 +2381,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
2297
2381
|
return cls(
|
|
2298
2382
|
name=model_name,
|
|
2299
2383
|
provider=LanguageModelProvider.LITELLM,
|
|
2384
|
+
family=ModelFamily.OPENAI,
|
|
2300
2385
|
version="2024-12-17",
|
|
2301
2386
|
encoder_name=EncoderName.O200K_BASE,
|
|
2302
2387
|
capabilities=[
|
|
@@ -2322,6 +2407,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
2322
2407
|
return cls(
|
|
2323
2408
|
name=model_name,
|
|
2324
2409
|
provider=LanguageModelProvider.LITELLM,
|
|
2410
|
+
family=ModelFamily.OPENAI,
|
|
2325
2411
|
version="2025-04-16",
|
|
2326
2412
|
encoder_name=EncoderName.O200K_BASE,
|
|
2327
2413
|
capabilities=[
|
|
@@ -2347,6 +2433,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
2347
2433
|
return cls(
|
|
2348
2434
|
name=model_name,
|
|
2349
2435
|
provider=LanguageModelProvider.LITELLM,
|
|
2436
|
+
family=ModelFamily.OPENAI,
|
|
2350
2437
|
version="2025-06-26",
|
|
2351
2438
|
encoder_name=EncoderName.O200K_BASE,
|
|
2352
2439
|
capabilities=[
|
|
@@ -2369,6 +2456,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
2369
2456
|
return cls(
|
|
2370
2457
|
name=model_name,
|
|
2371
2458
|
provider=LanguageModelProvider.LITELLM,
|
|
2459
|
+
family=ModelFamily.OPENAI,
|
|
2372
2460
|
version="2025-06-10",
|
|
2373
2461
|
encoder_name=EncoderName.O200K_BASE,
|
|
2374
2462
|
capabilities=[
|
|
@@ -2387,6 +2475,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
2387
2475
|
return cls(
|
|
2388
2476
|
name=model_name,
|
|
2389
2477
|
provider=LanguageModelProvider.LITELLM,
|
|
2478
|
+
family=ModelFamily.OPENAI,
|
|
2390
2479
|
version="2025-04-16",
|
|
2391
2480
|
encoder_name=EncoderName.O200K_BASE,
|
|
2392
2481
|
capabilities=[
|
|
@@ -2412,6 +2501,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
2412
2501
|
return cls(
|
|
2413
2502
|
name=model_name,
|
|
2414
2503
|
provider=LanguageModelProvider.LITELLM,
|
|
2504
|
+
family=ModelFamily.OPENAI,
|
|
2415
2505
|
version="2025-06-26",
|
|
2416
2506
|
encoder_name=EncoderName.O200K_BASE,
|
|
2417
2507
|
capabilities=[
|
|
@@ -2434,6 +2524,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
2434
2524
|
return cls(
|
|
2435
2525
|
name=model_name,
|
|
2436
2526
|
provider=LanguageModelProvider.LITELLM,
|
|
2527
|
+
family=ModelFamily.OPENAI,
|
|
2437
2528
|
version="2025-04-14",
|
|
2438
2529
|
encoder_name=EncoderName.O200K_BASE,
|
|
2439
2530
|
published_at=date(2025, 4, 14),
|
|
@@ -2455,6 +2546,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
2455
2546
|
return cls(
|
|
2456
2547
|
name=model_name,
|
|
2457
2548
|
provider=LanguageModelProvider.LITELLM,
|
|
2549
|
+
family=ModelFamily.OPENAI,
|
|
2458
2550
|
version="2025-04-14",
|
|
2459
2551
|
encoder_name=EncoderName.O200K_BASE,
|
|
2460
2552
|
published_at=date(2025, 4, 14),
|
|
@@ -2476,6 +2568,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
2476
2568
|
return cls(
|
|
2477
2569
|
name=model_name,
|
|
2478
2570
|
provider=LanguageModelProvider.LITELLM,
|
|
2571
|
+
family=ModelFamily.DEEPSEEK,
|
|
2479
2572
|
version="deepseek-r1",
|
|
2480
2573
|
encoder_name=EncoderName.DEEPSEEK,
|
|
2481
2574
|
capabilities=[
|
|
@@ -2494,6 +2587,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
2494
2587
|
return cls(
|
|
2495
2588
|
name=model_name,
|
|
2496
2589
|
provider=LanguageModelProvider.LITELLM,
|
|
2590
|
+
family=ModelFamily.DEEPSEEK,
|
|
2497
2591
|
version="deepseek-v3-1",
|
|
2498
2592
|
encoder_name=EncoderName.DEEPSEEK,
|
|
2499
2593
|
capabilities=[
|
|
@@ -2511,6 +2605,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
2511
2605
|
return cls(
|
|
2512
2606
|
name=model_name,
|
|
2513
2607
|
provider=LanguageModelProvider.LITELLM,
|
|
2608
|
+
family=ModelFamily.QWEN,
|
|
2514
2609
|
version="qwen-3",
|
|
2515
2610
|
encoder_name=EncoderName.QWEN,
|
|
2516
2611
|
capabilities=[
|
|
@@ -2529,6 +2624,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
2529
2624
|
return cls(
|
|
2530
2625
|
name=model_name,
|
|
2531
2626
|
provider=LanguageModelProvider.LITELLM,
|
|
2627
|
+
family=ModelFamily.QWEN,
|
|
2532
2628
|
version="qwen-3-thinking",
|
|
2533
2629
|
encoder_name=EncoderName.QWEN,
|
|
2534
2630
|
capabilities=[
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import sys
|
|
3
|
+
from enum import StrEnum
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
|
|
6
|
+
from pydantic import Field
|
|
7
|
+
from pydantic_settings import BaseSettings, SettingsConfigDict
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class ModelFamily(StrEnum):
|
|
11
|
+
"""Model lineage / who built the model.
|
|
12
|
+
|
|
13
|
+
Distinct from ``LanguageModelProvider`` (AZURE / LITELLM / CUSTOM), which
|
|
14
|
+
describes how the model is served. A Claude on Vertex and a Claude on
|
|
15
|
+
Anthropic share the same family but have different providers.
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
OPENAI = "openai"
|
|
19
|
+
ANTHROPIC = "anthropic"
|
|
20
|
+
GOOGLE = "google"
|
|
21
|
+
XAI = "xai"
|
|
22
|
+
DEEPSEEK = "deepseek"
|
|
23
|
+
QWEN = "qwen"
|
|
24
|
+
MISTRAL = "mistral"
|
|
25
|
+
UNKNOWN = "unknown"
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class Base(BaseSettings):
|
|
29
|
+
token_limit_multiplier: dict[ModelFamily, float] = Field(
|
|
30
|
+
default={
|
|
31
|
+
ModelFamily.ANTHROPIC: 0.75,
|
|
32
|
+
},
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def get_model_config(test: bool = False) -> SettingsConfigDict:
|
|
37
|
+
if test:
|
|
38
|
+
env_file = Path(os.getcwd()) / "tests/test.env"
|
|
39
|
+
else:
|
|
40
|
+
env_file = Path(os.getcwd()) / ".env"
|
|
41
|
+
|
|
42
|
+
return SettingsConfigDict(
|
|
43
|
+
extra="ignore",
|
|
44
|
+
env_prefix="TOOLKIT_LANGUAGE_MODEL_",
|
|
45
|
+
case_sensitive=False,
|
|
46
|
+
env_file=env_file,
|
|
47
|
+
env_file_encoding="utf-8",
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
class Settings(Base):
|
|
52
|
+
model_config = get_model_config()
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
class TestSettings(Base):
|
|
56
|
+
model_config = get_model_config(test=True)
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
def get_settings() -> Base:
|
|
60
|
+
if "pytest" in sys.modules:
|
|
61
|
+
return TestSettings()
|
|
62
|
+
return Settings()
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
env_settings: Base = get_settings()
|
{unique_toolkit-2026.22.0.dev2.dist-info → unique_toolkit-2026.22.0.dev3.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: unique-toolkit
|
|
3
|
-
Version: 2026.22.0.
|
|
3
|
+
Version: 2026.22.0.dev3
|
|
4
4
|
Summary:
|
|
5
5
|
Author: Cedric Klinkert, Martin Fadler, Sadique Sheik, Fabian Schläpfer, Pascal Hauri, Ejiroghene Oki-Peter, Rami Azouz, Ricardo Visini, Sanzio Monti
|
|
6
6
|
Author-email: Cedric Klinkert <cedric.klinkert@unique.ch>, Martin Fadler <martin.fadler@unique.ch>, Sadique Sheik <sadique@unique.ch>, Fabian Schläpfer <fabian@unique.ch>, Pascal Hauri <pascal@unique.ch>, Ejiroghene Oki-Peter <oki-peter.ejiroghene@unique.ai>, Rami Azouz <rami.ext@unique.ch>, Ricardo Visini <ricardo.visini@unique.ch>, Sanzio Monti <sanzio.monti@unique.ai>
|
|
@@ -114,7 +114,8 @@ unique_toolkit/agentic/feature_flags/__init__.py,sha256=LhE2cHoa9AYBOR7TjiIToOn4
|
|
|
114
114
|
unique_toolkit/agentic/feature_flags/feature_flags.py,sha256=fYMWDbv6Yjyb52KofGQM97KEkw7mOCzoRa9UHeul4BU,5125
|
|
115
115
|
unique_toolkit/agentic/history_manager/history_construction_with_contents.py,sha256=yqaG_tqyijgW6DEpfulg1zKtzQLewgWEegWnvZvE4P4,25849
|
|
116
116
|
unique_toolkit/agentic/history_manager/history_manager.py,sha256=1W9908BoKzBRwxaLx_AVQE4QsMHj4mq3rdeNunTpHfY,15739
|
|
117
|
-
unique_toolkit/agentic/history_manager/loop_token_reducer.py,sha256=
|
|
117
|
+
unique_toolkit/agentic/history_manager/loop_token_reducer.py,sha256=egXlsiN6QxoWM3R4DAjsuhSap7RU3DqBJeDGfw9Ndc0,26846
|
|
118
|
+
unique_toolkit/agentic/history_manager/settings.py,sha256=Lrx3a8yXeU0MXrWlV6RZSHsgYWF9Zrs8LyR96OpqQ_k,1216
|
|
118
119
|
unique_toolkit/agentic/history_manager/utils.py,sha256=hYgaahQq9gKm7V2Q5qnyZtqw5opO-MKH7wTGq9-iEgE,6455
|
|
119
120
|
unique_toolkit/agentic/loop_runner/__init__.py,sha256=KPZLJ9fCzR9mwnvAgrA_dPsDJlcQS8o0r0amNdmBljY,1352
|
|
120
121
|
unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py,sha256=et9GRfzgXc50zUJ1ptWTQvZvEWx23fXJHV6JTp2AW14,3673
|
|
@@ -366,11 +367,12 @@ unique_toolkit/language_model/builder.py,sha256=KwBzsD6-fvQnB4p2I7M-5Tk6j4tmQ973
|
|
|
366
367
|
unique_toolkit/language_model/constants.py,sha256=B-topqW0r83dkC_25DeQfnPk3n53qzIHUCBS7YJ0-1U,119
|
|
367
368
|
unique_toolkit/language_model/default_language_model.py,sha256=mcyuFs_V6tp52C8xJSHiEHO4kFGj6xed1gvozvCRD7k,1181
|
|
368
369
|
unique_toolkit/language_model/functions.py,sha256=iTxCpcavUp1kAitJi16SIL33Y442aWKWH4W2qPpLfts,23054
|
|
369
|
-
unique_toolkit/language_model/infos.py,sha256=
|
|
370
|
+
unique_toolkit/language_model/infos.py,sha256=WHhMhFEnysf7g6bX3OfZdJy0TapHROW24vXcrIJ4CIY,128890
|
|
370
371
|
unique_toolkit/language_model/prompt.py,sha256=JSawaLjQg3VR-E2fK8engFyJnNdk21zaO8pPIodzN4Q,3991
|
|
371
372
|
unique_toolkit/language_model/reference.py,sha256=T3wr2jP_uRg5wKVIbKqLbxJlcgxfbZQGq3XdjbQ2kSo,6984
|
|
372
373
|
unique_toolkit/language_model/schemas.py,sha256=JQv3HmQ9WwuxC86QYVAAW0ms-cd1oyp_6rRhAmZEgIQ,29141
|
|
373
374
|
unique_toolkit/language_model/service.py,sha256=mzHYppmbFxXRHzsmQ4i_z9N4fheIEjomJeuGaEOFs9Y,12025
|
|
375
|
+
unique_toolkit/language_model/settings.py,sha256=xkoMv3ATb2ft5V3MA8JvqW-EO8AnZ5t-6rvdbTx6lFU,1490
|
|
374
376
|
unique_toolkit/language_model/stream_transform.py,sha256=iNNGpLY_7G6Bpp9Y4KtbIkQm3WB4yZt75BXcqx0DVkI,2775
|
|
375
377
|
unique_toolkit/language_model/utils.py,sha256=bPQ4l6_YO71w-zaIPanUUmtbXC1_hCvLK0tAFc3VCRc,1902
|
|
376
378
|
unique_toolkit/monitoring/__init__.py,sha256=z1gkOCLxGcg936MFuLSeWFa0tREcBFSUbV09NxilBw4,1065
|
|
@@ -389,6 +391,6 @@ unique_toolkit/short_term_memory/service.py,sha256=Ncw0_0CNM6kmzJSLVJGG5GcKpBduI
|
|
|
389
391
|
unique_toolkit/smart_rules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
390
392
|
unique_toolkit/smart_rules/compile.py,sha256=Ozhh70qCn2yOzRWr9d8WmJeTo7AQurwd3tStgBMPFLA,1246
|
|
391
393
|
unique_toolkit/test_utilities/events.py,sha256=FLrhMh0A_mQutAUjoD0FdMcVQ4Gq31r35OVGzRjvLro,6760
|
|
392
|
-
unique_toolkit-2026.22.0.
|
|
393
|
-
unique_toolkit-2026.22.0.
|
|
394
|
-
unique_toolkit-2026.22.0.
|
|
394
|
+
unique_toolkit-2026.22.0.dev3.dist-info/WHEEL,sha256=eh7sammvW2TypMMMGKgsM83HyA_3qQ5Lgg3ynoecH3M,79
|
|
395
|
+
unique_toolkit-2026.22.0.dev3.dist-info/METADATA,sha256=ql-F_dmlVgC4sPIkrVZHlim4r7zkcVkUytxOiIltzew,7392
|
|
396
|
+
unique_toolkit-2026.22.0.dev3.dist-info/RECORD,,
|
|
File without changes
|