diff --git a/g4f/api/__init__.py b/g4f/api/__init__.py index 754a48f1cf..256949420c 100644 --- a/g4f/api/__init__.py +++ b/g4f/api/__init__.py @@ -165,6 +165,19 @@ async def model_info(model_name: str): @self.app.post("/v1/chat/completions") async def chat_completions(config: ChatCompletionsConfig, request: Request = None, provider: str = None): try: + # Find the last delimiter with ':' or '-' + if ':' in config.model: + model_parts = config.model.rsplit(":", 1) + elif '-' in config.model: + model_parts = config.model.rsplit("-", 1) + else: + model_parts = [config.model] # There is no prefix. + + base_model = model_parts[0] # We use the base model name + model_prefix = model_parts[1] if len(model_parts) > 1 else None + + config.model = base_model # Update the configuration to the basic model + config.provider = provider if config.provider is None else config.provider if config.api_key is None and request is not None: auth_header = request.headers.get("Authorization") @@ -229,6 +242,7 @@ async def generate_image(config: ImageGenerationConfig): async def completions(): return Response(content=json.dumps({'info': 'Not working yet.'}, indent=4), media_type="application/json") + def format_exception(e: Exception, config: Union[ChatCompletionsConfig, ImageGenerationConfig]) -> str: last_provider = g4f.get_last_provider(True) return json.dumps({