Closed as not planned
Closed as not planned
Description
Checked other resources
- I added a very descriptive title to this issue.
- I searched the LangChain documentation with the integrated search.
- I used the GitHub search to find a similar question and didn't find it.
- I am sure that this is a bug in LangChain rather than my code.
- The bug is not resolved by updating to the latest stable version of LangChain (or the specific integration package).
Example Code
The following code straight from the docs fails already at the import statement:
from typing import Optional
from pydantic import BaseModel, Field
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="gpt-4o-mini")
# Pydantic
class Joke(BaseModel):
"""Joke to tell user."""
setup: str = Field(description="The setup of the joke")
punchline: str = Field(description="The punchline to the joke")
rating: Optional[int] = Field(default=None, description="How funny the joke is, from 1 to 10")
structured_llm = llm.with_structured_output(Joke)
structured_llm.invoke("Tell me a joke about cats")
Error Message and Stack Trace (if applicable)
C:\Users\Egor\Dropbox\Code\langchain\libs\partners\openai\langchain_openai\chat_models\__init__.py:1: LangChainDeprecationWarning: As of langchain-core 0.3.0, LangChain uses pydantic v2 internally. The langchain_core.pydantic_v1 module was a compatibility shim for pydantic v1, and should no longer be used. Please update the code to import from Pydantic directly.
C:\Users\Egor\Dropbox\Code\langchain\libs\partners\openai\langchain_openai\chat_models\__init__.py:1: LangChainDeprecationWarning: As of langchain-core 0.3.0, LangChain uses pydantic v2 internally. The langchain_core.pydantic_v1 module was a compatibility shim for pydantic v1, and should no longer be used. Please update the code to import from Pydantic directly.
For example, replace imports like: `from langchain_core.pydantic_v1 import BaseModel`
with: `from pydantic import BaseModel`
or the v1 compatibility namespace if you are working in a code base that has not been fully upgraded to pydantic 2 yet. from pydantic.v1 import BaseModel
from langchain_openai.chat_models.azure import AzureChatOpenAI
C:\Users\Egor\.conda\envs\motleycrew3.11\Lib\site-packages\pydantic\_internal\_config.py:345: UserWarning: Valid config keys have changed in V2:
* 'allow_population_by_field_name' has been renamed to 'populate_by_name'
warnings.warn(message, UserWarning)
Traceback (most recent call last):
File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 940, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "C:\Users\Egor\Dropbox\Code\langchain\libs\partners\openai\langchain_openai\__init__.py", line 1, in <module>
from langchain_openai.chat_models import AzureChatOpenAI, ChatOpenAI
File "C:\Users\Egor\Dropbox\Code\langchain\libs\partners\openai\langchain_openai\chat_models\__init__.py", line 1, in <module>
from langchain_openai.chat_models.azure import AzureChatOpenAI
File "C:\Users\Egor\Dropbox\Code\langchain\libs\partners\openai\langchain_openai\chat_models\azure.py", line 41, in <module>
from langchain_openai.chat_models.base import BaseChatOpenAI
File "C:\Users\Egor\Dropbox\Code\langchain\libs\partners\openai\langchain_openai\chat_models\base.py", line 353, in <module>
class BaseChatOpenAI(BaseChatModel):
File "C:\Users\Egor\.conda\envs\motleycrew3.11\Lib\site-packages\pydantic\_internal\_model_construction.py", line 226, in __new__
complete_model_class(
File "C:\Users\Egor\.conda\envs\motleycrew3.11\Lib\site-packages\pydantic\_internal\_model_construction.py", line 658, in complete_model_class
schema = cls.__get_pydantic_core_schema__(cls, handler)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Egor\.conda\envs\motleycrew3.11\Lib\site-packages\pydantic\main.py", line 697, in __get_pydantic_core_schema__
return handler(source)
^^^^^^^^^^^^^^^
File "C:\Users\Egor\.conda\envs\motleycrew3.11\Lib\site-packages\pydantic\_internal\_schema_generation_shared.py", line 84, in __call__
schema = self._handler(source_type)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Egor\.conda\envs\motleycrew3.11\Lib\site-packages\pydantic\_internal\_generate_schema.py", line 612, in generate_schema
schema = self._generate_schema_inner(obj)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Egor\.conda\envs\motleycrew3.11\Lib\site-packages\pydantic\_internal\_generate_schema.py", line 881, in _generate_schema_inner
return self._model_schema(obj)
^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Egor\.conda\envs\motleycrew3.11\Lib\site-packages\pydantic\_internal\_generate_schema.py", line 693, in _model_schema
{k: self._generate_md_field_schema(k, v, decorators) for k, v in fields.items()},
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Egor\.conda\envs\motleycrew3.11\Lib\site-packages\pydantic\_internal\_generate_schema.py", line 693, in <dictcomp>
{k: self._generate_md_field_schema(k, v, decorators) for k, v in fields.items()},
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Egor\.conda\envs\motleycrew3.11\Lib\site-packages\pydantic\_internal\_generate_schema.py", line 1073, in _generate_md_field_schema
common_field = self._common_field_schema(name, field_info, decorators)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Egor\.conda\envs\motleycrew3.11\Lib\site-packages\pydantic\_internal\_generate_schema.py", line 1261, in _common_field_schema
schema = self._apply_annotations(
^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Egor\.conda\envs\motleycrew3.11\Lib\site-packages\pydantic\_internal\_generate_schema.py", line 2051, in _apply_annotations
schema = get_inner_schema(source_type)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Egor\.conda\envs\motleycrew3.11\Lib\site-packages\pydantic\_internal\_schema_generation_shared.py", line 84, in __call__
schema = self._handler(source_type)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Egor\.conda\envs\motleycrew3.11\Lib\site-packages\pydantic\_internal\_generate_schema.py", line 2032, in inner_handler
schema = self._generate_schema_inner(obj)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Egor\.conda\envs\motleycrew3.11\Lib\site-packages\pydantic\_internal\_generate_schema.py", line 886, in _generate_schema_inner
return self.match_type(obj)
^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Egor\.conda\envs\motleycrew3.11\Lib\site-packages\pydantic\_internal\_generate_schema.py", line 988, in match_type
return self._match_generic_type(obj, origin)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Egor\.conda\envs\motleycrew3.11\Lib\site-packages\pydantic\_internal\_generate_schema.py", line 1016, in _match_generic_type
return self._union_schema(obj)
^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Egor\.conda\envs\motleycrew3.11\Lib\site-packages\pydantic\_internal\_generate_schema.py", line 1323, in _union_schema
choices.append(self.generate_schema(arg))
^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Egor\.conda\envs\motleycrew3.11\Lib\site-packages\pydantic\_internal\_generate_schema.py", line 614, in generate_schema
metadata_js_function = _extract_get_pydantic_json_schema(obj, schema)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Egor\.conda\envs\motleycrew3.11\Lib\site-packages\pydantic\_internal\_generate_schema.py", line 2384, in _extract_get_pydantic_json_schema
raise PydanticUserError(
pydantic.errors.PydanticUserError: The `__modify_schema__` method is not supported in Pydantic v2. Use `__get_pydantic_json_schema__` instead in class `SecretStr`.
For further information visit https://errors.pydantic.dev/2.10/u/custom-json-schema
Process finished with exit code 1
Description
Trying to use the latest langchain_openai,
System Info
System Information
------------------
> OS: Windows
> OS Version: 10.0.19045
> Python Version: 3.10.15 | packaged by Anaconda, Inc. | (main, Oct 3 2024, 07:22:19) [MSC v.1929 64 bit (AMD64)]
Package Information
-------------------
> langchain_core: 0.3.19
> langchain: 0.3.7
> langchain_community: 0.3.7
> langsmith: 0.1.144
> langchain_experimental: 0.3.3
> langchain_openai: 0.2.9
> langchain_text_splitters: 0.3.2
Optional packages not installed
-------------------------------
> langgraph
> langserve
Other Dependencies
------------------
> aiohttp: 3.11.6
> async-timeout: 4.0.3
> dataclasses-json: 0.6.7
> httpx: 0.27.2
> httpx-sse: 0.4.0
> jsonpatch: 1.33
> numpy: 1.26.4
> openai: 1.55.0
> orjson: 3.10.11
> packaging: 24.2
> pydantic: 2.10.0
> pydantic-settings: 2.6.1
> PyYAML: 6.0.2
> requests: 2.32.3
> requests-toolbelt: 1.0.0
> SQLAlchemy: 2.0.35
> tenacity: 9.0.0
> tiktoken: 0.8.0
> typing-extensions: 4.12.2