model-library 0.1.3__py3-none-any.whl → 0.1.5__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.
Files changed (37) hide show
  1. model_library/base/base.py +2 -0
  2. model_library/base/output.py +24 -9
  3. model_library/base/utils.py +27 -5
  4. model_library/config/README.md +169 -0
  5. model_library/config/ai21labs_models.yaml +11 -11
  6. model_library/config/alibaba_models.yaml +21 -22
  7. model_library/config/all_models.json +4623 -2599
  8. model_library/config/amazon_models.yaml +100 -102
  9. model_library/config/anthropic_models.yaml +43 -52
  10. model_library/config/cohere_models.yaml +25 -24
  11. model_library/config/deepseek_models.yaml +28 -25
  12. model_library/config/dummy_model.yaml +9 -7
  13. model_library/config/fireworks_models.yaml +86 -56
  14. model_library/config/google_models.yaml +146 -126
  15. model_library/config/inception_models.yaml +6 -6
  16. model_library/config/kimi_models.yaml +13 -14
  17. model_library/config/minimax_models.yaml +37 -0
  18. model_library/config/mistral_models.yaml +85 -29
  19. model_library/config/openai_models.yaml +192 -150
  20. model_library/config/perplexity_models.yaml +10 -23
  21. model_library/config/together_models.yaml +115 -104
  22. model_library/config/xai_models.yaml +47 -79
  23. model_library/config/zai_models.yaml +23 -15
  24. model_library/exceptions.py +7 -16
  25. model_library/providers/amazon.py +32 -17
  26. model_library/providers/minimax.py +33 -0
  27. model_library/providers/mistral.py +10 -1
  28. model_library/providers/openai.py +2 -6
  29. model_library/register_models.py +36 -36
  30. model_library/registry_utils.py +78 -16
  31. model_library/utils.py +2 -2
  32. {model_library-0.1.3.dist-info → model_library-0.1.5.dist-info}/METADATA +2 -2
  33. model_library-0.1.5.dist-info/RECORD +64 -0
  34. model_library-0.1.3.dist-info/RECORD +0 -61
  35. {model_library-0.1.3.dist-info → model_library-0.1.5.dist-info}/WHEEL +0 -0
  36. {model_library-0.1.3.dist-info → model_library-0.1.5.dist-info}/licenses/LICENSE +0 -0
  37. {model_library-0.1.3.dist-info → model_library-0.1.5.dist-info}/top_level.txt +0 -0
@@ -27,9 +27,25 @@ You can set metadata configs that are not passed into the LLMConfig class here,
27
27
  """
28
28
 
29
29
 
30
+ class Supports(BaseModel):
31
+ images: bool | None = None
32
+ videos: bool | None = None
33
+ files: bool | None = None
34
+ batch: bool | None = None
35
+ temperature: bool | None = None
36
+ tools: bool | None = None
37
+
38
+
39
+ class Metadata(BaseModel):
40
+ deprecated: bool = False
41
+ available_for_everyone: bool = True
42
+ available_as_evaluator: bool = False
43
+ ignored_for_cost: bool = False
44
+
45
+
30
46
  class Properties(BaseModel):
31
47
  context_window: int | None = None
32
- max_token_output: int | None = None
48
+ max_tokens: int | None = None
33
49
  training_cutoff: str | None = None
34
50
  reasoning_model: bool | None = None
35
51
 
@@ -118,28 +134,6 @@ class CostProperties(BaseModel):
118
134
  context: ContextCost | None = None
119
135
 
120
136
 
121
- class ClassProperties(BaseModel):
122
- supports_images: bool | None = None
123
- supports_videos: bool | None = None
124
- supports_files: bool | None = None
125
- supports_batch_requests: bool | None = None
126
- supports_temperature: bool | None = None
127
- supports_tools: bool | None = None
128
- # vals specific
129
- deprecated: bool = False
130
- available_for_everyone: bool = True
131
- available_as_evaluator: bool = False
132
- ignored_for_cost: bool = False
133
-
134
-
135
- """
136
- Each provider can have a set of provider-specific properties, we however want to accept
137
- any possible property from a provider in the yaml, and validate later. So we join all
138
- provider-specific properties into a single class.
139
- This has no effect on runtime use of ProviderConfig, only used to load the yaml
140
- """
141
-
142
-
143
137
  class BaseProviderProperties(BaseModel):
144
138
  """Static base class for dynamic ProviderProperties."""
145
139
 
@@ -172,9 +166,9 @@ def get_dynamic_provider_properties_model() -> type[BaseProviderProperties]:
172
166
 
173
167
 
174
168
  class DefaultParameters(BaseModel):
175
- max_output_tokens: int | None = None
176
169
  temperature: float | None = None
177
170
  top_p: float | None = None
171
+ top_k: int | None = None
178
172
  reasoning_effort: str | None = None
179
173
 
180
174
 
@@ -186,26 +180,29 @@ class RawModelConfig(BaseModel):
186
180
  open_source: bool
187
181
  documentation_url: str | None = None
188
182
  properties: Properties = Field(default_factory=Properties)
189
- class_properties: ClassProperties = Field(default_factory=ClassProperties)
190
- provider_properties: BaseProviderProperties | None = None
183
+ supports: Supports
184
+ metadata: Metadata = Field(default_factory=Metadata)
185
+ provider_properties: BaseProviderProperties = Field(
186
+ default_factory=BaseProviderProperties
187
+ )
191
188
  costs_per_million_token: CostProperties = Field(default_factory=CostProperties)
192
189
  alternative_keys: list[str | dict[str, Any]] = Field(default_factory=list)
193
190
  default_parameters: DefaultParameters = Field(default_factory=DefaultParameters)
191
+ provider_endpoint: str | None = None
194
192
 
195
193
  def model_dump(self, *args: object, **kwargs: object):
196
194
  data = super().model_dump(*args, **kwargs)
197
- if self.provider_properties is not None:
198
- # explicitly dump dynamic ProviderProperties instance
199
- data["provider_properties"] = self.provider_properties.model_dump(
200
- *args, **kwargs
201
- )
195
+ # explicitly dump dynamic ProviderProperties instance
196
+ data["provider_properties"] = self.provider_properties.model_dump(
197
+ *args, **kwargs
198
+ )
202
199
  return data
203
200
 
204
201
 
205
202
  class ModelConfig(RawModelConfig):
206
203
  # post processing fields
204
+ provider_endpoint: str # pyright: ignore[reportIncompatibleVariableOverride, reportGeneralTypeIssues]
207
205
  provider_name: str
208
- provider_endpoint: str
209
206
  full_key: str
210
207
  slug: str
211
208
 
@@ -272,14 +269,17 @@ def _register_models() -> ModelRegistry:
272
269
  current_model_config, model_config
273
270
  )
274
271
 
272
+ provider_properties = current_model_config.pop(
273
+ "provider_properties", {}
274
+ )
275
+
275
276
  # create model config object
276
277
  raw_model_obj: RawModelConfig = RawModelConfig.model_validate(
277
- current_model_config, strict=True
278
+ current_model_config, strict=True, extra="forbid"
278
279
  )
279
280
 
280
281
  provider_endpoint = (
281
- current_model_config.get("provider_endpoint", None)
282
- or model_name.split("/", 1)[1]
282
+ raw_model_obj.provider_endpoint or model_name.split("/", 1)[1]
283
283
  )
284
284
  # add provider metadata
285
285
  model_obj = ModelConfig.model_validate(
@@ -293,7 +293,7 @@ def _register_models() -> ModelRegistry:
293
293
  )
294
294
  # load provider properties separately since the model was generated at runtime
295
295
  model_obj.provider_properties = ProviderProperties.model_validate(
296
- current_model_config.get("provider_properties", {})
296
+ provider_properties
297
297
  )
298
298
 
299
299
  registry[model_name] = model_obj
@@ -1,9 +1,11 @@
1
1
  from functools import cache
2
2
  from pathlib import Path
3
+ from typing import TypedDict
3
4
 
4
5
  import tiktoken
5
6
 
6
7
  from model_library.base import LLM, LLMConfig, ProviderConfig
8
+ from model_library.base.output import QueryResultCost, QueryResultMetadata
7
9
  from model_library.register_models import (
8
10
  CostProperties,
9
11
  ModelConfig,
@@ -25,29 +27,31 @@ def create_config(
25
27
  config: object = {}
26
28
 
27
29
  properties = registry_config.properties
28
- class_properties = registry_config.class_properties
30
+ supports = registry_config.supports
29
31
  provider_properties = registry_config.provider_properties
30
32
  defaults = registry_config.default_parameters
31
33
 
32
34
  if properties:
33
- if properties.max_token_output is not None:
34
- config["max_tokens"] = properties.max_token_output
35
+ if properties.max_tokens is not None:
36
+ config["max_tokens"] = properties.max_tokens
35
37
  if properties.reasoning_model is not None:
36
38
  config["reasoning"] = properties.reasoning_model
37
39
 
38
- if class_properties:
39
- if class_properties.supports_images is not None:
40
- config["supports_images"] = class_properties.supports_images
41
- if class_properties.supports_files is not None:
42
- config["supports_files"] = class_properties.supports_files
43
- if class_properties.supports_videos is not None:
44
- config["supports_videos"] = class_properties.supports_videos
45
- if class_properties.supports_batch_requests is not None:
46
- config["supports_batch"] = class_properties.supports_batch_requests
47
- if class_properties.supports_temperature is not None:
48
- config["supports_temperature"] = class_properties.supports_temperature
49
- if class_properties.supports_tools is not None:
50
- config["supports_tools"] = class_properties.supports_tools
40
+ if supports:
41
+ if supports.images is not None:
42
+ config["supports_images"] = supports.images
43
+ if supports.files is not None:
44
+ config["supports_files"] = supports.files
45
+ if supports.videos is not None:
46
+ config["supports_videos"] = supports.videos
47
+ if supports.batch is not None:
48
+ config["supports_batch"] = supports.batch
49
+ if supports.temperature is not None:
50
+ config["supports_temperature"] = supports.temperature
51
+ if supports.tools is not None:
52
+ config["supports_tools"] = supports.tools
53
+ else:
54
+ raise Exception(f"{registry_config.label} has no supports")
51
55
 
52
56
  # load provider config with correct type
53
57
  if provider_properties:
@@ -127,6 +131,64 @@ def get_model_cost(model_str: str) -> CostProperties | None:
127
131
  return model_config.costs_per_million_token
128
132
 
129
133
 
134
+ class TokenDict(TypedDict, total=False):
135
+ """Token counts for cost calculation."""
136
+
137
+ in_tokens: int
138
+ out_tokens: int
139
+ reasoning_tokens: int | None
140
+ cache_read_tokens: int | None
141
+ cache_write_tokens: int | None
142
+
143
+
144
+ async def recompute_cost(
145
+ model_str: str,
146
+ tokens: TokenDict,
147
+ ) -> QueryResultCost:
148
+ """
149
+ Recompute the cost for a model based on token information.
150
+
151
+ Uses the model provider's existing _calculate_cost method to ensure
152
+ provider-specific cost calculations are applied.
153
+
154
+ Args:
155
+ model_str: The model identifier (e.g., "openai/gpt-4o")
156
+ tokens: Dictionary containing token counts with keys:
157
+ - in_tokens (required): Number of input tokens
158
+ - out_tokens (required): Number of output tokens
159
+ - reasoning_tokens (optional): Number of reasoning tokens
160
+ - cache_read_tokens (optional): Number of cache read tokens
161
+ - cache_write_tokens (optional): Number of cache write tokens
162
+
163
+ Returns:
164
+ QueryResultCost with computed costs
165
+
166
+ Raises:
167
+ ValueError: If required token parameters are missing
168
+ Exception: If model not found in registry or costs not configured
169
+ """
170
+ if "in_tokens" not in tokens:
171
+ raise ValueError("Token dict must contain 'in_tokens'")
172
+ if "out_tokens" not in tokens:
173
+ raise ValueError("Token dict must contain 'out_tokens'")
174
+
175
+ model = get_registry_model(model_str)
176
+
177
+ metadata = QueryResultMetadata(
178
+ in_tokens=tokens["in_tokens"],
179
+ out_tokens=tokens["out_tokens"],
180
+ reasoning_tokens=tokens.get("reasoning_tokens"),
181
+ cache_read_tokens=tokens.get("cache_read_tokens"),
182
+ cache_write_tokens=tokens.get("cache_write_tokens"),
183
+ )
184
+
185
+ cost = await model._calculate_cost(metadata) # type: ignore[arg-type]
186
+ if cost is None:
187
+ raise Exception(f"No cost information available for model {model_str}")
188
+
189
+ return cost
190
+
191
+
130
192
  @cache
131
193
  def get_provider_names() -> list[str]:
132
194
  """Return all provider names in the registry"""
model_library/utils.py CHANGED
@@ -39,9 +39,9 @@ def deep_model_dump(obj: object) -> object:
39
39
 
40
40
  def default_httpx_client():
41
41
  return httpx.AsyncClient(
42
- timeout=httpx.Timeout(timeout=30 * 60, connect=60),
42
+ timeout=httpx.Timeout(None),
43
43
  limits=httpx.Limits(
44
- max_connections=1000, max_keepalive_connections=100
44
+ max_connections=2000, max_keepalive_connections=300
45
45
  ), # TODO: increase, but make sure prod enough sockets to not hit file descriptor limit
46
46
  )
47
47
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: model-library
3
- Version: 0.1.3
3
+ Version: 0.1.5
4
4
  Summary: Model Library for vals.ai
5
5
  Author-email: "Vals AI, Inc." <contact@vals.ai>
6
6
  License: MIT
@@ -15,7 +15,7 @@ Requires-Dist: backoff<3.0,>=2.2.1
15
15
  Requires-Dist: redis<7.0,>=6.2.0
16
16
  Requires-Dist: tiktoken==0.11.0
17
17
  Requires-Dist: pillow
18
- Requires-Dist: openai<2.0,>=1.97.1
18
+ Requires-Dist: openai<3.0,>=2.0
19
19
  Requires-Dist: anthropic<1.0,>=0.57.1
20
20
  Requires-Dist: mistralai<2.0,>=1.9.10
21
21
  Requires-Dist: xai-sdk<2.0,>=1.0.0
@@ -0,0 +1,64 @@
1
+ model_library/__init__.py,sha256=AKc_15aklOf-LbcS9z1Xer_moRWNpG6Dh3kqvSQ0nOI,714
2
+ model_library/exceptions.py,sha256=ZHMr6lloXZz4V4Wy1UP8zc1CdUHx6-IS9_rOi6oN45s,8680
3
+ model_library/file_utils.py,sha256=FAZRRtDT8c4Rjfoj64Te3knEHggXAAfRRuS8WLCsSe8,3682
4
+ model_library/logging.py,sha256=McyaPHUk7RkB38-LrfnudrrU1B62ta8wAbbIBwLRmj0,853
5
+ model_library/model_utils.py,sha256=l8oCltGeimMGtnne_3Q1EguVtzCj61UMsLsma-1czwg,753
6
+ model_library/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
+ model_library/register_models.py,sha256=CY3Wd16AcWf7tYu_O2I2_kg_hdvQJFcvyQQA2OUu2SA,13646
8
+ model_library/registry_utils.py,sha256=BVauHcP02Et2maLxowNBbdpGd32cnLz1_zSjDLVJjp0,8843
9
+ model_library/settings.py,sha256=QyeUqzWBpexFi014L_mZkoXP49no3SAQNJRObATXrL8,873
10
+ model_library/utils.py,sha256=T91ACGTc-KtksVyMFspt-vJtR5I-xcO3nVfH6SltmMU,3988
11
+ model_library/base/__init__.py,sha256=TtxCXGUtkEqWZNMMofLPuC4orN7Ja2hemtbtHitt_UA,266
12
+ model_library/base/base.py,sha256=HXxImh2H-GIIiVGNqV7gRPi0HH1KJxB_4ckuKyEqAYo,14139
13
+ model_library/base/batch.py,sha256=-jd6L0ECc5pkj73zoX2ZYcv_9iQdqxEi1kEilwaXWSA,2895
14
+ model_library/base/delegate_only.py,sha256=V2MzENtvBg0pySKncgE-mfCLBhhRZ0y4BntQwQsxbqU,2111
15
+ model_library/base/input.py,sha256=Nhg8Ril1kFau1DnE8u102JC1l-vxNd-v9e3SjovR-Do,1876
16
+ model_library/base/output.py,sha256=Ak6CJRYqtjYILsSWkfE70fSK3yvP7v_n5NYfysMaIL4,7464
17
+ model_library/base/utils.py,sha256=YGQLPyQgCbfHNBxyTxCvpZNZ-ctEji258IdfMiXUJXs,1962
18
+ model_library/config/README.md,sha256=i8_wHnlI6uHIqWN9fYBkDCglZM2p5ZMVD3SLlxiwUVk,4274
19
+ model_library/config/ai21labs_models.yaml,sha256=ZWHhk1cep2GQIYHqkTS_0152mF3oZg2tSzMPmvfMRSI,2478
20
+ model_library/config/alibaba_models.yaml,sha256=-RLWOwh3ZaCQqjaZ-4Zw0BJNVE6JVHJ8Ggm9gQJZ6QI,2082
21
+ model_library/config/all_models.json,sha256=suyLLiU87NbUjWsnGeUpd94aIQ6UPyEURtPh48AW4-4,530914
22
+ model_library/config/amazon_models.yaml,sha256=HgLmhpfedHCQtkPEviEJCBbAb-dNQPOnVtf4UnwrDds,7654
23
+ model_library/config/anthropic_models.yaml,sha256=bTc_3Oqn4wCdq-dcWcEfmXrPVZjcR8-V6pTao7sGa_E,10475
24
+ model_library/config/cohere_models.yaml,sha256=ZfWrS1K45Hxd5nT_gpP5YGAovJcBIlLNIdaRyE3V-7o,5022
25
+ model_library/config/deepseek_models.yaml,sha256=4CCrf-4UPBgFCrS6CQa3vzNiaYlD4B6dFJFK_kIYBWY,1156
26
+ model_library/config/dummy_model.yaml,sha256=lImYJBtBVJk_jgnLbkuSyOshQphVlYCMkw-UiJIBYhY,877
27
+ model_library/config/fireworks_models.yaml,sha256=BMyQqjEpayNfSVGekzOFNIx7Ng3QOfPtldw5k2msqX0,6269
28
+ model_library/config/google_models.yaml,sha256=Rg127nsBbHpk62X7WBq2ckdHo0bwYM0NVjF7T2h_1c0,16494
29
+ model_library/config/inception_models.yaml,sha256=YCqfQlkH_pTdHIKee5dP_aRFXw_fTIEQCpUvX2bwO0M,560
30
+ model_library/config/kimi_models.yaml,sha256=AAqse_BCE-lrHkJHIWJVqMtttnZQCa-5Qy5qiLUJjYs,755
31
+ model_library/config/minimax_models.yaml,sha256=IttkpdBrp75J9WZQ0IRE4m4eSfd0LonfcA9OtrzJrMY,873
32
+ model_library/config/mistral_models.yaml,sha256=mYKYSzJl24lUiA_erSkom7nCBxAoeJ57Mi3090q1ArM,5162
33
+ model_library/config/openai_models.yaml,sha256=1lKsTQwsxMMJqXtEoYs3liy6NcaK4p8NN7b-GSFnl8k,25261
34
+ model_library/config/perplexity_models.yaml,sha256=WUDqhLvnB0kQhCCwPv19FYLHozet3m33Spdo6bGff3Q,2336
35
+ model_library/config/together_models.yaml,sha256=BeqRJonYzPvWwoLfkyH0RMRKBYUrCSEQhg_25Nvx97M,23867
36
+ model_library/config/xai_models.yaml,sha256=2KRNNQy3kV-4xxSfhj7Uhp9TZF-S5qPlM8Ef-04zv8Y,7985
37
+ model_library/config/zai_models.yaml,sha256=Esa4P-zc5K1pejQTylKPe-uiH9AnvB_Zn7RB_sAZ5mU,1577
38
+ model_library/providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
+ model_library/providers/ai21labs.py,sha256=7PnXKl-Fv8KlE95eBv2izbFg1u7utDRQPdWXYVl_-as,5832
40
+ model_library/providers/alibaba.py,sha256=k6LZErV_l9oTFTdKTwyw1SXD509Rl3AqFbN8umCryEE,2941
41
+ model_library/providers/amazon.py,sha256=jRqOYCnxiONlbjT2C0UuFIrFOMU4d-hvLElPp41n5Ds,14015
42
+ model_library/providers/anthropic.py,sha256=6YI04jdDDtDjLS17jThVYlNvLbqd9THrKAtaVTYL6eg,22194
43
+ model_library/providers/azure.py,sha256=brQNCED-zHvYjL5K5hdjFBNso6hJZg0HTHNnAgJPPG0,1408
44
+ model_library/providers/cohere.py,sha256=lCBm1PP1l_UOa1pKFMIZM3C0wCv3QWB6UP0-jvjkFa4,1066
45
+ model_library/providers/deepseek.py,sha256=7T4lxDiV5wmWUK7TAKwr332_T6uyXNCOiirZOCCETL0,1159
46
+ model_library/providers/fireworks.py,sha256=w-5mOF5oNzqx_0ijCoTm1lSn2ZHwhp6fURKhV3LEqIc,2309
47
+ model_library/providers/inception.py,sha256=Nrky53iujIM9spAWoNRtoJg2inFiL0li6E75vT3b6V8,1107
48
+ model_library/providers/kimi.py,sha256=zzvcKpZLsM1xPebpLeMxNKTt_FRiLN1rFWrIly7wfXA,1092
49
+ model_library/providers/minimax.py,sha256=HkM601mxTC0tpDGtxLTGq5IwnCfFfHG4EF6l1Bg77K4,1001
50
+ model_library/providers/mistral.py,sha256=9zGYLpkn436ahZ716-5R5AQzn7htwVres1IjP5x5bFw,9745
51
+ model_library/providers/openai.py,sha256=1PNmS-0ERjqLzWS9Prr1_cUpctyEj_xp15XOpl9-IGE,33421
52
+ model_library/providers/perplexity.py,sha256=eIzzkaZ4ZMlRKFVI9bnwyo91iJkh7aEmJ-0_4OKeAWc,1083
53
+ model_library/providers/together.py,sha256=7Y4QLnX8c_fyXUud-W_C1gidmROQainTgODBwbvFyXQ,2033
54
+ model_library/providers/vals.py,sha256=VLF1rsCR13a_kmtZfboDzJJ64Io_tBFe60vf-0BdYPc,9830
55
+ model_library/providers/xai.py,sha256=oJiMICYLkybHpLv77PmMbi1Xj9IUZmKX3kANksjjFEQ,10828
56
+ model_library/providers/zai.py,sha256=O_GM6KlJ0fM2wYoxO9xrCWfnpYH7IpoKEzjiD4jB8Kc,1050
57
+ model_library/providers/google/__init__.py,sha256=ypuLVL_QJEQ7C3S47FhC9y4wyawYOdGikAViJmACI0U,115
58
+ model_library/providers/google/batch.py,sha256=4TE90Uo1adi54dVtGcGyUAxw11YExJq-Y4KmkQ-cyHA,9978
59
+ model_library/providers/google/google.py,sha256=s9vky9r5SVNhBvMXcIr0_h0MlKLXwx_tQlZzs57xXYo,16507
60
+ model_library-0.1.5.dist-info/licenses/LICENSE,sha256=x6mf4o7U_wHaaqcfxoU-0R6uYJLbqL_TNuoULP3asaA,1070
61
+ model_library-0.1.5.dist-info/METADATA,sha256=HeLAgZOFNM7TBGJm2bfubjspsa388C0Va1hcWO-uu6I,6989
62
+ model_library-0.1.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
63
+ model_library-0.1.5.dist-info/top_level.txt,sha256=HtQYxA_7RP8UT35I6VcUw20L6edI0Zf2t5Ys1uDGVjs,14
64
+ model_library-0.1.5.dist-info/RECORD,,
@@ -1,61 +0,0 @@
1
- model_library/__init__.py,sha256=AKc_15aklOf-LbcS9z1Xer_moRWNpG6Dh3kqvSQ0nOI,714
2
- model_library/exceptions.py,sha256=BWM3Gk7Lh_H4ttKtkvr4zcj01_UXb8e1PbKn8bl5Fgg,8953
3
- model_library/file_utils.py,sha256=FAZRRtDT8c4Rjfoj64Te3knEHggXAAfRRuS8WLCsSe8,3682
4
- model_library/logging.py,sha256=McyaPHUk7RkB38-LrfnudrrU1B62ta8wAbbIBwLRmj0,853
5
- model_library/model_utils.py,sha256=l8oCltGeimMGtnne_3Q1EguVtzCj61UMsLsma-1czwg,753
6
- model_library/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
- model_library/register_models.py,sha256=iVmzLDraUfzwF_bPz6DI2zMIeSUG1UQO9IdmGZTTui4,13853
8
- model_library/registry_utils.py,sha256=Op1NnQGD0XZyP032pGJdWdHgdEoHwKOcoWNCihT69SE,6977
9
- model_library/settings.py,sha256=QyeUqzWBpexFi014L_mZkoXP49no3SAQNJRObATXrL8,873
10
- model_library/utils.py,sha256=jQqBbP9vafpuFxp7kb53XYvCAtW79FtFJelnGGPn-pQ,4011
11
- model_library/base/__init__.py,sha256=TtxCXGUtkEqWZNMMofLPuC4orN7Ja2hemtbtHitt_UA,266
12
- model_library/base/base.py,sha256=AyUt3XeFX3l1mVPf57IfqOnINdF3p2ziv5R3wz44VkM,14064
13
- model_library/base/batch.py,sha256=-jd6L0ECc5pkj73zoX2ZYcv_9iQdqxEi1kEilwaXWSA,2895
14
- model_library/base/delegate_only.py,sha256=V2MzENtvBg0pySKncgE-mfCLBhhRZ0y4BntQwQsxbqU,2111
15
- model_library/base/input.py,sha256=Nhg8Ril1kFau1DnE8u102JC1l-vxNd-v9e3SjovR-Do,1876
16
- model_library/base/output.py,sha256=v4s8Q_gYG2zxhhHQnDsAWFNPZHDx_kyLAhK7kxRhPjA,6673
17
- model_library/base/utils.py,sha256=KJZRVWr38Tik3yNJvTXnBy62ccilzzmSxHZFpQBJMPo,1330
18
- model_library/config/ai21labs_models.yaml,sha256=ykOwxkeWrhO98-V3sC5-FwXs0WLEeD1GZrM-VdTpF9o,2577
19
- model_library/config/alibaba_models.yaml,sha256=2tIdj_7Qiw_-jZmutdtdJWyAXPl4WEFh1ij3ubymov0,2252
20
- model_library/config/all_models.json,sha256=0i0aND49z9aBG19JpZp5Kk3Kt2nuj_mHaBJ9ZexYkwQ,497215
21
- model_library/config/amazon_models.yaml,sha256=RGj7DH0IzXNs4JmAk6adC2jUEefVxBJNVQIB-n-fXbc,8988
22
- model_library/config/anthropic_models.yaml,sha256=HszgDVQpv9EwSKwXd7T-eYIdQ3Ue07uNm8QjeRirFY0,11074
23
- model_library/config/cohere_models.yaml,sha256=BQSqIsGUXvULeFLGDFJNBxen-6CC5hKNW2s4lSC8Np0,5186
24
- model_library/config/deepseek_models.yaml,sha256=42bfyNZtaiOYx188FMqkfuCBSLNM1EBTYzf7hwzsjHw,1318
25
- model_library/config/dummy_model.yaml,sha256=CTnSdFYC-KTsHt5TvS0echWwUlb_H3eATZL1tVIkXkM,915
26
- model_library/config/fireworks_models.yaml,sha256=VG_Fo8X6qSA3VALn1SKehjj3B1HP0XO1fCYDdaCUdnM,5905
27
- model_library/config/google_models.yaml,sha256=kymR44OrrTygVSqI2PH3ffbpVYRuoxsAVP9ERq2fS18,16855
28
- model_library/config/inception_models.yaml,sha256=g6PC0qjEC2SUPTo2Rad34Dl8dt8ZBv1svaaP2_PIrYg,660
29
- model_library/config/kimi_models.yaml,sha256=BySTLTc0m24oBC94VegosQgxpHglthe5dGRwF-fyduo,840
30
- model_library/config/mistral_models.yaml,sha256=MjKEYFYcGBsFd6iXekE_1oGa3CmEWAVPABJR94gV6SE,3839
31
- model_library/config/openai_models.yaml,sha256=iSrX7WAZoNJOmVxrtEStnvRc-Md9z0CFYAIcC7GC_w8,25130
32
- model_library/config/perplexity_models.yaml,sha256=avTBrwnG-5Y6kle9t9vBrwcImhSzw-dgoYQuaw7K7Rs,2962
33
- model_library/config/together_models.yaml,sha256=VA2cuo9hgrQW3yOz5sYfUcMoU_AgNifQ6k1MjiXO3jk,24454
34
- model_library/config/xai_models.yaml,sha256=xqXhXT3vpYC1iMzdnotj75oJ98nOwY6oFQY4gobAOmg,9328
35
- model_library/config/zai_models.yaml,sha256=lyAUPp4qOxkAAKCcbX48IKLaYYPAkp-Jn1wyCjLqmeA,1396
36
- model_library/providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
- model_library/providers/ai21labs.py,sha256=7PnXKl-Fv8KlE95eBv2izbFg1u7utDRQPdWXYVl_-as,5832
38
- model_library/providers/alibaba.py,sha256=k6LZErV_l9oTFTdKTwyw1SXD509Rl3AqFbN8umCryEE,2941
39
- model_library/providers/amazon.py,sha256=Qd5zAEn71WVo6c8mpPW0gE7WHLarzKzh6r4b_R4FaYk,13137
40
- model_library/providers/anthropic.py,sha256=6YI04jdDDtDjLS17jThVYlNvLbqd9THrKAtaVTYL6eg,22194
41
- model_library/providers/azure.py,sha256=brQNCED-zHvYjL5K5hdjFBNso6hJZg0HTHNnAgJPPG0,1408
42
- model_library/providers/cohere.py,sha256=lCBm1PP1l_UOa1pKFMIZM3C0wCv3QWB6UP0-jvjkFa4,1066
43
- model_library/providers/deepseek.py,sha256=7T4lxDiV5wmWUK7TAKwr332_T6uyXNCOiirZOCCETL0,1159
44
- model_library/providers/fireworks.py,sha256=w-5mOF5oNzqx_0ijCoTm1lSn2ZHwhp6fURKhV3LEqIc,2309
45
- model_library/providers/inception.py,sha256=Nrky53iujIM9spAWoNRtoJg2inFiL0li6E75vT3b6V8,1107
46
- model_library/providers/kimi.py,sha256=zzvcKpZLsM1xPebpLeMxNKTt_FRiLN1rFWrIly7wfXA,1092
47
- model_library/providers/mistral.py,sha256=DHl0BYUZOrCvD4La5cyzcpQKHh4RbTbgMORWFbU_TuQ,9536
48
- model_library/providers/openai.py,sha256=ztJgx17e5PbbLVKsRA5Op0rczMsY4YNcgvRGKHRGlUQ,33572
49
- model_library/providers/perplexity.py,sha256=eIzzkaZ4ZMlRKFVI9bnwyo91iJkh7aEmJ-0_4OKeAWc,1083
50
- model_library/providers/together.py,sha256=7Y4QLnX8c_fyXUud-W_C1gidmROQainTgODBwbvFyXQ,2033
51
- model_library/providers/vals.py,sha256=VLF1rsCR13a_kmtZfboDzJJ64Io_tBFe60vf-0BdYPc,9830
52
- model_library/providers/xai.py,sha256=oJiMICYLkybHpLv77PmMbi1Xj9IUZmKX3kANksjjFEQ,10828
53
- model_library/providers/zai.py,sha256=O_GM6KlJ0fM2wYoxO9xrCWfnpYH7IpoKEzjiD4jB8Kc,1050
54
- model_library/providers/google/__init__.py,sha256=ypuLVL_QJEQ7C3S47FhC9y4wyawYOdGikAViJmACI0U,115
55
- model_library/providers/google/batch.py,sha256=4TE90Uo1adi54dVtGcGyUAxw11YExJq-Y4KmkQ-cyHA,9978
56
- model_library/providers/google/google.py,sha256=s9vky9r5SVNhBvMXcIr0_h0MlKLXwx_tQlZzs57xXYo,16507
57
- model_library-0.1.3.dist-info/licenses/LICENSE,sha256=x6mf4o7U_wHaaqcfxoU-0R6uYJLbqL_TNuoULP3asaA,1070
58
- model_library-0.1.3.dist-info/METADATA,sha256=qnQqa4o9vNXB74vfgytR3qYSNr16HBOT7_iSDeAx0zw,6992
59
- model_library-0.1.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
60
- model_library-0.1.3.dist-info/top_level.txt,sha256=HtQYxA_7RP8UT35I6VcUw20L6edI0Zf2t5Ys1uDGVjs,14
61
- model_library-0.1.3.dist-info/RECORD,,