# init_chat_model

```python
from langchain.chat_models import init_chat_model

model = init_chat_model("gpt-5.5")                    # infers openai
model = init_chat_model("openai:gpt-5.5")             # explicit
model = init_chat_model("claude-sonnet-4-6")          # infers anthropic
model = init_chat_model("anthropic:claude-sonnet-4-6") # explicit
```

Provider-specific classes are still there when you need their parameters:

```python
from langchain_openai import ChatOpenAI
from langchain_anthropic import ChatAnthropic

model = ChatOpenAI(model="gpt-5.5")
model = ChatAnthropic(model="claude-sonnet-4-6")
```

## Rules

- Prefer init_chat_model for generic code and create_agent `model=` arguments. Model strings like "openai:gpt-5.5" are what the docs use in agent examples.
- Reach for the provider class when you need provider-only parameters (for example ChatOpenAI's use_responses_api, which picks the Responses vs Completions API).
- For OpenAI-compatible endpoints (Together, vLLM), pass `model_provider="openai"` with a `base_url`. For routers like OpenRouter or LiteLLM, use the dedicated integrations instead: ChatOpenRouter from langchain-openrouter, or ChatLiteLLM / ChatLiteLLMRouter from langchain-litellm.