返回提交历史
Modified
g4f/Provider/PollinationsAI.py
+4
-3
Modified
g4f/Provider/needs_auth/LMArenaBeta.py
+11
-12
XFEstudio/gpt4free
Fix model lists in LMArena
6473c768
代码差异
2 个文件
+15
-15
@@ -13,7 +13,7 @@ from .helper import filter_none, format_media_prompt
13
13
from .base_provider import AsyncGeneratorProvider, ProviderModelMixin
14
14
from ..typing import AsyncResult, Messages, MediaListType
15
15
from ..image import is_data_an_audio
16
from ..errors import ModelNotFoundError, MissingAuthError
16
from ..errors import MissingAuthError
17
17
from ..requests.raise_for_status import raise_for_status
18
18
from ..requests.aiohttp import get_connector
19
19
from ..image import use_aspect_ratio
@@ -151,8 +151,6 @@ class PollinationsAI(AsyncGeneratorProvider, ProviderModelMixin):
151
151
elif model.get("name") not in cls.text_models:
152
152
cls.text_models.append(model.get("name"))
153
153
154
cls._models_loaded = True
155
156
154
except Exception as e:
157
155
# Save default models in case of an error
158
156
if not cls.text_models:
@@ -161,6 +159,9 @@ class PollinationsAI(AsyncGeneratorProvider, ProviderModelMixin):
161
159
cls.image_models = [cls.default_image_model]
162
160
debug.error(f"Failed to fetch models: {e}")
163
161
162
finally:
163
cls._models_loaded = True
164
164
165
# Return unique models across all categories
165
166
all_models = cls.text_models.copy()
166
167
all_models.extend(cls.image_models)
@@ -138,7 +138,8 @@ class LMArenaBeta(AsyncGeneratorProvider, ProviderModelMixin, AuthFileMixin):
138
138
model_aliases = {
139
139
"flux-kontext": "flux-1-kontext-pro",
140
140
}
141
image_models = list(image_models)
141
image_models = image_models
142
text_models = text_models
142
143
vision_models = vision_models
143
144
looked = False
144
145
_models_loaded = False
@@ -157,13 +158,11 @@ class LMArenaBeta(AsyncGeneratorProvider, ProviderModelMixin, AuthFileMixin):
157
158
if "initialModels" in line:
158
159
line = line.split("initialModels", maxsplit=1)[-1].split("initialModelAId")[0][3:-3].replace('\\', '')
159
160
models = json.loads(line)
160
text_models = {model["publicName"]: model["id"] for model in models if "text" in model["capabilities"]["outputCapabilities"]}
161
image_models = {model["publicName"]: model["id"] for model in models if "image" in model["capabilities"]["outputCapabilities"]}
162
vision_models = [model["publicName"] for model in models if "image" in model["capabilities"]["inputCapabilities"]]
163
cls.models = list(text_models) + list(image_models)
164
cls.image_models = list(image_models)
165
cls.vision_models = vision_models
166
cls.default_model = list(text_models.keys())[0]
161
cls.text_models = {model["publicName"]: model["id"] for model in models if "text" in model["capabilities"]["outputCapabilities"]}
162
cls.image_models = {model["publicName"]: model["id"] for model in models if "image" in model["capabilities"]["outputCapabilities"]}
163
cls.vision_models = [model["publicName"] for model in models if "image" in model["capabilities"]["inputCapabilities"]]
164
cls.models = list(cls.text_models) + list(cls.image_models)
165
cls.default_model = list(cls.text_models.keys())[0]
167
166
cls._models_loaded = True
168
167
break
169
168
else:
@@ -186,10 +185,10 @@ class LMArenaBeta(AsyncGeneratorProvider, ProviderModelMixin, AuthFileMixin):
186
185
model = cls.default_model
187
186
if model in cls.model_aliases:
188
187
model = cls.model_aliases[model]
189
if model in image_models:
190
model = image_models[model]
191
elif model in text_models:
192
model = text_models[model]
188
if model in cls.text_models:
189
model = cls.text_models[model]
190
elif model in cls.image_models:
191
model = cls.image_models[model]
193
192
elif model in cls.model_aliases:
194
193
model = cls.model_aliases[model]
195
194
debug.log(f"Using model alias: {model}")