diff options
author | kqlio67 <kqlio67@users.noreply.github.com> | 2024-10-30 23:34:49 +0100 |
---|---|---|
committer | kqlio67 <kqlio67@users.noreply.github.com> | 2024-10-30 23:34:49 +0100 |
commit | 0d05825a7195234cc680797e3b5ea005a27071ea (patch) | |
tree | f0f0309adacfffb0b61c028d46a0ec6399778e95 /g4f/api | |
parent | feat(g4f/api/__init__.py): support both ':' and '-' in model prefixes (diff) | |
download | gpt4free-0d05825a7195234cc680797e3b5ea005a27071ea.tar gpt4free-0d05825a7195234cc680797e3b5ea005a27071ea.tar.gz gpt4free-0d05825a7195234cc680797e3b5ea005a27071ea.tar.bz2 gpt4free-0d05825a7195234cc680797e3b5ea005a27071ea.tar.lz gpt4free-0d05825a7195234cc680797e3b5ea005a27071ea.tar.xz gpt4free-0d05825a7195234cc680797e3b5ea005a27071ea.tar.zst gpt4free-0d05825a7195234cc680797e3b5ea005a27071ea.zip |
Diffstat (limited to 'g4f/api')
-rw-r--r-- | g4f/api/__init__.py | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/g4f/api/__init__.py b/g4f/api/__init__.py index 25694942..fadeb0d8 100644 --- a/g4f/api/__init__.py +++ b/g4f/api/__init__.py @@ -165,19 +165,6 @@ class Api: @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") @@ -206,9 +193,13 @@ class Api: return JSONResponse(response_list[0].to_json()) # Streaming response + async def async_generator(sync_gen): + for item in sync_gen: + yield item + async def streaming(): try: - async for chunk in response: + async for chunk in async_generator(response): yield f"data: {json.dumps(chunk.to_json())}\n\n" except GeneratorExit: pass @@ -242,7 +233,6 @@ class Api: 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({ |