1414from langchain_core .output_parsers import PydanticOutputParser
1515from langchain_core .output_parsers .json import JsonOutputParser
1616from langchain_core .prompts .prompt import PromptTemplate
17- from langchain_core .utils .pydantic import PydanticBaseModel , TBaseModel
17+ from langchain_core .utils .pydantic import PydanticBaseModel , TypeBaseModel
1818
1919
2020class ForecastV2 (pydantic .BaseModel ):
@@ -63,7 +63,7 @@ def test_pydantic_parser_chaining(
6363
6464
6565@pytest .mark .parametrize ("pydantic_object" , _FORECAST_MODELS )
66- def test_pydantic_parser_validation (pydantic_object : TBaseModel ) -> None :
66+ def test_pydantic_parser_validation (pydantic_object : TypeBaseModel ) -> None :
6767 bad_prompt = PromptTemplate (
6868 template = """{{
6969 "temperature": "oof",
@@ -75,9 +75,7 @@ def test_pydantic_parser_validation(pydantic_object: TBaseModel) -> None:
7575
7676 model = ParrotFakeChatModel ()
7777
78- parser : PydanticOutputParser [PydanticBaseModel ] = PydanticOutputParser (
79- pydantic_object = pydantic_object
80- )
78+ parser = PydanticOutputParser [PydanticBaseModel ](pydantic_object = pydantic_object )
8179 chain = bad_prompt | model | parser
8280 with pytest .raises (OutputParserException ):
8381 chain .invoke ({})
@@ -86,7 +84,7 @@ def test_pydantic_parser_validation(pydantic_object: TBaseModel) -> None:
8684# JSON output parser tests
8785@pytest .mark .parametrize ("pydantic_object" , _FORECAST_MODELS )
8886def test_json_parser_chaining (
89- pydantic_object : TBaseModel ,
87+ pydantic_object : TypeBaseModel ,
9088) -> None :
9189 prompt = PromptTemplate (
9290 template = """{{
@@ -194,6 +192,14 @@ class SampleModel(BaseModel):
194192 }
195193
196194
195+ @pytest .mark .parametrize ("pydantic_object" , _FORECAST_MODELS )
196+ def test_format_instructions (pydantic_object : TypeBaseModel ) -> None :
197+ """Test format instructions."""
198+ parser = PydanticOutputParser [PydanticBaseModel ](pydantic_object = pydantic_object )
199+ instructions = parser .get_format_instructions ()
200+ assert "temperature" in instructions
201+
202+
197203def test_format_instructions_preserves_language () -> None :
198204 """Test format instructions does not attempt to encode into ascii."""
199205 description = (
0 commit comments