2023-09-05 11:27:24 -04:00
|
|
|
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
|
2023-09-09 17:07:00 -04:00
|
|
|
from testing.log_time import log_time_async
|
2023-09-05 11:27:24 -04:00
|
|
|
|
2023-09-09 17:07:00 -04:00
|
|
|
async def create_async(provider):
|
2023-09-05 11:27:24 -04:00
|
|
|
model = g4f.models.gpt_35_turbo.name if provider.supports_gpt_35_turbo else g4f.models.default.name
|
|
|
|
try:
|
2023-09-09 17:07:00 -04:00
|
|
|
response = await log_time_async(
|
2023-09-05 11:27:24 -04:00
|
|
|
provider.create_async,
|
|
|
|
model=model,
|
|
|
|
messages=[{"role": "user", "content": "Hello Assistant!"}]
|
|
|
|
)
|
2023-09-09 17:07:00 -04:00
|
|
|
print(f"{provider.__name__}:", response)
|
2023-09-05 11:27:24 -04:00
|
|
|
except Exception as e:
|
2023-09-09 17:07:00 -04:00
|
|
|
return f"{provider.__name__}: {e.__class__.__name__}: {e}"
|
2023-09-05 11:27:24 -04:00
|
|
|
|
|
|
|
async def run_async():
|
2023-09-09 17:07:00 -04:00
|
|
|
responses: list = [
|
|
|
|
create_async(_provider)
|
2023-09-05 11:27:24 -04:00
|
|
|
for _provider in get_providers()
|
2023-09-09 17:07:00 -04:00
|
|
|
if _provider.working and issubclass(_provider, AsyncProvider)
|
2023-09-05 11:27:24 -04:00
|
|
|
]
|
|
|
|
responses = await asyncio.gather(*responses)
|
2023-09-09 17:07:00 -04:00
|
|
|
for error in responses:
|
|
|
|
if error:
|
|
|
|
print(error)
|
2023-09-05 11:27:24 -04:00
|
|
|
|
|
|
|
print("Total:", asyncio.run(log_time_async(run_async)))
|