Coverage for src/fastoai/routers/_client.py: 91%

11 statements  

« prev     ^ index     » next       coverage.py v7.6.8, created at 2024-12-06 09:34 +0800

1from typing import get_args 

2 

3from anthropic import AsyncAnthropic 

4from anthropic.types.model_param import ModelParam 

5from openai import AsyncOpenAI 

6from openai.types.chat_model import ChatModel 

7 

8 

9def get_client_class(model: str) -> type[AsyncAnthropic] | type[AsyncOpenAI]: 

10 if model in get_args(ChatModel): 

11 return AsyncOpenAI 

12 if model in get_args(get_args(ModelParam)[1]): 

13 return AsyncAnthropic 

14 raise ValueError(f"Can't recognize model {model}.")