XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet
公开
关注 0 Fork 0 Star 0
UTF-8
from g4f.Provider import __all__, ProviderUtils
from g4f import ChatCompletion
import concurrent.futures

_ = ["BaseProvider", "AsyncProvider", "AsyncGeneratorProvider", "RetryProvider"]


def test_provider(provider):
    try:
        provider = ProviderUtils.convert[provider]
        if provider.working and not provider.needs_auth:
            print("testing", provider.__name__)
            completion = ChatCompletion.create(
                model="gpt-3.5-turbo",
                messages=[{"role": "user", "content": "hello"}],
                provider=provider,
            )
            return completion, provider.__name__
    except Exception as e:
        # print(f'Failed to test provider: {provider} | {e}')
        return None


with concurrent.futures.ThreadPoolExecutor() as executor:
    futures = [
        executor.submit(test_provider, provider)
        for provider in __all__
        if provider not in _
    ]
    for future in concurrent.futures.as_completed(futures):
        if result := future.result():
            print(f"{result[1]} | {result[0]}")