langchain: infer Perplexity provider for sonar model prefix (#30861)

**Description:** This PR adds provider inference logic to
`init_chat_model` for Perplexity models that use the "sonar..." prefix
(`sonar`, `sonar-pro`, `sonar-reasoning`, `sonar-reasoning-pro` or
`sonar-deep-research`).

This allows users to initialize these models by simply passing the model
name, without needing to explicitly set `model_provider="perplexity"`.

The docstring for `init_chat_model` has also been updated to reflect
this new inference rule.
This commit is contained in:
milosz-l 2025-04-16 00:17:21 +02:00 committed by GitHub
parent 085baef926
commit 4ff576e37d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -133,6 +133,7 @@ def init_chat_model(
- 'mistral...' -> 'mistralai' - 'mistral...' -> 'mistralai'
- 'deepseek...' -> 'deepseek' - 'deepseek...' -> 'deepseek'
- 'grok...' -> 'xai' - 'grok...' -> 'xai'
- 'sonar...' -> 'perplexity'
configurable_fields: Which model parameters are configurable_fields: Which model parameters are
configurable: configurable:
@ -504,6 +505,8 @@ def _attempt_infer_model_provider(model_name: str) -> Optional[str]:
return "deepseek" return "deepseek"
elif model_name.startswith("grok"): elif model_name.startswith("grok"):
return "xai" return "xai"
elif model_name.startswith("sonar"):
return "perplexity"
else: else:
return None return None