core[patch]: Add pydantic metadata to subset model (#25032)

- **Description:** This includes Pydantic field metadata in
`_create_subset_model_v2` so that it gets included in the final
serialized form that get sent out.
- **Issue:** #25031 
- **Dependencies:** n/a
- **Twitter handle:** @gramliu

---------

Co-authored-by: Bagatur <baskaryan@gmail.com>
Co-authored-by: Bagatur <22008038+baskaryan@users.noreply.github.com>
This commit is contained in:
Gram Liu
2024-08-05 17:57:39 -07:00
committed by GitHub
parent 8f33fce871
commit 88a9a6a758
5 changed files with 88 additions and 12 deletions

View File

@@ -18,6 +18,8 @@ from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.pydantic_v1 import BaseModel, Field
from langchain_core.tools import tool
from pydantic import BaseModel as RawBaseModel
from pydantic import Field as RawField
from langchain_standard_tests.unit_tests.chat_models import (
ChatModelTests,
@@ -26,7 +28,11 @@ from langchain_standard_tests.unit_tests.chat_models import (
from langchain_standard_tests.utils.pydantic import PYDANTIC_MAJOR_VERSION
@tool
class MagicFunctionSchema(RawBaseModel):
input: int = RawField(..., gt=-1000, lt=1000)
@tool(args_schema=MagicFunctionSchema)
def magic_function(input: int) -> int:
"""Applies a magic function to an input."""
return input + 2