From 862e5ef16de7e1d4c4dcbd7b270d8fddf9a0e31c Mon Sep 17 00:00:00 2001 From: Heiner Lohaus Date: Mon, 26 Feb 2024 23:41:06 +0100 Subject: Add support for message history and system message in OpenaiChat Add fetch access_token and fix cookie usage in OpenaiChat Fix save created access_token in cookies in OpenaiChat Add use_auth_header config in GeminiPro --- g4f/client.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'g4f/client.py') diff --git a/g4f/client.py b/g4f/client.py index 3e11fac1..595beaf9 100644 --- a/g4f/client.py +++ b/g4f/client.py @@ -126,7 +126,7 @@ class Completions(): stop: Union[list[str], str] = None, api_key: str = None, **kwargs - ) -> Union[ChatCompletion, Generator[ChatCompletionChunk]]: + ) -> Union[ChatCompletion, Generator[ChatCompletionChunk, None, None]]: model, provider = get_model_and_provider( model, self.provider if provider is None else provider, -- cgit v1.2.3 From 84812b9632cae2dc4811222a2f31d42cb807a221 Mon Sep 17 00:00:00 2001 From: Heiner Lohaus Date: Tue, 27 Feb 2024 11:55:40 +0100 Subject: Update some providers Improve read access_token in OpenaiChat Add IterProvider Add system message support in FlowGpt Filter none values in new Client --- g4f/client.py | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) (limited to 'g4f/client.py') diff --git a/g4f/client.py b/g4f/client.py index 595beaf9..750c623f 100644 --- a/g4f/client.py +++ b/g4f/client.py @@ -7,7 +7,7 @@ import random import string from .stubs import ChatCompletion, ChatCompletionChunk, Image, ImagesResponse -from .typing import Union, Generator, Messages, ImageType +from .typing import Union, Iterator, Messages, ImageType from .providers.types import BaseProvider, ProviderType from .image import ImageResponse as ImageProviderResponse from .Provider.BingCreateImages import BingCreateImages @@ -17,7 +17,7 @@ from . import get_model_and_provider, get_last_provider ImageProvider = Union[BaseProvider, object] Proxies = Union[dict, str] -IterResponse = Generator[Union[ChatCompletion, ChatCompletionChunk], None, None] +IterResponse = Iterator[Union[ChatCompletion, ChatCompletionChunk]] def read_json(text: str) -> dict: """ @@ -110,6 +110,12 @@ class Client(): elif "https" in self.proxies: return self.proxies["https"] +def filter_none(**kwargs): + for key in list(kwargs.keys()): + if kwargs[key] is None: + del kwargs[key] + return kwargs + class Completions(): def __init__(self, client: Client, provider: ProviderType = None): self.client: Client = client @@ -126,7 +132,7 @@ class Completions(): stop: Union[list[str], str] = None, api_key: str = None, **kwargs - ) -> Union[ChatCompletion, Generator[ChatCompletionChunk, None, None]]: + ) -> Union[ChatCompletion, Iterator[ChatCompletionChunk]]: model, provider = get_model_and_provider( model, self.provider if provider is None else provider, @@ -135,11 +141,13 @@ class Completions(): ) stop = [stop] if isinstance(stop, str) else stop response = provider.create_completion( - model, messages, stream, - proxy=self.client.get_proxy(), - max_tokens=max_tokens, - stop=stop, - api_key=self.client.api_key if api_key is None else api_key, + model, messages, stream, + **filter_none( + proxy=self.client.get_proxy(), + max_tokens=max_tokens, + stop=stop, + api_key=self.client.api_key if api_key is None else api_key + ), **kwargs ) response = iter_response(response, stream, response_format, max_tokens, stop) -- cgit v1.2.3