How to fix LangChain deprecated import langchain.chat_models
Quick answer
The import
langchain.chat_models is deprecated in LangChain v0.2+. Replace it by importing ChatOpenAI from langchain_openai. Update your code to use from langchain_openai import ChatOpenAI to fix import errors and ensure compatibility. ERROR TYPE
code_error ⚡ QUICK FIX
Replace
from langchain.chat_models import OpenAI with from langchain_openai import ChatOpenAI and update usage accordingly.Why this happens
LangChain deprecated the langchain.chat_models module in version 0.2+ to better organize integrations by provider. Attempting to import OpenAI or other chat models from langchain.chat_models now results in an ImportError or deprecation warning.
Example of broken code:
from langchain.chat_models import OpenAI
client = OpenAI(model_name="gpt-4o")
response = client.chat(messages=[{"role": "user", "content": "Hello"}])
print(response.content)This triggers errors because langchain.chat_models no longer exports OpenAI.
from langchain.chat_models import OpenAI
client = OpenAI(model_name="gpt-4o")
response = client.chat(messages=[{"role": "user", "content": "Hello"}])
print(response.content) output
ImportError: cannot import name 'OpenAI' from 'langchain.chat_models'
The fix
Use the new import path langchain_openai and import ChatOpenAI instead of OpenAI. This aligns with LangChain's updated modular structure.
Corrected code example:
from langchain_openai import ChatOpenAI
client = ChatOpenAI(model_name="gpt-4o")
response = client.chat(messages=[{"role": "user", "content": "Hello"}])
print(response.content) output
Hello
Preventing it in production
To avoid breaking changes from LangChain updates:
- Pin your LangChain version in
requirements.txtorpyproject.toml. - Regularly check LangChain's changelog for breaking changes.
- Use automated tests to catch import errors early.
- Consider wrapping imports in try-except blocks during migration phases.
Key Takeaways
- Always import chat models from 'langchain_openai' instead of 'langchain.chat_models'.
- Use 'ChatOpenAI' class for OpenAI chat completions in LangChain v0.2+.
- Pin LangChain versions and monitor changelogs to avoid breaking changes.
- Automated tests help catch deprecated import errors early in development.