From eae317a1665f94ada0c34875a0aec09df89b138b Mon Sep 17 00:00:00 2001 From: H Lohaus Date: Thu, 21 Nov 2024 05:00:08 +0100 Subject: Support synthesize in Openai generator (#2394) * Improve download of generated images, serve images in the api * Add support for conversation handling in the api * Add orginal prompt to image response * Add download images option in gui, fix loading model list in Airforce * Support speech synthesize in Openai generator --- g4f/providers/base_provider.py | 4 ++-- g4f/providers/response.py | 13 +++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) (limited to 'g4f/providers') diff --git a/g4f/providers/base_provider.py b/g4f/providers/base_provider.py index b6df48e8..c6d0d950 100644 --- a/g4f/providers/base_provider.py +++ b/g4f/providers/base_provider.py @@ -11,7 +11,7 @@ from typing import Callable, Union from ..typing import CreateResult, AsyncResult, Messages from .types import BaseProvider -from .response import FinishReason, BaseConversation +from .response import FinishReason, BaseConversation, SynthesizeData from ..errors import NestAsyncioError, ModelNotSupportedError from .. import debug @@ -259,7 +259,7 @@ class AsyncGeneratorProvider(AsyncProvider): """ return "".join([ str(chunk) async for chunk in cls.create_async_generator(model, messages, stream=False, **kwargs) - if not isinstance(chunk, (Exception, FinishReason, BaseConversation)) + if not isinstance(chunk, (Exception, FinishReason, BaseConversation, SynthesizeData)) ]) @staticmethod diff --git a/g4f/providers/response.py b/g4f/providers/response.py index a4d1467a..3fddbf4f 100644 --- a/g4f/providers/response.py +++ b/g4f/providers/response.py @@ -22,5 +22,18 @@ class Sources(ResponseType): return "\n\n" + ("\n".join([f"{idx+1}. [{link['title']}]({link['url']})" for idx, link in enumerate(self.list)])) class BaseConversation(ResponseType): + def __str__(self) -> str: + return "" + +class SynthesizeData(ResponseType): + def __init__(self, provider: str, data: dict): + self.provider = provider + self.data = data + + def to_json(self) -> dict: + return { + **self.__dict__ + } + def __str__(self) -> str: return "" \ No newline at end of file -- cgit v1.2.3