XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet
公开
关注 0 Fork 0 Star 1
返回提交历史

XFEstudio/gpt4free

The prefix function has been removed

e6627d8d
kqlio67 <kqlio67@users.noreply.github.com>
提交于

代码差异

2 个文件 +8 -51
Modified g4f/client/client.py +8 -9
@@ -184,12 +184,8 @@ class Completions:
184 184 ignore_stream: bool = False,
185 185 **kwargs
186 186 ) -> Union[ChatCompletion, Iterator[ChatCompletionChunk]]:
187 # We use ModelUtils to obtain the model object.
188 model_instance = ModelUtils.get_model(model)
189
190 # We receive the model and the provider.
191 model_name, provider = get_model_and_provider(
192 model_instance.name, # We use the model name from the object.
187 model, provider = get_model_and_provider(
188 model,
193 189 self.provider if provider is None else provider,
194 190 stream,
195 191 ignored,
@@ -200,8 +196,9 @@ class Completions:
200 196 stop = [stop] if isinstance(stop, str) else stop
201 197
202 198 if asyncio.iscoroutinefunction(provider.create_completion):
199 # Run the asynchronous function in an event loop
203 200 response = asyncio.run(provider.create_completion(
204 model_name, # We use a model based on the object.
201 model,
205 202 messages,
206 203 stream=stream,
207 204 **filter_none(
@@ -214,7 +211,7 @@ class Completions:
214 211 ))
215 212 else:
216 213 response = provider.create_completion(
217 model_name, # We use a model from the object.
214 model,
218 215 messages,
219 216 stream=stream,
220 217 **filter_none(
@@ -228,19 +225,21 @@ class Completions:
228 225
229 226 if stream:
230 227 if hasattr(response, '__aiter__'):
228 # It's an async generator, wrap it into a sync iterator
231 229 response = to_sync_iter(response)
232 230
231 # Now 'response' is an iterator
233 232 response = iter_response(response, stream, response_format, max_tokens, stop)
234 233 response = iter_append_model_and_provider(response)
235 234 return response
236 235 else:
237 236 if hasattr(response, '__aiter__'):
237 # If response is an async generator, collect it into a list
238 238 response = list(to_sync_iter(response))
239 239 response = iter_response(response, stream, response_format, max_tokens, stop)
240 240 response = iter_append_model_and_provider(response)
241 241 return next(response)
242 242
243
244 243 async def async_create(
245 244 self,
246 245 messages: Messages,
Modified g4f/models.py +0 -42
@@ -891,17 +891,6 @@ any_dark = Model(
891 891
892 892 )
893 893
894
895 class ModelVersions:
896 # Global Prefixes for All Models
897 GLOBAL_PREFIXES = [":latest"]
898
899 # Specific Prefixes for Particular Models
900 MODEL_SPECIFIC_PREFIXES = {
901 #frozenset(["gpt-3.5-turbo", "gpt-4"]): [":custom1", ":custom2"]
902 #frozenset(["gpt-3.5-turbo"]): [":custom"],
903 }
904
905 894 class ModelUtils:
906 895 """
907 896 Utility class for mapping string identifiers to Model instances.
@@ -1174,35 +1163,4 @@ class ModelUtils:
1174 1163 'any-dark': any_dark,
1175 1164 }
1176 1165
1177 @classmethod
1178 def get_model(cls, model_name: str) -> Model:
1179 # Checking for specific prefixes
1180 for model_set, specific_prefixes in ModelVersions.MODEL_SPECIFIC_PREFIXES.items():
1181 for prefix in specific_prefixes:
1182 if model_name.endswith(prefix):
1183 base_name = model_name[:-len(prefix)]
1184 if base_name in model_set:
1185 return cls.convert.get(base_name, None)
1186
1187 # Check for global prefixes
1188 for prefix in ModelVersions.GLOBAL_PREFIXES:
1189 if model_name.endswith(prefix):
1190 base_name = model_name[:-len(prefix)]
1191 return cls.convert.get(base_name, None)
1192
1193 # Check without prefix
1194 if model_name in cls.convert:
1195 return cls.convert[model_name]
1196
1197 raise KeyError(f"Model {model_name} not found")
1198
1199 @classmethod
1200 def get_available_versions(cls, model_name: str) -> list[str]:
1201 # Obtaining prefixes for a specific model
1202 prefixes = ModelVersions.GLOBAL_PREFIXES.copy()
1203 for model_set, specific_prefixes in ModelVersions.MODEL_SPECIFIC_PREFIXES.items():
1204 if model_name in model_set:
1205 prefixes.extend(specific_prefixes)
1206 return prefixes
1207
1208 1166 _all_models = list(ModelUtils.convert.keys())