summaryrefslogtreecommitdiffstats
path: root/g4f/Provider
diff options
context:
space:
mode:
authorH Lohaus <hlohaus@users.noreply.github.com>2024-02-14 09:22:32 +0100
committerGitHub <noreply@github.com>2024-02-14 09:22:32 +0100
commit51686409f86e187d9c13cbea9388f31f567a118c (patch)
treec4291ff5375b77d70622cfa25490f5a02a5ee970 /g4f/Provider
parentUpdate client.md (diff)
parentAdd unitests for the client (diff)
downloadgpt4free-51686409f86e187d9c13cbea9388f31f567a118c.tar
gpt4free-51686409f86e187d9c13cbea9388f31f567a118c.tar.gz
gpt4free-51686409f86e187d9c13cbea9388f31f567a118c.tar.bz2
gpt4free-51686409f86e187d9c13cbea9388f31f567a118c.tar.lz
gpt4free-51686409f86e187d9c13cbea9388f31f567a118c.tar.xz
gpt4free-51686409f86e187d9c13cbea9388f31f567a118c.tar.zst
gpt4free-51686409f86e187d9c13cbea9388f31f567a118c.zip
Diffstat (limited to 'g4f/Provider')
-rw-r--r--g4f/Provider/base_provider.py23
-rw-r--r--g4f/Provider/needs_auth/OpenaiChat.py2
2 files changed, 15 insertions, 10 deletions
diff --git a/g4f/Provider/base_provider.py b/g4f/Provider/base_provider.py
index 4b312ffc..8659f506 100644
--- a/g4f/Provider/base_provider.py
+++ b/g4f/Provider/base_provider.py
@@ -196,15 +196,20 @@ class AsyncGeneratorProvider(AsyncProvider):
generator = cls.create_async_generator(model, messages, stream=stream, **kwargs)
gen = generator.__aiter__()
- while True:
- try:
- yield loop.run_until_complete(gen.__anext__())
- except StopAsyncIteration:
- break
-
- if new_loop:
- loop.close()
- asyncio.set_event_loop(None)
+ # Fix for RuntimeError: async generator ignored GeneratorExit
+ async def await_callback(callback):
+ return await callback()
+
+ try:
+ while True:
+ yield loop.run_until_complete(await_callback(gen.__anext__))
+ except StopAsyncIteration:
+ ...
+ # Fix for: ResourceWarning: unclosed event loop
+ finally:
+ if new_loop:
+ loop.close()
+ asyncio.set_event_loop(None)
@classmethod
async def create_async(
diff --git a/g4f/Provider/needs_auth/OpenaiChat.py b/g4f/Provider/needs_auth/OpenaiChat.py
index 9e0edd8a..b3577ad5 100644
--- a/g4f/Provider/needs_auth/OpenaiChat.py
+++ b/g4f/Provider/needs_auth/OpenaiChat.py
@@ -385,7 +385,7 @@ class OpenaiChat(AsyncGeneratorProvider, ProviderModelMixin):
}
) as response:
if not response.ok:
- raise RuntimeError(f"Response {response.status_code}: {await response.text()}")
+ raise RuntimeError(f"Response {response.status}: {await response.text()}")
last_message: int = 0
async for line in response.iter_lines():
if not line.startswith(b"data: "):