mirror of
https://github.com/hwchase17/langchain.git
synced 2026-06-09 10:17:00 +00:00
test(langchain): cover chat model provider inference (#34657)
Add unit coverage for chat model provider inference across common model name prefixes. This improves regression protection without touching runtime --------- Co-authored-by: Mason Daugherty <github@mdrxy.com>
This commit is contained in:
@@ -8,7 +8,7 @@ from langchain_core.runnables import RunnableConfig, RunnableSequence
|
||||
from pydantic import SecretStr
|
||||
|
||||
from langchain.chat_models import __all__, init_chat_model
|
||||
from langchain.chat_models.base import _SUPPORTED_PROVIDERS
|
||||
from langchain.chat_models.base import _SUPPORTED_PROVIDERS, _attempt_infer_model_provider
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from langchain_core.language_models import BaseChatModel
|
||||
@@ -67,6 +67,34 @@ def test_supported_providers_is_sorted() -> None:
|
||||
assert list(_SUPPORTED_PROVIDERS) == sorted(_SUPPORTED_PROVIDERS.keys())
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
("model_name", "expected_provider"),
|
||||
[
|
||||
("gpt-4o", "openai"),
|
||||
("o1-mini", "openai"),
|
||||
("o3-mini", "openai"),
|
||||
("chatgpt-4o-latest", "openai"),
|
||||
("text-davinci-003", "openai"),
|
||||
("claude-3-haiku-20240307", "anthropic"),
|
||||
("command-r-plus", "cohere"),
|
||||
("accounts/fireworks/models/mixtral-8x7b-instruct", "fireworks"),
|
||||
("gemini-1.5-pro", "google_vertexai"),
|
||||
("gemini-2.5-pro", "google_vertexai"),
|
||||
("gemini-3-pro-preview", "google_vertexai"),
|
||||
("amazon.titan-text-express-v1", "bedrock"),
|
||||
("anthropic.claude-v2", "bedrock"),
|
||||
("mistral-small", "mistralai"),
|
||||
("mixtral-8x7b", "mistralai"),
|
||||
("deepseek-v3", "deepseek"),
|
||||
("grok-beta", "xai"),
|
||||
("sonar-small", "perplexity"),
|
||||
("solar-pro", "upstage"),
|
||||
],
|
||||
)
|
||||
def test_attempt_infer_model_provider(model_name: str, expected_provider: str) -> None:
|
||||
assert _attempt_infer_model_provider(model_name) == expected_provider
|
||||
|
||||
|
||||
@pytest.mark.requires("langchain_openai")
|
||||
@mock.patch.dict(
|
||||
os.environ,
|
||||
|
||||
Reference in New Issue
Block a user