|
import sys |
|
from pathlib import Path |
|
import asyncio |
|
|
|
sys.path.append(str(Path(__file__).parent.parent)) |
|
|
|
import g4f |
|
from g4f.Provider import AsyncProvider |
|
from testing.test_providers import get_providers |
|
from testing.log_time import log_time_async |
|
|
|
async def create_async(provider): |
|
model = g4f.models.gpt_35_turbo.name if provider.supports_gpt_35_turbo else g4f.models.default.name |
|
try: |
|
response = await log_time_async( |
|
provider.create_async, |
|
model=model, |
|
messages=[{"role": "user", "content": "Hello Assistant!"}] |
|
) |
|
print(f"{provider.__name__}:", response) |
|
except Exception as e: |
|
return f"{provider.__name__}: {e.__class__.__name__}: {e}" |
|
|
|
async def run_async(): |
|
responses: list = [ |
|
create_async(_provider) |
|
for _provider in get_providers() |
|
if _provider.working and issubclass(_provider, AsyncProvider) |
|
] |
|
responses = await asyncio.gather(*responses) |
|
for error in responses: |
|
if error: |
|
print(error) |
|
|
|
print("Total:", asyncio.run(log_time_async(run_async))) |