| Name | Type | Description |
|---|---|---|
model | str | None | Default: NoneName of the model to use, with provider prefix — e.g.,
A bare model name (e.g., Prefer pinned model IDs over moving aliases (e.g.,
Inferred providers by prefix (case-insensitive):
|
model_provider | str | None | Default: NoneProvider of the model, passed separately instead of
as a prefix on Equivalent to the prefix form — e.g.,
Prefer the prefix form on
Supported values and the integration package each requires:
|
configurable_fields | Literal['any'] | list[str] | tuple[str, ...] | None | Default: None |
config_prefix | str | None | Default: None |
**kwargs | Any | Default: {} |
Initialize a chat model from any supported provider using a unified interface.
Two main use cases:
config. Makes it easy to
switch between models/providers without changing your codeRequires the integration package for the chosen model provider to be installed.
See the model_provider parameter below for specific package names
(e.g., pip install langchain-openai).
Refer to the provider integration's API reference
for supported model parameters to use as **kwargs.
# pip install langchain langchain-openai
from langchain.chat_models import init_chat_model
gpt_5 = init_chat_model("openai:gpt-5.5", temperature=0)
gpt_5.invoke("what's your name")# pip install langchain langchain-openai
from langchain.chat_models import init_chat_model
# (We don't need to specify configurable=True if a model isn't specified.)
configurable_model = init_chat_model(temperature=0)
# Use GPT-5.5 to generate the response
configurable_model.invoke(
"what's your name",
config={"configurable": {"model": "gpt-5.5"}},
)# pip install langchain langchain-openai langchain-anthropic
from langchain.chat_models import init_chat_model
configurable_model_with_default = init_chat_model(
"openai:gpt-5.5",
configurable_fields="any", # This allows us to configure other params like temperature, max_tokens, etc at runtime.
config_prefix="foo",
temperature=0,
)
configurable_model_with_default.invoke("what's your name")
# GPT-5.5 response with temperature 0 (as set in default)
# Invoke overriding model and temperature at runtime via config.
# Note the use of the "foo_" prefix on the config keys, which matches
# the config_prefix we set when initializing the model.
configurable_model_with_default.invoke(
"what's your name",
config={
"configurable": {
"foo_model": "anthropic:claude-opus-4-7",
"foo_temperature": 0.6,
}
},
)You can call any chat model declarative methods on a configurable model in the same way that you would with a normal model:
# pip install langchain langchain-openai langchain-anthropic
from langchain.chat_models import init_chat_model
from pydantic import BaseModel, Field
class GetWeather(BaseModel):
'''Get the current weather in a given location'''
location: str = Field(..., description="The city and state, e.g. San Francisco, CA")
class GetPopulation(BaseModel):
'''Get the current population in a given location'''
location: str = Field(..., description="The city and state, e.g. San Francisco, CA")
configurable_model = init_chat_model(
"gpt-5.5", configurable_fields=("model", "model_provider"), temperature=0
)
configurable_model_with_tools = configurable_model.bind_tools(
[
GetWeather,
GetPopulation,
]
)
configurable_model_with_tools.invoke(
"Which city is hotter today and which is bigger: LA or NY?"
)
# Use GPT-5.5
configurable_model_with_tools.invoke(
"Which city is hotter today and which is bigger: LA or NY?",
config={"configurable": {"model": "claude-opus-4-7"}},
)
# Use Opus 4.7Which model parameters are configurable at runtime:
None: No configurable fields (i.e., a fixed model).'any': All fields are configurable. See security note below.list[str] | Tuple[str, ...]: Specified fields are configurable.Fields are assumed to have config_prefix stripped if a config_prefix is
specified.
If model is specified, then defaults to None.
If model is not specified, then defaults to ("model", "model_provider").
Setting configurable_fields="any" means fields like api_key,
base_url, etc., can be altered at runtime, potentially redirecting
model requests to a different service/user.
Make sure that if you're accepting untrusted configurations that you
enumerate the configurable_fields=(...) explicitly.
Optional prefix for configuration keys.
Useful when you have multiple configurable models in the same application.
If 'config_prefix' is a non-empty string then model will be configurable
at runtime via the config["configurable"]["{config_prefix}_{param}"] keys.
See examples below.
If 'config_prefix' is an empty string then model will be configurable via
config["configurable"]["{param}"].
Additional model-specific keyword args to pass to the underlying
chat model's __init__ method. Common parameters include:
temperature: Model temperature for controlling randomness.max_tokens: Maximum number of output tokens.timeout: Maximum time (in seconds) to wait for a response.max_retries: Maximum number of retry attempts for failed requests.base_url: Custom API endpoint URL.rate_limiter: A
BaseRateLimiter
instance to control request rate.Refer to the specific model provider's integration reference for all available parameters.